Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to Contao backend
-
DeliveryIdentify victim job UUID through legitimate access or disclosure
-
ExploitCraft attachment identifier with ../ traversal to victim job directory
-
ExecutionSubmit download request using own job UUID as route parameter
-
PersistVirtualFilesystem resolves combined path within mount
-
ImpactReceive victim job attachment file
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an active, authenticated Contao backend session - the attacker must be a registered backend user with at minimum access to one job record; unauthenticated or frontend-only users cannot exploit this. The attacker must also independently know the UUID v4 identifier of the target victim job directory, as the description explicitly confirms that brute-force against unknown UUIDs is not practical (122-bit random space). The vulnerability is confined to the job attachment download endpoint and can only expose files stored within the var/job-attachments virtual filesystem mount - files outside this mount are unreachable. Limiting factors: (1) backend authentication required (PR:L); (2) victim job UUID must be known in advance (AC:H); (3) impact is bounded to the job-attachments filesystem namespace with no integrity or availability consequences. |
| Impact | The CVSS 3.1 base score of 3.1 (Low) is consistent with the actual threat model: the attack vector is network (AV:N) but complexity is High (AC:H) because the attacker must know the UUID v4 identifier of a victim job - a 122-bit random value that is not practically brute-forceable. Low privileges (PR:L) are required, meaning an unauthenticated actor cannot exploit this. The confidentiality impact is Low (C:L), restricted to files stored in var/job-attachments; there is no integrity or availability impact. No EPSS data was provided in the available intelligence, so exploitation probability cannot be quantified numerically. There is no CISA KEV listing and no known public exploit, making this a theoretical risk rather than an operationally observed threat. The realistic concern is a malicious insider or a compromised backend account performing horizontal privilege escalation to access another job's attachment files. This is not a remote-unauthenticated critical flaw - defenders with controlled backend user rosters face minimal exposure. |
| Exploit ScenarioDerived | An authenticated Contao backend user with legitimate access to their own job crafts an attachment download request, replacing the normal attachment identifier with a traversal string such as ../victim-job-uuid/debug_log.csv. The controller validates the request against the attacker's own job UUID and passes authorization, then resolves the combined path to victim-job-uuid/debug_log.csv within the var/job-attachments mount. The attacker receives the victim job's attachment file without authorization, enabling horizontal data exfiltration across job records within the same Contao installation. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 31, 2026
Cross-job file read in Contao CMS 5.7.0-5.7.6 allows authenticated backend users to exfiltrate job attachments belonging to other jobs by injecting path traversal sequences into the attachment identifier parameter. The job attachment download controller authorizes only the jobUuid route parameter, then constructs the actual file path by joining that authorized UUID with the attacker-supplied identifier; Contao's VirtualFilesystem::resolve() canonicalizes the combined path but rejects only escapes from the filesystem mount, not cross-job traversals within the mount. No public exploit has been identified at time of analysis, and the CVSS 3.1 Low score of 3.1 reflects meaningful exploitation barriers: backend authentication and prior knowledge of a victim job UUID are both required.
RemediationAI
The primary remediation is to upgrade Contao CMS to a version beyond 5.7.6 as directed by the vendor security advisory at https://github.com/contao/contao/security/advisories/GHSA-grm4-wm43-9jh5. The exact patched release version is not independently confirmed from available intelligence - consult that advisory for the precise fix version. As a compensating control where immediate upgrade is not feasible, restrict backend user role assignments so that only fully trusted personnel can access any job records, since exploitation is gated by backend authentication; reducing the number of backend users with job access minimizes the exploitable population. Additionally, review whether job attachment contents include sensitive data (e.g., CSV exports, debug logs) and consider limiting what is stored in var/job-attachments until the patch is applied. Note that access controls at the backend user level do not eliminate the underlying path-construction flaw - they only reduce the attacker pool.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 3 packages in composer, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The vulnerability affects Contao CMS 5.7.0-5.7.6 (CPE: cpe:2.3:a:contao:contao:*:*:*:*:*:*:*:*), an open-source PHP CMS. The root cause is CWE-22 (Improper Limitation of a Pathname to a Restricted Directory - Path Traversal). The job attachment download controller applies its authorization check exclusively to the jobUuid route parameter, then constructs the resolved file path by concatenating that authorized UUID with a separate, attacker-controlled attachment identifier. The combined string - e.g., authorized-job-uuid/../victim-job-uuid/debug_log.csv - is passed to VirtualFilesystem::resolve(), which canonicalizes the full path. Because the canonical result (victim-job-uuid/debug_log.csv) still falls within the var/job-attachments filesystem mount, VirtualFilesystem::resolve() accepts it without error, and the authorized-job check that preceded it is no longer meaningful. The design flaw is that path construction and authorization are decoupled: one parameter is authorized, a different parameter is used to locate the file.
Know when Contao gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N
PR:L because backend authentication is mandatory; AC:H because victim UUID v4 must be known; C:L as only job-attachment files within the mount are exposed.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Contao is an Open Source CMS. In versions 5.7.0 through 5.7.6, an authenticated backend user who can access one job can request an attachment identifier containing ../ segments and make the job attachment download endpoint read a file from another job directory inside var/job-attachments. The controller authorizes only the jobUuid route parameter. The later attachment lookup joins that authorized job UUID with the attacker-controlled identifier, then passes the combined path to the virtual filesystem. VirtualFilesystem::resolve() canonicalizes the whole path and only rejects paths that escape the filesystem mount, so authorized-job/../victim-job/debug_log.csv becomes victim-job/debug_log.csv. This is a cross-job authorization bypass for known job attachment paths. It is not a practical brute-force against unknown jobs because job directories are UUID v4 values.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
Contao Managed Edition v1.5.0 was discovered to contain a remote command execution (RCE) vulnerability via the component
Multiple cross-site request forgery (CSRF) vulnerabilities in main.php in Contao (formerly TYPOlight) 2.11.0 and earlier
Contao is a powerful open source CMS that allows you to create professional websites and scalable web applications. Rate
Contao 4.x allows SQL Injection. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable, no auth
Contao 4.7 allows Use of a Key Past its Expiration Date. Rated critical severity (CVSS 9.8), this vulnerability is remot
Contao before 3.5.39 and 4.x before 4.7.3 has a Weak Password Recovery Mechanism for a Forgotten Password. Rated critica
Contao before 5.5.6 allows XSS via an SVG document. Rated medium severity (CVSS 5.4), this vulnerability is remotely exp
Contao is an open source content management system. Rated medium severity (CVSS 5.4), this vulnerability is remotely exp
Unauthenticated path traversal in the Contao CMS ImagesController lets remote attackers read files from the project dire
Stored cross-site scripting in the Contao CMS comments bundle lets an unauthenticated visitor submit a comment whose ema
Information disclosure in Contao CMS allows unauthenticated front-end visitors to read the titles, URLs, and indexed tex
Unauthenticated email-flooding and user-enumeration in Contao CMS: a POST to any page containing the registration module
EUVD-2026-51620
GHSA-grm4-wm43-9jh5
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB