Skip to content

Releases: prowler-cloud/prowler

Prowler 5.38.0

Choose a tag to compare

@github-actions github-actions released this 06 Aug 13:13
b21ddad

✨ New features to highlight in this version

Enjoy them all now for free at https://cloud.prowler.com/

📌 Compliance Watchlist

Note

This feature is available exclusively in Prowler Cloud and Prowler Private Cloud with a subscription.

Compliance Watchlist keeps the frameworks an organization tracks in one shared list. Pin frameworks from any compliance view, manage several at once through a searchable catalog, and filter the Compliance section to show only the pinned frameworks.

The Overview page now reports the latest score for every pinned framework, while finding details highlight the watched frameworks associated with each check. Universal frameworks remain a single watchlist entry across provider views, keeping the organization's priorities consistent everywhere.

Compliance Watchlist editor

Read more in the Compliance Watchlist documentation.

🔐 SAML SSO - Multiple Email Domains

Note

This feature is available exclusively in Prowler Cloud and Prowler Private Cloud with a subscription.

One SAML configuration can now authorize a primary email domain and up to 19 additional domains through the same Identity Provider. Every domain shares one stable Assertion Consumer Service (ACS) URL based on the primary domain, so subsidiaries, acquired companies, regional domains, and multiple brands no longer require separate tenants or duplicated SAML applications.

Domain ownership remains tenant-bound throughout the authentication flow. During service provider-initiated sign-in, the discovery domain and the domain asserted by the Identity Provider must resolve to the same tenant before provisioning continues.

SAML configuration with multiple email domains

Read more in the SAML SSO documentation.

👥 User Sign-In Methods

Note

This feature is available exclusively in Prowler Cloud and Prowler Private Cloud with a subscription.

The Users table now shows each account's sign-in methods as tags, including email/password, Google, GitHub, SAML with linked domains, and Partner SSO. Accounts without a reported method display a placeholder.

Users table showing sign-in method tags

🕸️ Attack Paths - Expanded AWS Privilege-Escalation Coverage

Attack Paths adds 20 AWS privilege-escalation queries from pathfinding.cloud, while iam_policy_allows_privilege_escalation gains 22 additional escalation combinations.

The new coverage includes service iam:PassRole paths across AWS Batch, Braket, Cognito Identity, ECS, EMR, EMR Serverless, GameLift, Glue, EC2 Image Builder, Kinesis Analytics, HealthOmics, EventBridge Scheduler, Systems Manager, and Step Functions. It also covers existing-resource abuse, permissions-boundary removal, role assumption, and IAM Identity Center permission-set policy injection.

The query catalog now exposes each AWS query's outcome category, distinguishing code execution, privilege escalation, public exposure, and resource inventory.

Explore the full Attack Paths query catalog at Prowler Hub.

Read more in the Attack Paths documentation.

🔍 Checks

Microsoft 365

Twelve new checks expand the coverage of CIS Microsoft 365 Foundations Benchmark v7.0.0:

  • Admin Center: Shared Bookings is disabled.
  • Defender: Priority account protection and strict preset security policies are enabled.
  • Entra ID: Six checks cover device registration restrictions, local administrator behavior, device limits, LAPS, and BitLocker key visibility.
  • Exchange Online: Personal accounts in Outlook on the web are disabled and Direct Send is rejected.
  • Microsoft Teams: External access from trial-only tenants is blocked.

Explore all Microsoft 365 checks at Prowler Hub.

🔐 Security

  • Prowler API, UI, SDK, and MCP container images now publish per-architecture Software Bills of Materials (SBOMs) and build-provenance attestations. Prowler Cloud production and Prowler Private Cloud images carry the same attestations.
  • SDK and API container builds verify the checksums of downloaded PowerShell, Trivy, and zizmor binaries before installation.
  • Grype now complements Trivy across the container-image security gates, detecting components and vulnerabilities that manifest-based scanners can miss and blocking fixable high and critical findings.
  • aiohttp was upgraded to 3.14.3 to address CVE-2026-69244. cryptography was upgraded to 50.0.0 to address CVE-2026-69247 and CVE-2026-69249.

UI

