CVE-2026-55846 json
Allure: Path Traversal in Allure Report HTTP Server Allows Arbitrary File Read
published 4mo ago modified last mo. also EUVD-2026-77687 , GHSA-82cg-3hv7-74gc
- cvss
- 6.2
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 7%
- public exploits
- 0
- none known
Summary
Allure 2 is the version 2.x branch of Allure Report, a multi-language test reporting tool. Prior to 2.39.0, the HTTP server started by allure serve and allure open uses URI.getPath() in Commands.setUpServer() in allure-commandline/src/main/java/io/qameta/allure/Commands.java and passes the percent-decoded request path to reportDirectory.resolve() without normalizing the result or confirming that it remains inside that directory. An unauthenticated client that can reach the server can submit parent-directory segments, including percent-encoded segments, and cause serveFile() to return any regular file readable by the Allure process. The server binds to localhost by default, but the --host option can expose it to other systems, and local users, adjacent containers, or browser-origin attacks may reach a local listener. This can disclose credentials, configuration, source code, build secrets, and other CI/CD data. This issue is fixed in version 2.39.0.
Patch / fix
- maven io.qameta.allure:allure-commandline 2.39.0
- io.qameta.allure.plugins junit-xml-plugin 2.39.0
- io.qameta.allure.plugins trx-plugin 2.39.0
- io.qameta.allure.plugins xunit-xml-plugin 2.39.0
- io.qameta.allure allure-commandline 2.39.0
- qameta allure_report 2.39.0
Is CVE-2026-55846 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- partial
- Assessed
- last mo.
Exploit prediction
0.18% chance of exploitation in the next 30 days, higher than 7% of all scored CVEs (FIRST EPSS, 2026-11-11).
Exploits and checks
- github.com https://github.com/allure-framework/allure2/security/advisories/GHSA-82cg-3hv7-74gc referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 6.2 | CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N |
| GitHub | 3.1 | 6.2 | CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| maven | io.qameta.allure:allure-commandline | <2.39.0 |
2.39.0 |
Affected products
- allure-framework allure2
Classification
- Weakness
-
- CWE-22 Improper Limitation of a Pathname to a Restricted Directory
References
- github.com /allure-framework/allure2/pull/3288
- github.com /allure-framework/allure2/commit/e83cd67658bc2266832ab366eadd0bc1f48baced
-
github.com
/allure-framework/allure2/security/advisories/GHSA-82cg-3hv7-74gc
exploit, web
- github.com /allure-framework/allure2/releases/tag/2.39.0
-
github.com
/allure-framework/allure2
package
Sources
- CVE List CVE-2026-55846
- GitHub Advisory GHSA-82cg-3hv7-74gc
- NVD CVE-2026-55846
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.