Skip to main content

Contao CMS CVE-2026-107844

| EUVDEUVD-2026-95974 MEDIUM
Path Traversal (CWE-22)
2026-10-09 GitHub_M GHSA-mrvp-7wmx-5m4h
5.3
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Send request to images route with ../ in path
  2. Exploit
    Path::join escapes target directory unchecked
  3. Execution
    BinaryFileResponse returns out-of-directory file
  4. Impact
    Disclose project file contents or path existence

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 reaching the Contao ImagesController route (the image-serving endpoint) on an affected version (5.0.0 through pre-5.3.50 / pre-5.7.12) and supplying a {path} value with parent-directory segments; no authentication, privileges, or user interaction are needed (PR:N/UI:N). Key LIMITING factors sharply narrow real-world impact: the returned file MUST carry an extension listed in the contao.image.valid_extensions configuration, and per the advisory files below the upload directory were NOT demonstrated to be readable, so this is extension-restricted disclosure of project-directory files plus path-existence probing - not arbitrary file read. Absolute filesystem path disclosure additionally depends on debug responses being enabled.

Impact

This is a limited-impact information disclosure vulnerability (CWE-22 path traversal) that the signals consistently rate as moderate rather than critical. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N, base 5.3) agrees with the description: network-reachable, low-complexity, unauthenticated (PR:N), with only low confidentiality impact and no integrity or availability impact. The impact ceiling is genuinely constrained - the flaw only exposes files whose extension is in contao.image.valid_extensions and, per the advisory, files below the upload directory were NOT shown to be readable, so this is not a general arbitrary-file-read. No EPSS score, CISA KEV listing, POC, or SSVC decision data was provided in the input; therefore this is 'no public exploit identified at time of analysis' and there is no evidence of active exploitation. Net assessment: a real but low-to-moderate priority issue - easy to trigger and unauthenticated, but with limited data exfiltration value (extension-restricted reads plus path-existence/absolute-path disclosure via debug responses). Patch on a normal cadence rather than treating as an emergency.

Exploit ScenarioDerived

An unauthenticated attacker sends an HTTP request to the Contao images route with a {path} parameter containing encoded parent-directory segments (e.g. ../) so the joined path escapes the configured image target directory. Because the pre-patch code used Path::join() without Path::isBasePath() validation, the canonical path outside the target is served via BinaryFileResponse, letting the attacker read project files that carry an allowed image extension or probe whether arbitrary paths exist. No public POC was provided, but the low attack complexity (AC:L) and lack of required privileges or user interaction make exploitation straightforward.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 09, 2026

Unauthenticated path traversal in the Contao CMS ImagesController lets remote attackers read files from the project directory by supplying encoded parent-directory segments in the image route's {path} parameter. Affected versions are Contao 5.0.0 through 5.3.49 and 5.7.11 (fixed in 5.3.50 and 5.7.12), with impact constrained by the fact that a returned file must carry an extension listed in contao.image.valid_extensions and files below the upload directory were not demonstrated to be readable, making this extension-restricted disclosure plus path-existence probing rather than arbitrary file read. The CVSS 3.1 score is 5.3 (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N), no public exploit code or confirmed active exploitation has been identified at time of analysis, and the independent assessment rates the issue as moderate rather than critical.

RemediationAI

