Description
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.
Published: 2026-07-31
Score: 3.1 Low
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

This vulnerability allows an authenticated backend user to request a job‑attachment download with a crafted identifier that contains path segments such as "../". The Contao controller authorizes the job UUID but accepts the provided identifier verbatim, resulting in the virtual filesystem resolving a path that leaves the job’s own directory and points to another job’s attachment. This is a classic directory traversal flaw (CWE-22) that leads to confidential information disclosure by reading attachments from other jobs, but it does not allow arbitrary command execution or full system compromise.

Affected Systems

The flaw exists in Contao CMS versions 5.7.0 through 5.7.6. Any installation of contao: contao within those revision ranges without the fix is affected. Versions outside this range, or later releases, are not impacted.

Risk and Exploitability

The CVSS score of 3.1 indicates moderate severity, and the EPSS score of less than 1% shows a very low but non-zero likelihood of exploitation. The vulnerability is not listed in CISA’s KEV catalog. Exploitation requires a user with backend authentication who can access a job; brute‑forcing unrelated job UUIDs is difficult because job directories are UUID‑v4 values. Thus the attack surface is limited to users who already have legitimate backend access, but within that group the attacker can read files from other jobs’ attachment directories.

Generated by OpenCVE AI on August 2, 2026 at 03:57 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Contao to version 5.7.7 or later, which removes the path traversal bypass
  • If an immediate upgrade is not possible, restrict attachment download requests to the authenticated job directory by validating the identifier and rejecting any "../" components before passing it to the virtual filesystem
  • Configure access controls to limit which backend users can view job attachments and monitor download logs for anomalous requests

Generated by OpenCVE AI on August 2, 2026 at 03:57 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-grm4-wm43-9jh5 Contao: Possible path traversal in job download URIs
History

Sat, 01 Aug 2026 00:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Fri, 31 Jul 2026 21:15:00 +0000

Type Values Removed Values Added
First Time appeared Contao
Contao contao
Vendors & Products Contao
Contao contao

Fri, 31 Jul 2026 19:45:00 +0000

Type Values Removed Values Added
Description 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.
Title Contao: Possible path traversal in job download URIs
Weaknesses CWE-22
References
Metrics cvssV3_1

{'score': 3.1, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-31T23:33:16.171Z

Reserved: 2026-06-17T16:29:38.864Z

Link: CVE-2026-55825

cve-icon Vulnrichment

Updated: 2026-07-31T23:33:11.923Z

cve-icon NVD

Status : Received

Published: 2026-07-31T20:16:52.343

Modified: 2026-08-01T00:17:17.263

Link: CVE-2026-55825

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-02T04:00:06Z

Weaknesses
  • CWE-22

    Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')