Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-73262

CVE-2026-73262: Prowler Cloud Security Platform XSS Flaw

CVE-2026-73262 is a cross-site scripting vulnerability in Prowler Cloud Security Platform that enables attackers to inject malicious scripts via resource tags. This article covers technical details, affected versions, and fixes.

Published:

CVE-2026-73262 Overview

CVE-2026-73262 is a stored cross-site scripting (XSS) vulnerability in Prowler, an open-source cloud security assessment platform. Versions prior to 5.37.0 fail to HTML-escape resource tag values when rendering HTML reports through prowler/lib/outputs/html/html.py. A cloud principal who can modify a scanned resource's tags can inject HTML or JavaScript that executes when another user opens the generated report. The flaw is tracked under [CWE-79] and is fixed in Prowler version 5.37.0.

Critical Impact

An attacker with permission to modify cloud resource tags can persist arbitrary JavaScript in Prowler HTML reports, executing in the browser context of any analyst who reviews the output.

Affected Products

  • Prowler (cloud security platform) versions prior to 5.37.0
  • prowler/lib/outputs/html/html.py HTML report output formatter
  • Reports generated using unroll_dict and parse_html_string helpers

Discovery Timeline

Technical Details for CVE-2026-73262

Vulnerability Analysis

Prowler scans cloud environments and produces reports summarizing security findings. Each finding includes metadata such as resource_tags copied directly from the target cloud resource. The HTML formatter concatenates these tag values into report markup without escaping HTML entities. When another user opens the report in a browser, injected <script> or event-handler payloads execute in the report's origin.

Because the attacker controls the tag value on a cloud resource, the payload persists across scans until the tag is removed. Downstream consumers of the report, including security analysts and auditors, become the execution targets. The vulnerability is a classic stored XSS pattern where untrusted input flows into an HTML sink without contextual encoding.

Root Cause

The helper functions unroll_dict and parse_html_string in prowler/lib/outputs/html/html.py assembled tag strings and injected them into the report template as raw HTML. No call to markupsafe.escape or an equivalent encoder wrapped the tag values before rendering. Any attacker-controlled character, including <, >, and quote characters, reached the DOM unmodified.

Attack Vector

Exploitation requires the attacker to hold cloud permissions sufficient to write tags on a resource that Prowler will scan. The attacker sets a tag value containing HTML or JavaScript, such as an <img> tag with an onerror handler. When Prowler completes its next scan and a report consumer opens the resulting HTML file, the payload executes with the privileges of that user's browser session.

python
# Security patch in prowler/lib/outputs/html/html.py
# fix(html): escape provider data in reports (#12221)
+import re
 import sys
 from io import TextIOWrapper
+from urllib.parse import urlparse
 
 import markdown
 from markupsafe import escape

Source: GitHub Commit 6db407e

The patch introduces markupsafe.escape and companion sanitization utilities so that provider-supplied strings are neutralized before being written into the report template.

Detection Methods for CVE-2026-73262

Indicators of Compromise

  • Cloud resource tags containing HTML control characters such as <, >, ", or onerror= payloads
  • Prowler HTML reports containing unexpected <script> blocks, iframe elements, or inline event handlers within tag columns
  • Outbound browser requests from analyst workstations to unfamiliar domains immediately after opening a Prowler report

Detection Strategies

  • Audit cloud provider tag values across AWS, Azure, and GCP for characters that suggest markup injection attempts
  • Inspect archived Prowler HTML reports with static scanners or grep patterns targeting script tags and JavaScript URI schemes inside tag fields
  • Correlate cloud tag modification events (CreateTags, TagResource) with the identity of the principal to spot low-privilege accounts writing unusual tag values

Monitoring Recommendations

  • Enable CloudTrail, Azure Activity Log, and GCP Cloud Audit Logs for tag-modification API calls and alert on non-standard tag values
  • Track the Prowler version deployed in CI/CD pipelines and flag any environment still running versions below 5.37.0
  • Monitor analyst endpoints for browser process activity spawned when opening scan reports from shared storage

How to Mitigate CVE-2026-73262

Immediate Actions Required

  • Upgrade Prowler to version 5.37.0 or later on every scanning host, CI runner, and container image
  • Review recent HTML reports produced by vulnerable versions and regenerate them after upgrading
  • Restrict cloud IAM permissions so that only trusted principals can create or modify resource tags on scanned assets

Patch Information

The fix is available in Prowler 5.37.0. It applies HTML escaping to provider-supplied data before rendering the report, as merged in Pull Request #12221. Refer to GitHub Security Advisory GHSA-c2jg-2778-ggm4 for the full advisory.

Workarounds

  • Generate reports in non-HTML formats such as JSON or CSV until the upgrade is deployed
  • Open HTML reports only inside a sandboxed browser profile with JavaScript disabled
  • Sanitize or strip resource tag values in a pre-processing step before invoking the HTML formatter
bash
# Upgrade Prowler to the patched release
pip install --upgrade 'prowler>=5.37.0'

# Verify the installed version
prowler --version

# Prefer non-HTML output until every host is patched
prowler aws --output-formats json-ocsf csv

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.