Upgrade to a fixed release - vendor-released patches are Contao 5.3.50 and Contao 5.7.12, which add a Path::isBasePath() check in ImagesController that rejects any resolved path escaping the configured image target directory (see https://github.com/contao/contao/releases/tag/5.3.50 and https://github.com/contao/contao/releases/tag/5.7.12, advisory https://github.com/contao/contao/security/advisories/GHSA-mrvp-7wmx-5m4h, fix commit 867c055122fdf12220f973f862082037b695b9bd). Where immediate upgrade is not possible, reduce exposure by tightening the contao.image.valid_extensions configuration so that only extensions necessary for legitimate imaging (for example raster formats) can ever be returned, accepting the trade-off that unusual or legacy formats used by the site will stop being served; additionally restrict access to the image-serving route at the reverse proxy or WAF layer to trusted clients, noting this can break public image delivery for anonymous visitors. Because debug responses can disclose absolute filesystem paths even when file contents are not returned, ensure debug mode is disabled in production (APP_DEBUG=false / Symfony prod environment), accepting that diagnostic detail for unrelated incidents will be reduced. Note that no vendor-released workaround short of the patched controller fully restores the missing canonical-path containment check, so patching remains the primary action.

Affected VersionsENISA

contao 5.0.0, < 5.3.50
contao 5.4.0-RC1, < 5.7.12

Affected Packages

composer contao/core-bundle fix: 5.3.50, 5.7.12
euvd contao_5_0_0 fix: 5.3.50
euvd contao_5_4_0_rc1 fix: 5.7.12

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

Contao is an open-source PHP content management system built on the Symfony framework, and the affected component is the core-bundle ImagesController that serves generated/resized images. The controller takes the user-controlled {path} routing parameter and concatenates it onto the configured image target directory using the Path helper's join() method, but in vulnerable versions it never calls Path::isBasePath() to verify that the canonicalized result still resides inside that base directory - the classic CWE-22 improper limitation of a pathname to a restricted directory. Because encoded parent-directory (../) segments survive into the joined path, the resulting path escapes the target directory and is handed to the image factory and ultimately returned via a Symfony BinaryFileResponse. The code-level evidence is unambiguous: the fix commit 867c055122fdf12220f973f862082037b695b9bd refactors the controller so that the joined path is validated with Path::isBasePath($this->targetDir, $path) and a NotFoundHttpException is thrown on failure, and the accompanying test testReturns404IfImageIsOutsidePath asserts that '../dummy.jpg' never reaches the image factory. The public CPE string cpe:2.3:a:contao:contao:*:*:*:*:*:*:*:* reflects a wildcard version match across the vulnerable Contao release lines. Two constraints materially bound the root cause's exploitability: the served file must match an extension permitted by the contao.image.valid_extensions setting, and the advisory notes that files beneath the upload directory were not shown to be reachable.

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

Vendor (GitHub_M) PRIMARY 5.3 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
vuln.today AI 5.3 MEDIUM

Unauthenticated network request with no interaction (AV:N/AC:L/PR:N/UI:N); only C:L because reads are restricted to allowed image extensions and the upload directory, with no integrity or availability impact.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
None
Availability
None

Lifecycle Timeline

1
Patch available
Oct 09, 2026 - 21:02 EUVD

DescriptionCVE.org

Contao is an Open Source CMS. From version 5.0.0 until 5.3.50 and 5.7.12, ImagesController joins the user-controlled {path} parameter to the configured image target directory with Path::join() but does not use Path::isBasePath() to verify that the canonical path remains inside that directory. An unauthenticated request containing encoded parent-directory segments can therefore return files under the project directory through BinaryFileResponse when their names use an extension allowed by contao.image.valid_extensions. The route can also reveal whether arbitrary paths exist, and debug responses can disclose absolute filesystem paths, but paths below the upload directory were not shown to be readable. This issue is fixed in versions 5.3.50 and 5.7.12.

Threat Intelligence Overview

EPSS Score
0.3%
Top 78% exploitable
Prevalence
Low
niche open-source PHP CMS, limited enterprise deployment footprint
Threat Intel
1
1 source
Exploit
POC
Public exploit code exists
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact· derived
Medium

Priority Score

46
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

More in Contao

View all
CVE-2022-26265 CRITICAL POC
9.8 Mar 18

Contao Managed Edition v1.5.0 was discovered to contain a remote command execution (RCE) vulnerability via the component

CVE-2012-1297 MEDIUM POC
6.8 Mar 19

Multiple cross-site request forgery (CSRF) vulnerabilities in main.php in Contao (formerly TYPOlight) 2.11.0 and earlier

CVE-2022-24899 MEDIUM POC
6.1 May 06

Contao is a powerful open source CMS that allows you to create professional websites and scalable web applications. Rate

CVE-2019-11512 CRITICAL
9.8 Jul 09

Contao 4.x allows SQL Injection. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable, no auth

CVE-2019-10643 CRITICAL
9.8 Apr 17

Contao 4.7 allows Use of a Key Past its Expiration Date. Rated critical severity (CVSS 9.8), this vulnerability is remot

CVE-2019-10641 CRITICAL
9.8 Apr 17

Contao before 3.5.39 and 4.x before 4.7.3 has a Weak Password Recovery Mechanism for a Forgotten Password. Rated critica

CVE-2024-45965 MEDIUM POC
5.4 Oct 02

Contao before 5.5.6 allows XSS via an SVG document. Rated medium severity (CVSS 5.4), this vulnerability is remotely exp

CVE-2023-36806 MEDIUM POC
5.4 Jul 25

Contao is an open source content management system. Rated medium severity (CVSS 5.4), this vulnerability is remotely exp

CVE-2026-107845 CRITICAL
9.3 Oct 09

Stored cross-site scripting in the Contao CMS comments bundle lets an unauthenticated visitor submit a comment whose ema

CVE-2026-107842 MEDIUM POC
5.3 Oct 09

Information disclosure in Contao CMS allows unauthenticated front-end visitors to read the titles, URLs, and indexed tex

CVE-2026-107843 MEDIUM POC
5.3 Oct 09

Unauthenticated email-flooding and user-enumeration in Contao CMS: a POST to any page containing the registration module

CVE-2017-10993 HIGH
8.8 Jul 21

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

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy