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
2DescriptionCVE.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.
AnalysisAI
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.
Technical ContextAI
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.
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.
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
Contao before 3.5.28 and 4.x before 4.4.1 allows remote attackers to include and execute arbitrary local PHP files via a
Contao is an Open Source CMS. Rated high severity (CVSS 8.8), this vulnerability is remotely exploitable, low attack com
Contao 4.0 through 4.8.5 allows PHP local file inclusion. Rated high severity (CVSS 8.8), this vulnerability is remotely
Contao 4.7 allows CSRF. Rated high severity (CVSS 8.8), this vulnerability is remotely exploitable, no authentication re
Same weakness CWE-22 – Path Traversal
View allSame technique Path Traversal
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-51620
GHSA-grm4-wm43-9jh5