Releases: prowler-cloud/prowler
Release list
Prowler 5.38.0
✨ 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.
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.
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.
🕸️ 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.
aiohttpwas upgraded to 3.14.3 to address CVE-2026-69244.cryptographywas 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 Providerwizard 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)
/complianceno longer fails while compliance overview data is still being generated (#12358)Client SecretandRefresh Tokenlabels in the GCP organization authentication form (#12362)
🔐 Security
- Removed the
apk upgradefrom 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
errnoin Sentry, soENOSPC,ENOENTandEACCESno longer share a single issue (#12142) - Restored the SDK dependency to
@masternow that the dependency bumps have landed there, and regenerated the lock. The API image no longer builds against a temporary integration branch (#12309)
🔐 Security
- The API container image now verifies the checksum of every third-party binary it downloads (PowerShell, Trivy, zizmor) before installing it (#12334)
- Upgrade aiohttp to 3.14.3 to pick up the fix for CVE-2026-69244 [(#12340)](https://github.com/prowler-cloud/prowler/pull...
Prowler 5.37.1
UI
🐞 Fixed
- Fixed image optimization in the production container: Next.js standalone tracing omitted
sharp's nativelibvipslibrary, so every image was served unoptimized (#12307)
🔐 Security
- The UI container image now patches musl and zlib alongside OpenSSL, and
sharpis 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
workosandpyopensslso the API can move tocryptography48.0.1 (#12311) - Removed
gnupgandapt-transport-httpsfrom the API container image (#12311) - The API container image no longer ships
git; removing it also droppedperl,perl-modules,libperlandliberror-perl, clearing 12 critical CVEs. Onlyperl-baseremains, which Debian marks Essential and cannot be removed (#12311) - Removed
pipfrom the API container image, clearing two high-severity CVEs in the vendored copies ofsetuptoolsandmsgpack(#12311) - Bumped
pillowto 12.3.0,httplib2to 0.32.0 andpyasn1to 0.6.4 to resolve known CVEs (#12311)
SDK
🔄 Changed
- Huawei Cloud exception codes moved from
19000-19007to20000-20007, resolving a collision with E2E Networks which reserves19000-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_moduleused a barefind_spec, which imports the parent package to search it and so raisedModuleNotFoundErrorfor a plug-in check instead of returningNone, 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
postgresandvalkeyimages, clearing 10 critical CVEs (#12307) - Bumped PowerShell, Trivy, uv and
joserfcin the container images, clearing 14 high-severity CVEs from the SDK and API images (#12307) - Bumped
httplib2to 0.32.0 andpyasn1to 0.6.4 to resolve known CVEs (#12307) - The SDK container image now builds on Debian 13 (trixie), clearing the unfixable
libsqlite3-0andzlib1gcriticals (#12307) - Bumped
cryptographyto 48.0.1 to resolve GHSA-537c-gmf6-5ccf, along with theoci,alibabacloud-tea-openapi,darabonba-coreandpy-ocsf-modelsbumps it requires (#12307) - Removed
pipfrom the SDK container image, clearing two high-severity CVEs in the vendored copies ofsetuptoolsandmsgpack(#12307) - Removed
wget,gnupgandapt-transport-httpsfrom the SDK runtime image (#12307)
MCP
🔐 Security
- Bumped
fastmcpand pinnedcryptography,joserfc,mcpandpython-multipart, clearing all 7 high-severity CVEs from the MCP image (#12307)
Prowler 5.37.0
✨ 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.
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.
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.
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 huaweicloudRead more in the Huawei Cloud documentation. Explore all Huawei Cloud checks at Prowler Hub.
🔍 Checks
AWS
codecommit_repository_no_secrets, alongside the newcodecommitservice, scans files tracked at the tip of each repository's default branch for hardcoded secrets. Thanks to @Sid-0602!glue_catalog_connection_no_secretsdetects secrets in Glue Data Catalog connection properties. Thanks to @l46983284-cpu, @Rishi943, and @UTKARSH698!ec2_instance_stopped_older_than_specific_daysdetects EC2 instances stopped longer than a configurable number of da...
Prowler 5.36.0
✨ 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.
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.
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_secretsscans theOnCreateandOnStartlifecycle 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
npmCLI was removed from the UI container image, eliminating the bundlednode-tarCVE-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/browserfile-access permission bypass. These are development dependencies and have no runtime impact. - Kubernetes kubeconfig validation now blocks
legacy auth-provider.config.cmd-pathcommand authentication, closing a command-execution bypass. GHSA-ccqh-6cjc-wp4j next-authwas 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/core0.41.3 transitively.
🙌 External Contributors
Thank you to our community contributors for this release!
- @kiranrajsg: AWS
sagemaker_notebook_instance_no_secretscheck (#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
SyntaxWarningat 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
npmCLI from the UI container image, eliminating the bundlednode-tarCVE-2026-59873(and future bundled-npm CVEs); the image builds withpnpmviacorepackand does not usenpm(#12065) - Bumped
vitestand@vitest/browser,@vitest/browser-playwright,@vitest/coverage-v8from4.1.8to4.1.10, resolving the critical@vitest/browserBrowser Mode file-access permission bypass (GHSA-p63j-vcc4-9vmv) flagged bypnpm audit; dev dependencies only, no runtime impact (#12077) - Kubernetes credential forms now reject kubeconfig files using legacy
auth-provider.config.cmd-pathcommand 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; legacyregioninput 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
COPYbatch 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_integrationsand 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 ...
Prowler 5.35.0
✨ 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.
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.
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.
🔌 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 auditon the UI (3 high, 9 moderate, 1 low) are resolved with patched versions ofhono,ws,vite,dompurify,js-yaml,@opentelemetry/core, and@babel/core, includinghonoCVE-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 legacyprowler_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 IDfilter on the Findings page now shows the active scan when opening findings from a scan'sView Findingsaction (#11997)
🔐 Security
js-yamlto 4.3.0,@sentry/nextjsto 10.65.0 withimport-in-the-middle3.3.1, and transitivehono,dompurify,ws,vite,@babel/coreand@opentelemetry/coreto patched versions, resolving 13 npm audit advisories (3 high, 9 moderate, 1 low) plushonoCVE-2026-59896, published on NVD but not yet in the npm audit feed (#12029)
API
🐞 Fixed
attack-paths-scan-performCelery 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_checksandexcluded_servicesin 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 toprowler_*(#12017)
Prowler 5.34.0
✨ 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.
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.
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 e2enetworksRead 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 usehostPathvolumes. Thanks to @0xTaoZ!core_readonly_root_filesystem_enabled— verifies that every container in each Pod explicitly setsreadOnlyRootFilesystem: truein 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!
- @jchrisfarris - Deploy AWS Organizations with the CloudFormation template in one step (#10403)
- @deepak7093 — New E2E Networks provider: 27 checks across compute nodes, networking, security groups, load balancers, block/file storage, and managed databases (#11654)
- @goutham-hari — AWS
ec2_ami_account_block_public_accesscheck (#11828) - @YinkaMetrics — AWS
datapipeline_pipeline_no_secrets_in_definitioncheck (#11821) - @amandalal007 — Azure
app_function_ensure_http_is_redirected_to_httpscheck (#11929) - @0xTaoZ — Kubernetes
core_minimize_hostpath_volume_mountscheck (#11837) - @Weedle02 — Kubernetes
core_readonly_root_filesystem_enabledcheck (#11835) - @johannes-engler-mw — STACKIT
iaas_server_public_ip_attachedcheck (#11549) - @janderik — Trailing newlines added to compliance, region, and fixture data files for POSIX compliance (#11765)
- @Deep070203 — AWS
amplify_app_no_secrets_in_environmentcheck (#11825)
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_ENABLE→UI_SENTRY_ENABLED,UI_GOOGLE_TAG_MANAGER_ENABLE→UI_GOOGLE_TAG_MANAGER_ENABLED,UI_POSTHOG_ENABLE→UI_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_transactionnow falls back directly to the primary DB for connection-level mid-query read replica failures viaexecute_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-scansnow retries worker pings and checks recent scan activity before failing scans and removing temporary databases (#11986)
🔐 Security
- User role relationship updates are ...
Prowler 5.33.2
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-summaryaggregation now upserts summaries in deterministic conflict-key order, preventing PostgreSQL deadlocks during concurrent reaggregation (#11971)
SDK
🐞 Fixed
Prowler 5.33.1
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_HOSTSenvironment 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_existsno longer initializes the full EC2 inventory just to detect EBS snapshots, avoiding slow scans when checking DLM lifecycle policies (#11900)dms_instance_no_public_accessno longer initializes the full EC2 service when there are no DMS replication instances (#11902)organizations_scp_check_deny_regionsno longer reports falseFAILfor AWS Organizations that restrict regions with Allow-based SCPs; the Allow path now checks the statementEffectinstead 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
✨ 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.
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.
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.
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_3Flexible Server log retention fix (#11761) - @Sanjays2402 —
KeyError: '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_3check now queries thelogfiles.retention_daysconfiguration parameter instead oflog_retention_days(which only exists on the retired Single Server), fixing falseFAILresults on every Flexible Server regardless of the actual retention value (#11761)
Prowler 5.32.1
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_migratedandsink_backendsoscan-perform-scheduledinserts 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;MANUALfindings are now skipped in the PASS/FAIL section tally instead of raising (#11822)


