Read the docs
TI-2026-40309 Aliases CVE-2026-55847GHSA-gx93-m64w-5m6h

Allure: Stored XSS via unescaped ANSI helper in Allure report status message/trace rendering

Priority LOW 27CWE-79Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
Required
Attack complexity
Low
Impact type
Cross-site scripting
Confidentiality · integrity · availability
Low · Low · None
Fix status
Fixed

Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-79.

Summary

Allure 2 is the version 2.x branch of Allure Report, a multi-language test reporting tool. Prior to 2.39.0, the ansi.js helper at allure-generator/src/main/javascript/helpers/ansi.js passes attacker-influenced statusMessage and statusTrace values through AnsiToHtml without HTML escaping and wraps the result in Handlebars SafeString, disabling template auto-escaping in allure-generator/src/main/javascript/blocks/status-details/status-details.hbs. JunitXmlPlugin.java can populate these fields directly from crafted JUnit XML failure messages and traces, and equivalent input flows exist in the TRX, xUnit XML, xctest, and Allure1 and Allure2 plugins. When a user views the affected status details, unescaped markup executes arbitrary JavaScript in the report origin, which can expose report data and compromise sessions associated with that origin. This is an incomplete-fix case because PR 3271 escaped link helpers but did not address the ANSI helper. This issue is fixed in version 2.39.0.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00338 27th percentileScored 2026-11-07
Fix Fixed allure2 (allure-framework): 2.39.0allure-generator (io.qameta.allure): 2.39.0+1 more product

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
No
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
allure-frameworkallure2before 2.39.02.39.0Patch availableCNA
io.qameta.allureallure-generatorbefore 2.39.02.39.0Patch availableCNA
—io.qameta.allure:allure-generator (Maven)before 2.39.02.39.0Patch availableGHSA-gx93-m64w-5m6h
  • allure2 Vendorallure-framework Affected before 2.39.0 Fixed in 2.39.0 Patch available CNA
  • allure-generator Vendorio.qameta.allure Affected before 2.39.0 Fixed in 2.39.0 Patch available CNA
  • io.qameta.allure:allure-generator (Maven) Vendor— Affected before 2.39.0 Fixed in 2.39.0 Patch available GHSA-gx93-m64w-5m6h

Remediation

  • Fix · CNA allure2 (allure-framework) Fixed in 2.39.0
  • Fix · CNA allure-generator (io.qameta.allure) Fixed in 2.39.0
  • Fix · GHSA-gx93-m64w-5m6h io.qameta.allure:allure-generator (Maven) Fixed in 2.39.0 Advisory →

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-55847
  2. 2026-10-03 Alias added: GHSA-gx93-m64w-5m6h

References

  • TI-2025-32924 Allure 2's xunit-xml-plugin Vulnerable to Improper XXE Restriction CVSS 3.1HIGH 7.5
  • TI-2026-40308 Allure: Path Traversal in Allure Report HTTP Server Allows Arbitrary File Read CVSS 3.1MEDIUM 6.2

Sources