🚀 Added

  • Sign-in method indicators in the Prowler Cloud Users table, including linked SAML domains (#12268)
  • Compliance watchlist: pin frameworks from any compliance view and filter every view down to the pinned ones, including the overview card and a finding's compliance chips (Prowler Cloud only) (#12300)
  • Multiple verified email domains in a single SAML configuration for Prowler Cloud (#12332)
  • Container images now ship an SBOM and build provenance as OCI attestations (#12352)

🔄 Changed

  • Add Provider wizard documentation link targeting each provider's credentials section and selected authentication method (#12218)

🐞 Fixed

  • Imported scans now appear on the Scans page even when no provider is connected (#12025)
  • Feedback widget no longer obscures page and side-panel actions (#12282)
  • Rows-per-page selector no longer disappears when the chosen page size collapses a table to a single page (#12299)
  • Overview ThreatScore card no longer leaves unused horizontal space at responsive layout boundaries (#12317)
  • Overview metric cards stack below the desktop layout threshold and preserve readable widths when aligned (#12323)
  • Overview metric cards now align horizontally at medium desktop widths (#12323)
  • AWS and GCP organization onboarding launches all linked provider scans through one bulk operation (#12350)
  • /compliance no longer fails while compliance overview data is still being generated (#12358)
  • Client Secret and Refresh Token labels in the GCP organization authentication form (#12362)

🔐 Security

  • Removed the apk upgrade from the UI image and moved the base digest forward instead, so the image is reproducible from its pin rather than from whatever Alpine serves at build time (#12313)

API

🚀 Added

  • Attack Paths adds 20 AWS privilege-escalation detection queries from pathfinding.cloud, covering service PassRole escalations (Batch, Braket, Cognito Identity, ECS, EMR, EMR Serverless, GameLift, Glue, EC2 Image Builder, Kinesis Analytics, HealthOmics, EventBridge Scheduler, SSM, Step Functions), CodeDeploy and Step Functions existing-resource abuse, role permissions-boundary removal with role assumption, and IAM Identity Center permission-set policy injection (#12237)
  • Attack Paths query metadata now carries an outcome (Code execution, Privilege escalation, Public exposure, or Resource inventory), exposed on the queries endpoint so the graph can show a terminal outcome node (#12344)
  • Container images now ship an SBOM and build provenance as OCI attestations (#12352)

🔄 Changed

  • Pin the container vulnerability scanner to Trivy v0.72.0, matching prowler-registry and partner-portal (#12346)

🐞 Fixed

  • Compliance report output directory failures are now logged with the exception attached and fingerprinted by errno in Sentry, so ENOSPC, ENOENT and EACCES no longer share a single issue (#12142)
  • Restored the SDK dependency to @master now that the dependency bumps have landed there, and regenerated the lock. The API image no longer builds against a temporary integration branch (#12309)

🔐 Security

Read more

Prowler 5.37.1

Choose a tag to compare

@github-actions github-actions released this 04 Aug 10:48
43ecebc

UI

🐞 Fixed

  • Fixed image optimization in the production container: Next.js standalone tracing omitted sharp's native libvips library, so every image was served unoptimized (#12307)

🔐 Security

  • The UI container image now patches musl and zlib alongside OpenSSL, and sharp is pinned to 0.35.3, clearing the image's remaining CVEs (#12307)

API

🐞 Fixed

  • Entra Conditional Access guest-user checks no longer report false FAILs in M365 scans: microsoft-kiota packages overridden to 1.9.10 so guestOrExternalUserTypes (a flags enum Graph serializes as a comma-separated string) deserializes correctly instead of returning an empty list (#12315)

🔐 Security

  • The API container image now builds on Debian 13 (trixie), taking its critical CVE count from 18 to 4 (#12311)
  • Bumped PowerShell, Trivy and uv in the API container image, clearing 14 high-severity CVEs (#12311)
  • Bumped workos and pyopenssl so the API can move to cryptography 48.0.1 (#12311)
  • Removed gnupg and apt-transport-https from the API container image (#12311)
  • The API container image no longer ships git; removing it also dropped perl, perl-modules, libperl and liberror-perl, clearing 12 critical CVEs. Only perl-base remains, which Debian marks Essential and cannot be removed (#12311)
  • Removed pip from the API container image, clearing two high-severity CVEs in the vendored copies of setuptools and msgpack (#12311)
  • Bumped pillow to 12.3.0, httplib2 to 0.32.0 and pyasn1 to 0.6.4 to resolve known CVEs (#12311)

SDK

🔄 Changed

  • Huawei Cloud exception codes moved from 19000-19007 to 20000-20007, resolving a collision with E2E Networks which reserves 19000-19999 (#12306)

🐞 Fixed

  • Checks registered through the prowler.checks.<provider> entry-point group can now run against built-in providers. The built-in probe in _resolve_check_module used a bare find_spec, which imports the parent package to search it and so raised ModuleNotFoundError for a plug-in check instead of returning None, aborting the lookup before the entry points were consulted. Such a check was discovered, listed and selected for execution, then silently produced no findings. (#12312)
  • Entra Conditional Access guest-user checks no longer report false FAILs: microsoft-kiota packages bumped to 1.9.10 so guestOrExternalUserTypes (a flags enum Graph serializes as a comma-separated string) deserializes correctly instead of returning an empty list (#12315)

🔐 Security

  • Bumped the Compose postgres and valkey images, clearing 10 critical CVEs (#12307)
  • Bumped PowerShell, Trivy, uv and joserfc in the container images, clearing 14 high-severity CVEs from the SDK and API images (#12307)
  • Bumped httplib2 to 0.32.0 and pyasn1 to 0.6.4 to resolve known CVEs (#12307)
  • The SDK container image now builds on Debian 13 (trixie), clearing the unfixable libsqlite3-0 and zlib1g criticals (#12307)
  • Bumped cryptography to 48.0.1 to resolve GHSA-537c-gmf6-5ccf, along with the oci, alibabacloud-tea-openapi, darabonba-core and py-ocsf-models bumps it requires (#12307)
  • Removed pip from the SDK container image, clearing two high-severity CVEs in the vendored copies of setuptools and msgpack (#12307)
  • Removed wget, gnupg and apt-transport-https from the SDK runtime image (#12307)

MCP

🔐 Security

  • Bumped fastmcp and pinned cryptography, joserfc, mcp and python-multipart, clearing all 7 high-severity CVEs from the MCP image (#12307)

Prowler 5.37.0

Choose a tag to compare

@github-actions github-actions released this 03 Aug 15:53
f1b3b76

✨ New features to highlight in this version

Enjoy them all now for free at https://cloud.prowler.com

💬 Lighthouse AI — Context-Aware Chat and a Bigger Toolbox

Note

This feature is available exclusively in Prowler Cloud and Prowler Private Cloud with a subscription.

Lighthouse AI is now aware of your working context when in Prowler Cloud. Messages carry page-aware context — the page you are on, the finding or resource open in the side panel, and its metadata — so "explain this" just works, and each page offers concise contextual suggestions to start from.

side-panel-context-aware

Lighthouse also gained access to every tool family the Prowler MCP server advertises: scan configurations, scan scheduling, finding triage, alert rules and recipients, integrations, users, and roles. Every action remains gated by RBAC: Lighthouse AI can only do what the user asking could do themselves.

Read more in the Lighthouse AI documentation.

🔌 Prowler MCP — Integrations, Users, and Roles

Prowler MCP gained three tool families, available on both the Cloud and the self-hosted Local MCP Server:

  • Integrations — manage where Prowler sends its results, with the full lifecycle for Amazon S3, AWS Security Hub, and Jira: create them, update credentials, configuration and attached providers, re-check connections, and delete them — plus turning findings into Jira work items directly from a conversation.
  • Users — read-only tools to list the tenant users with their emails and identify the authenticated user.
  • Roles — browse the RBAC roles defined in the tenant, inspect the capabilities each one grants, and set the role a user holds.

Read more in the Prowler MCP tools reference.

☁️ Prowler MCP — Cloud-Only Tools

Note

This feature is available exclusively in Prowler Cloud and Prowler Private Cloud with a subscription. These tools are exposed only by the Cloud MCP Server at https://mcp.prowler.com/mcp; the self-hosted Local MCP Server does not include them.

A new prowler_cloud_* namespace adds 32 tools so your AI assistant can run Prowler Cloud workflows end to end instead of only reading from them:

  • Alerts — create and manage alert rules and email recipients, and browse the fired-alert history. Rule conditions can be dry-run before saving, so you can see what a rule would match without persisting anything.
  • Findings Triage — set a finding's triage status and attach notes documenting the decision. Unlike muting, the finding stays visible.
  • Scan Scheduling — configure daily, interval, weekly, or monthly recurring scans, one provider at a time or applied across many at once.
  • Scan Configurations — build reusable scan configuration and attach them to providers.

Read more in the Prowler Cloud MCP tools reference.

🧭 Compliance — Grouped by provider of the same type

Note

This feature is available exclusively in Prowler Cloud and Prowler Private Cloud with a subscription.

One framework, every provider, a single answer. Building on the cross-provider-type roll-up, the Compliance section now groups compliance for all providers of the same type: a single-provider framework — CIS AWS, CIS GCP, ENS for Azure — is aggregated across the latest completed scan of every provider of that type. Each framework card rolls up into a consolidated posture with a per-provider breakdown, a findings drill-down, and a combined executive PDF report. Requirement status follows the same strict precedence (FAIL over PASS over MANUAL), so one failing provider flags the requirement for the whole estate.

prowler-app-across-providers-expanded

The Compliance tabs were also renamed to say what they aggregate: "Per Scan" is now Single Scan, "Cross-Provider" is now Multiple Scans, and Compliance lands on Multiple Scans by default.

prowler-app-across-providers-detail

Read more in the Cross-Provider Compliance documentation.

☁️ GCP Organization Onboarding

Note

This feature is available exclusively in Prowler Cloud and Prowler Private Cloud with a subscription.

Onboarding an entire Google Cloud organization is now a single guided flow. Provide an organization-level credential and Prowler discovers the full hierarchy, every folder and project. Pick the folders and projects to onboard from a selection tree, set custom aliases, test the connection, and launch: each selected project is registered as a provider, with no need to add them one by one. Post-onboarding management is covered too, including credential replacement and organization-wide deletion.

Read more in the GCP Organizations documentation.

🕸️ Attack Paths — More Privilege Escalation Queries

Attack Paths adds four AWS privilege-escalation detection queries from pathfinding.cloud. Thanks to @paramanandmallik!

  • STS-002 — cross-account role trust
  • STS-003 — wildcard role trust
  • IAM-022 — user permissions-boundary removal
  • SSO-001 — IAM Identity Center permission-set escalation

The query info panel now links every query to its page on Prowler Hub, and the IAM privilege-escalation queries were reworked to run efficiently on accounts with many IAM roles, users, or groups, fixing runtime errors and timeouts on large graphs.

Read more in the Attack Paths documentation.

🛡️ AWS Confidential Computing — Nitro Enclaves Checks

Prowler adds the first CSPM coverage for confidential computing workloads on AWS, with 11 new checks for Nitro Enclaves, developed together with Guillermo Ruiz from AWS.

  • Workload host environment (EC2) — five ec2_confidential_workload_host_* checks for the parent instance: IMDSv2 not enforced, public IP exposure, unrestricted ingress, exposed vsock proxy ports, and hosts not running.
  • KMS attestation policy — six kms_key_enclave_* checks for the key policies gating enclave secrets: attestation not enforced or bypassable, missing deployment binding, debug-mode attestations, PCR mismatches, and unknown enclave images.

All checks are fully passive, using AWS APIs and CloudTrail with no instance access or SSM agent required, and are mapped across 23 compliance frameworks, including NIST 800-53 Rev 5, PCI-DSS v4.0, ISO 27001:2022, SOC 2, HIPAA, and MITRE ATT&CK.

Read more about it this blog post.

Try them out now at cloud.prowler.com!

🏢 New Provider — Huawei Cloud

Prowler now scans Huawei Cloud, with 25 checks across ten services: CTS, ECS, ELB, EVS, IAM, KMS, OBS, RDS, VPC, and WAF, plus the CIS Huawei Cloud Foundations Benchmark 1.0 compliance framework. Thanks to @tomitobio for their 1st provider in Prowler!

To scan a Huawei Cloud account, export the IAM user's access key credentials and run Prowler CLI:

export HUAWEICLOUD_ACCESS_KEY_ID="your-access-key-id"
export HUAWEICLOUD_SECRET_ACCESS_KEY="your-secret-access-key"

prowler huaweicloud

Read more in the Huawei Cloud documentation. Explore all Huawei Cloud checks at Prowler Hub.

🔍 Checks

AWS

  • codecommit_repository_no_secrets, alongside the new codecommit service, scans files tracked at the tip of each repository's default branch for hardcoded secrets. Thanks to @Sid-0602!
  • glue_catalog_connection_no_secrets detects secrets in Glue Data Catalog connection properties. Thanks to @l46983284-cpu, @Rishi943, and @UTKARSH698!
  • ec2_instance_stopped_older_than_specific_days detects EC2 instances stopped longer than a configurable number of da...
Read more

Prowler 5.36.0

Choose a tag to compare

@github-actions github-actions released this 24 Jul 11:44
685d24d

✨ New features to highlight in this version

Enjoy them all now for free at https://cloud.prowler.com

🎫 Finding Groups - Jira

Note

This feature is available exclusively in Prowler Cloud and Prowler Private Cloud with a subscription.

Selected Findings, Finding Groups, and mixed selections can now be sent to Jira. When you select multiple findings, choose between one grouped issue or separate issues. Generated issues keep their Prowler context with deep links and filter details, while the UI provides clear dispatch and failure feedback.

image

Read more in our Jira integration documentation.

🕸️ Attack Paths - Queries

Note

This feature is available exclusively in Prowler Cloud and Prowler Private Cloud with a subscription.

Prowler Cloud now records which built-in Attack Paths queries returned data at the end of each scan. The query selector hides confirmed-empty queries for the selected scan, so you can focus on paths that exist without opening blank graph views. Errored, unknown, and parameterized queries remain available when they still require investigation or input.

All Attack Paths queries are now published on Prowler Hub, where you can browse the full catalog.

image

Read more in our Attack Paths documentation.

🧑‍🏫 New Tutorials: Connect Your AI Agents to Prowler Cloud

Note

For this feature you need a Prowler Cloud API key so this is available exclusively in Prowler Cloud and Prowler Private Cloud with a subscription.

New tutorials walk you through connecting your own AI agents to Prowler Cloud, so they can query your security posture and act on it programmatically.

Read more in our AI agents documentation.

☁️ Region-less Oracle Cloud Infrastructure Setup

Oracle Cloud Infrastructure (OCI) provider credentials no longer require a region. Existing clients can still send the legacy region field for compatibility, but the API ignores it before storing credentials or starting a scan. This removes an unnecessary step from OCI onboarding.

Read more in our OCI documentation.

🔍 Checks

AWS

  • sagemaker_notebook_instance_no_secrets scans the OnCreate and OnStart lifecycle scripts of SageMaker notebook instances for hardcoded API keys, passwords, tokens, connection strings, and other secrets. Thanks to @kiranrajsg!

Read more in our AWS documentation.

Explore all AWS checks at Prowler Hub.

🔐 Security

  • Integration responses and operations now respect provider visibility, preventing hidden-provider disclosure and blocking unauthorized attachment, connection checks, Jira dispatches, edits, and deletion.
  • Next.js was updated from 16.2.9 to 16.2.11, patching four high-severity and five medium-severity vulnerabilities.
  • The unused npm CLI was removed from the UI container image, eliminating the bundled node-tar CVE-2026-59873 and reducing exposure to future bundled npm vulnerabilities.
  • Vitest and its browser packages were updated from 4.1.8 to 4.1.10, resolving the critical @vitest/browser file-access permission bypass. These are development dependencies and have no runtime impact.
  • Kubernetes kubeconfig validation now blocks legacy auth-provider.config.cmd-path command authentication, closing a command-execution bypass. GHSA-ccqh-6cjc-wp4j
  • next-auth was updated from 5.0.0-beta.30 to 5.0.0-beta.32, patching two critical Auth.js advisories: existence-based authorization checks that could fail open when a provider is misconfigured, and a homoglyph @ bypass in email address normalization. The bump also pulls in the patched @auth/core 0.41.3 transitively.

🙌 External Contributors

Thank you to our community contributors for this release!

  • @kiranrajsg: AWS sagemaker_notebook_instance_no_secrets check (#11843)
  • @owenchenxy: Alibaba Cloud SSH and RDP security group checks now handle capitalized Policy="Accept" values correctly (#12049)
  • @rsaladra: S3 bucket name validation no longer raises an invalid escape sequence SyntaxWarning at startup (#12041)
  • @SujayKulkarni-2211 - Updated the AWS check count in the README (#12011)

UI

🚀 Added

  • Finding Groups and grouped selections can be sent to Jira in Cloud with deep links, filter chip display, and Jira feedback toasts (#12001)
  • In Prowler Cloud, the Attack Paths query selector now lists only queries that returned data for the selected scan, hiding empty ones (#12010)
  • Overview banner linking to the AI agents documentation, shown next to the Lighthouse AI banner in Cloud and full width on self-hosted deployments (#12074)

🐞 Fixed

  • Findings Severity Over Time chart Y-axis labels no longer overflow for large findings counts (#11545)
  • UI Sentry alerts now suppress non-actionable warnings and expected API/control-flow noise while preserving actionable runtime failures (#11665)
  • OCI provider E2E tests no longer require or submit a region when adding or updating credentials (#11741)
  • Billing navigation is hidden when Cloud billing is disabled, including Enterprise deployments (#12047)
  • AWS Organizations setup modal now shows the "Enter a valid Organizational Unit or Root ID" hint in the error color, clarifying why the deployment button is disabled (#12063)
  • Sidebar logo top spacing in the main app sidebar (#12066)
  • Contextual Cloud upgrade modal content remains stable throughout the closing animation (#12067)
  • Tenant switches now refresh session user permissions for the selected tenant (#12087)

🔐 Security

  • Removed the unused npm CLI from the UI container image, eliminating the bundled node-tar CVE-2026-59873 (and future bundled-npm CVEs); the image builds with pnpm via corepack and does not use npm (#12065)
  • Bumped vitest and @vitest/browser, @vitest/browser-playwright, @vitest/coverage-v8 from 4.1.8 to 4.1.10, resolving the critical @vitest/browser Browser Mode file-access permission bypass (GHSA-p63j-vcc4-9vmv) flagged by pnpm audit; dev dependencies only, no runtime impact (#12077)
  • Kubernetes credential forms now reject kubeconfig files using legacy auth-provider.config.cmd-path command authentication (#12091)
  • Next.js from 16.2.9 to 16.2.11, patching 4 high- and 5 medium-severity vulnerabilities (#12093)
  • next-auth from 5.0.0-beta.30 to 5.0.0-beta.32, patching 2 critical Auth.js advisories (GHSA-8fpg-xm3f-6cx3 fail-open auth checks, GHSA-7rqj-j65f-68wh email homoglyph bypass) (#12108)

API

🔄 Changed

  • OCI provider secrets no longer require region; legacy region input is accepted for backwards compatibility but ignored before storing or scanning (#11741)
  • Compliance overview ingest now runs in a single transaction per scan with a configurable COPY batch size (DJANGO_COMPLIANCE_COPY_BATCH_SIZE, default 2000), reducing write pressure on the database (#11875)

🐞 Fixed

  • Scan findings now recover resources missing from the in-memory cache after resource pre-resolution, preventing valid findings from being skipped (#12002)
  • Tenant-wide integrations that are not attached to any provider, such as Jira, are now visible and manageable by roles with manage_integrations and without unlimited visibility (#12060)
  • Output generation now removes the scan's temporary output directory before writing, so a re-run of the task for the same scan (e.g. broker redelivery after a worker is killed mid-run) no longer appends to the previous run's files and duplicates finding rows in the exported CSV and other outputs (#12097)

🔐 Security

  • Integration responses no longer disclose providers outside the visibility of the role, including the resources sideloaded through ?include=providers (#12060)
  • Integration connection checks, Jira issue type lookups and Jira dispatches now resolve the integration through the provider visibility of the role instead ...
Read more

Prowler 5.35.0

Choose a tag to compare

@github-actions github-actions released this 17 Jul 10:44
9b0c4a0

✨ New features to highlight in this version

Enjoy them all now for free at https://cloud.prowler.com

💬 Lighthouse AI - Side Chat

Note

This feature is available exclusively in Prowler Cloud and Prowler Private Cloud with a subscription.

Lighthouse AI now lives in a side panel you can open from anywhere in the app. Ask about the findings you are looking at without leaving the page, and expand to the full-page chat at any time: your draft, messages, and streaming response come along. Finding and resource details share the same panel, with tabs to switch between Details and Lighthouse AI.

lighthouse-ai-side-chat

Read more in our Lighthouse AI documentation.

🤖 Lighthouse AI - Take Action

Note

This feature is available exclusively in Prowler Cloud and Prowler Private Cloud with a subscription.

Lighthouse AI is no longer read-only. Ask it to do things and it will: connect or remove providers, trigger a scan, schedule daily scans, update scan settings, and manage your mutelist and mute rules, straight from the chat. Every action is gated by RBAC: Lighthouse can only do what the user asking could do themselves.

Read more in our Lighthouse AI capabilities.

☁️ One-step AWS Organizations onboarding

Note

This feature is available exclusively in Prowler Cloud and Prowler Private Cloud with a subscription.

Onboarding an entire AWS Organization is now a single step. One CloudFormation quick-create link deploys the management account role and a service-managed StackSet that rolls the role out to every member account, replacing the manual StackSet console setup. Target the whole organization or a specific Organizational Unit or Root ID, and deploy from the management account or a delegated administrator. The S3 integration quick-create link also pre-fills the bucket owner account ID, preventing a stack validation error.

aws-orgs-wizard

Built on the full-organization CloudFormation template contributed by @jchrisfarris — thanks!

Read more in our AWS Organizations documentation.

🎯 Scan configurations: exclude checks and services

Note

This feature is available exclusively in Prowler Cloud and Prowler Private Cloud with a subscription.

Scan configurations now accept excluded_checks and excluded_services to narrow the execution scope. Skip individual checks or entire services per provider, and the scan does not run them at all: less noise, faster scans, and no findings you would mute anyway.

Read more in our Scan Configuration documentation.

🧭 Redesigned sidebar navigation

The sidebar was redesigned around how you actually work: grouped sections for security, settings, and help, a Home/Chat switch at the top, collapsible configuration entries, clearer active states, and a responsive mobile overlay.

new-menu

🔌 Prowler MCP tools renamed to prowler_*

Core Prowler tools in Prowler MCP moved from the prowler_app_* prefix to the shorter prowler_* namespace, and the MCP documentation was restructured around it. Legacy prowler_app_* names keep working in Lighthouse AI, so existing setups are not broken.

Read more in our Prowler MCP tools reference.

🔐 Security

  • Jira integration credentials now only accept bare Atlassian site names (letters, numbers, and hyphens), and Jira tenant information requests validate site names and no longer follow redirects.
  • Social account linking now requires a verified matching email from both the identity provider and the existing user account, and account connection notification emails are disabled.
  • 13 advisories reported by pnpm audit on the UI (3 high, 9 moderate, 1 low) are resolved with patched versions of hono, ws, vite, dompurify, js-yaml, @opentelemetry/core, and @babel/core, including hono CVE-2026-59896.

🙌 External Contributors

No external contributors in this release.

Special mention to @jchrisfarris, whose full-organization CloudFormation template from v5.34.0 powers the new one-step AWS Organizations onboarding (#10403).


UI

🔄 Changed

  • AWS Organizations onboarding now deploys the management account role and the member-account StackSet from a single CloudFormation stack, replacing the manual StackSet console step (#11927)
  • Dynamic providers can now be renamed and deleted from the Providers table (#11957)
  • Sidebar navigation with grouped sections, clearer active states, and a responsive mobile overlay (#11994)
  • Core Prowler tools in Lighthouse use the prowler_* namespace while preserving legacy prowler_app_* compatibility (#12017)

🐞 Fixed

  • The AWS S3 integration CloudFormation quick-create link now sets the bucket owner account ID, preventing a stack validation error when S3 integration is enabled (#11927)
  • Scan ID filter on the Findings page now shows the active scan when opening findings from a scan's View Findings action (#11997)

🔐 Security

  • js-yaml to 4.3.0, @sentry/nextjs to 10.65.0 with import-in-the-middle 3.3.1, and transitive hono, dompurify, ws, vite, @babel/core and @opentelemetry/core to patched versions, resolving 13 npm audit advisories (3 high, 9 moderate, 1 low) plus hono CVE-2026-59896, published on NVD but not yet in the npm audit feed (#12029)

API

🐞 Fixed

  • attack-paths-scan-perform Celery tasks now use the configurable long-task time limits instead of the six-hour defaults (#12009)
  • Attack Paths scans handle provider deletion races cleanly, detect stale tasks after 16 hours, use backend-specific graph synchronization batches, and report exhausted Neptune write retries with the original database error (#12019)

🔐 Security

  • Jira integration credentials only accept bare Atlassian site names containing letters, numbers, and hyphens (#12012)
  • Social account linking requires a verified matching email from both the identity provider and the existing user account without sending account connection notifications (#12013)

SDK

🚀 Added

  • excluded_checks and excluded_services in scan configurations to narrow the execution scope (#12028)

🔐 Security

  • Jira tenant information requests validate site names and do not follow redirects (#12012)

MCP

🔄 Changed

  • Core Prowler tool namespace from the prowler_app_* prefix to prowler_* (#12017)

Prowler 5.34.0

Choose a tag to compare

@github-actions github-actions released this 15 Jul 15:24
dc99ec3

✨ New features to highlight in this version

Enjoy them all now for free at https://cloud.prowler.com

🏷️ New product names

The Prowler family has grown, and the names now say what each product is. Same products, clearer names:

Prowler products:

  • Prowler Cloud — the managed cloud security platform operated by the Prowler team.
  • Prowler Private Cloud (formerly Prowler Enterprise) — the self-hosted deployment of Prowler Cloud in your own environment.
  • Prowler Hub — the free public library of versioned checks, cloud service artifacts, and compliance frameworks.
  • Prowler Lighthouse AI — The Agentic Cloud Defender in Prowler Cloud and Prowler Private Cloud.
  • Prowler MCP — the MCP server that connects AI assistants and agents to Prowler, including the IDE plugins.

Open source projects:

  • Prowler CLI — the command-line scanner for all supported providers.
  • Prowler Local Server (formerly Prowler App) — the self-hosted web application and API to run scans, visualize findings, and manage providers.
  • Prowler Local Dashboard — the web dashboard for visualizing Prowler CLI scan results, distributed with the CLI.
  • Prowler SDK — the Python library behind Prowler CLI and Prowler Local Server.

See the full family in the Prowler products documentation.

🧭 Cross-Provider Compliance

Note

This feature is available exclusively in Prowler Cloud and Prowler Private Cloud with a subscription.

One framework, every cloud, a single answer. The new Cross-provider tab in Compliance takes the most recent completed scan of every compatible provider and rolls them up into a single compliance posture per framework, with a per-provider breakdown and a combined executive PDF report. Requirement status follows strict precedence (FAIL > PASS > MANUAL), so one failing provider is enough to flag a requirement across your whole estate.

Screenshot 2026-07-15 at 17 18 25

Three universal frameworks support it today:

  • CIS Controls 8.1 — AWS, Azure, Google Cloud, Microsoft 365, Kubernetes, GitHub, Google Workspace, Okta, Oracle Cloud, Alibaba Cloud, Cloudflare, MongoDB Atlas, OpenStack, and Vercel.
  • CSA CCM 4.0 — AWS, Azure, Google Cloud, Alibaba Cloud, and Oracle Cloud.
  • DORA 2022/2554 — AWS, Azure, Google Cloud, Alibaba Cloud, and Cloudflare.

Filter by provider type, account, or provider group, drill into each framework's requirements, and export the combined PDF.

Screenshot 2026-07-15 at 17 18 32

Read more in our Cross-Provider Compliance documentation.

🏢 New Provider — E2E Networks

Prowler now scans E2E Networks, with 27 checks spanning compute nodes, networking, security groups, load balancers, block and file storage, and managed databases. Thanks to @deepak7093 for their 1st provider in Prowler!

Available in the Prowler CLI:

export E2E_NETWORKS_API_KEY="your-api-key"
export E2E_NETWORKS_AUTH_TOKEN="your-auth-token"
export E2E_NETWORKS_PROJECT_ID="your-project-id"
prowler e2enetworks

Read more in our E2E Networks documentation.

Explore all E2E Networks checks at Prowler Hub.

🔐 Security

User role relationship updates in the API are now limited to the active tenant, preserving the role assignments the same user holds in other tenants.

🔍 Checks

AWS

  • ec2_ami_account_block_public_access — verifies AMI block public access is enabled at the account level in each Region, so AMIs cannot be shared publicly. Thanks to @goutham-hari!
  • datapipeline_pipeline_no_secrets_in_definition — scans Data Pipeline object fields, parameter objects, and parameter values for hardcoded secrets with Kingfisher. Thanks to @YinkaMetrics!
  • elbv2_listener_pqc_tls_enabled — verifies ELBv2 HTTPS/TLS listeners use post-quantum TLS security policies with TLS 1.2 or higher, helping reduce harvest-now-decrypt-later exposure.
  • amplify_app_no_secrets_in_environment — scans Amplify app and branch environment variables and build settings (buildSpec) for hardcoded secrets with Kingfisher. Thanks to @Deep070203!

Read more in our AWS documentation.

Explore all AWS checks at Prowler Hub.

Azure

  • app_function_ensure_http_is_redirected_to_https — verifies that Function Apps enforce HTTPS-only traffic. Thanks to @amandalal007!

Read more in our Azure documentation.

Explore all Azure checks at Prowler Hub.

Kubernetes

  • core_minimize_hostpath_volume_mounts — detects Pods that use hostPath volumes. Thanks to @0xTaoZ!
  • core_readonly_root_filesystem_enabled — verifies that every container in each Pod explicitly sets readOnlyRootFilesystem: true in its security context. Thanks to @Weedle02!

Read more in our Kubernetes documentation.

Explore all Kubernetes checks at Prowler Hub.

STACKIT

  • iaas_server_public_ip_attached — flags IaaS servers that have a public IP address directly attached to a network interface. Thanks to @johannes-engler-mw!

Read more in our STACKIT documentation.

Explore all STACKIT checks at Prowler Hub.

🙌 External Contributors

Thank you to our community contributors for this release!


UI

🚀 Added

  • Dynamically registered providers are now listed, filtered, and rendered across the UI, using a generic icon and humanized label when no bespoke assets exist, a "Custom" badge, and read-only handling for non-configurable providers (#11869)
  • Prowler Local Server branding and contextual Prowler Cloud upgrade prompts across navigation, scans, providers, compliance, findings, alerts, and Lighthouse AI (#11982)

🔄 Changed

  • UI components migrated from HeroUI to shared shadcn primitives (#11532)
  • UI integration enable flags renamed to past tense — UI_SENTRY_ENABLEUI_SENTRY_ENABLED, UI_GOOGLE_TAG_MANAGER_ENABLEUI_GOOGLE_TAG_MANAGER_ENABLED, UI_POSTHOG_ENABLEUI_POSTHOG_ENABLED; deployments that set the former names must update them (#11917)

🐞 Fixed

  • Metronome billing failing to start when PostHog was enabled, caused by a stale reference to the renamed UI_POSTHOG_ENABLED flag (#11938)
  • Lighthouse AI overview entry now starts a new remediation conversation, and returning to Overview restores app navigation mode (#11955)

API

🐞 Fixed

  • rls_transaction now falls back directly to the primary DB for connection-level mid-query read replica failures via execute_wrapper, reducing non-streaming read crashes during replica recovery (#10379)
  • RBAC permission gates now combine permissions from every role assigned to a user in the active tenant (#11979)
  • attack-paths-cleanup-stale-scans now retries worker pings and checks recent scan activity before failing scans and removing temporary databases (#11986)

🔐 Security

  • User role relationship updates are ...
Read more

Prowler 5.33.2

Choose a tag to compare

@github-actions github-actions released this 14 Jul 10:50
eaee262

API

🐞 Fixed

  • Attack Paths graph mutations now retry transient Neptune concurrency and deadline failures, while Neo4j mutations use managed transaction retries (#11968)
  • Attack Paths scans now use bounded child node identifiers for normalized list values in Neo4j and Neptune, preventing Neo4j RANGE index key size failures (#11969)
  • scan-summary aggregation now upserts summaries in deterministic conflict-key order, preventing PostgreSQL deadlocks during concurrent reaggregation (#11971)

SDK

🐞 Fixed

  • EC2 AMI loading now targets Amazon-owned AMIs used by audited instances, reducing AWS API calls during EC2 scans (#11958)
  • ec2_instance_account_imdsv2_enabled findings now use regional resource ARNs, preventing findings from different AWS Regions from collapsing into one resource (#11966)

Prowler 5.33.1

Choose a tag to compare

@github-actions github-actions released this 10 Jul 13:28
7345e05

UI

🔄 Changed

  • RBAC role forms now explain Unlimited Visibility inside the Visibility section and keep the setting visible while group selection is hidden (#11890)

🐞 Fixed

  • CIS Level 1 and Level 2 compliance filters now match profiles prefixed with a license tier (e.g. "E3 Level 1"), so M365 CIS requirements are no longer hidden (#11924)
  • Jira dispatch polling now reports failed issue creation tasks instead of treating partial failures as successful (#11925)

API

🐞 Fixed

  • Session tokens are rejected after account password updates (#11914)
  • Jira dispatch task results now surface user-facing Jira failure messages (#11925)
  • AWS Attack Paths privilege escalation queries no longer fail on Neo4j with Aggregation column contains implicit grouping expressions (#11939)

🔐 Security

  • OpenAI-compatible Lighthouse provider base URLs are restricted before connection checks (#11940)
  • LIGHTHOUSE_AI_OPENAI_COMPATIBLE_ALLOWED_HOSTS environment variable to allow internal hosts as OpenAI-compatible Lighthouse AI base URLs (#11942)

SDK

🐞 Fixed

  • ECS task definition resource limits now select the latest task definitions by registration date instead of relying on ARN ordering (#11891)
  • dlm_ebs_snapshot_lifecycle_policy_exists no longer initializes the full EC2 inventory just to detect EBS snapshots, avoiding slow scans when checking DLM lifecycle policies (#11900)
  • dms_instance_no_public_access no longer initializes the full EC2 service when there are no DMS replication instances (#11902)
  • organizations_scp_check_deny_regions no longer reports false FAIL for AWS Organizations that restrict regions with Allow-based SCPs; the Allow path now checks the statement Effect instead of an always-false comparison that made it unreachable (#11915)
  • Jira issue creation failures now preserve safe structured response details from Jira (#11925)
  • Azure Function App optional permission failures now log as warnings, and Function App environment variable fields use the correct spelling internally (#11926)

Prowler 5.33.0

Choose a tag to compare

@github-actions github-actions released this 07 Jul 15:52
4526b91

✨ New features to highlight in this version

Enjoy them all now for free at https://cloud.prowler.com

🤖 Lighthouse AI — The Agentic Cloud Defender

Note

This feature is available exclusively in Prowler Cloud and Prowler Enterprise with a subscription.

Lighthouse AI is now a full agentic assistant wired to the Prowler Cloud backend. Ask it about your findings, your compliance posture, or your riskiest resources, and watch it work: the agent discovers and runs the Prowler tools it needs to answer, with every tool call visible in the new agentic view. It reads your security data through read-only tools, so it can never touch secrets or modify your tenant.

lighthouse-ai-1

The chat experience is rebuilt around persistent sessions: conversations stream in real time, stay in your session history, can be archived, and a sidebar chat mode lets you ask questions from any page in the app without losing your place.

lighthouse-ai-2

You control the brain behind it. Configure one or more LLM providers — OpenAI, Amazon Bedrock, or any OpenAI-compatible endpoint (OpenRouter, Ollama) — with connection testing built into the setup and per-provider model selection. Prowler Cloud defaults to GPT-5.5. Add a shared business context (your security goals, compliance needs, organizational priorities) and every session uses it to give answers that fit your environment.

lighthouse-ai-3

Read more in our Lighthouse AI documentation and the multiple LLM providers guide.

📄 Compliance PDF Reports Without Credentials

Compliance PDF reports no longer require the provider's credentials to be present. Findings are now enriched from the provider metadata stored in the database, so a report still generates even after the provider secret has been deleted or its credentials have become invalid.

Read more in our compliance documentation.

⏳ Scan Queueing

Overlapping scans for the same provider now queue behind the active one instead of dispatching concurrent scan workers. Launch a manual scan while a scheduled one is running and it waits its turn. No more duplicated work or racing scans.

🔐 Security

The Kubernetes provider credentials now reject kubeconfigs using exec authentication in Prowler Cloud, at the API and in the credential form, preventing user-supplied commands from running on Cloud workers.

Read more in the Kubernetes provider authentication documentation.

🙌 External Contributors

Thank you to our community contributors for this release!

  • @kratos0718 — Azure postgresql_flexible_server_log_retention_days_greater_3 Flexible Server log retention fix (#11761)
  • @Sanjays2402KeyError: 'MANUAL' crash fix in the compliance summary table, shipped early in v5.32.1 (#11823)

UI

🚀 Added

  • Owners can delete their last organization from the profile page (#11864)

🔄 Changed

  • Organization row actions in the profile page are aligned in fixed columns and the Active indicator now sits next to the organization name (#11864)
  • Sentry, Google Tag Manager, and PostHog now load their UI_* config only when the matching enable flag (UI_SENTRY_ENABLE / UI_GOOGLE_TAG_MANAGER_ENABLE / UI_POSTHOG_ENABLE) is "true" (default off); the deprecated legacy names (NEXT_PUBLIC_*, POSTHOG_KEY/POSTHOG_HOST) still activate without the flag (#11682)

API

🚀 Added

  • Compliance PDF reports no longer require provider credentials: findings are enriched from the provider metadata stored in the database, so reports generate even after the provider secret is deleted or its credentials become invalid (#11845)

🐞 Fixed

  • Provider scans now queue behind active provider scans instead of dispatching concurrently, and resource failed-finding counters retry database conflicts with stable row locking (#11848)

SDK

🐞 Fixed

  • Azure resource group scoped scans now keep subscription entries when scoped resource listing fails, clarify helper documentation and test organization, and align the resource group documentation example with the described values (#11796)
  • Azure postgresql_flexible_server_log_retention_days_greater_3 check now queries the logfiles.retention_days configuration parameter instead of log_retention_days (which only exists on the retired Single Server), fixing false FAIL results on every Flexible Server regardless of the actual retention value (#11761)

Prowler 5.32.1

Choose a tag to compare

@github-actions github-actions released this 06 Jul 15:49
cca0d28

UI

🐞 Fixed

  • Invitation callback paths are now preserved when invited users continue with Google, GitHub, or SAML authentication (#11752)

API

🐞 Fixed

  • Attack Paths: Scan rows now have database defaults for is_migrated and sink_backend so scan-perform-scheduled inserts survive deploy skew (#11826)
  • Invited users now keep their invitation context when completing authentication with Google, GitHub, or SAML, so the invitation is accepted during login (#11752)

🔐 Security

  • User profile updates now allow users to update their own account while requiring user-management permissions to update other users in the same tenant (#11792)

SDK

🐞 Fixed

  • KeyError: 'MANUAL' crash while rendering the compliance summary table (e.g. CIS Microsoft 365) when a framework has manual, checks-less requirements with a Level 1/Level 2 profile; MANUAL findings are now skipped in the PASS/FAIL section tally instead of raising (#11822)