CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-19418

CVE-2026-19418: Broken Access Control and Cross-Site Request Forgery in TYPO3 CMS Core

Alon Barad
Alon Barad
Software Engineer

Sep 1, 2026·5 min read·28 visits

Executive Summary (TL;DR)

Architectural unification of TYPO3 entry points broke the referrer-based isolation boundary, allowing frontend scripts (such as those injected via XSS) to make unauthorized administrative requests on behalf of active backend users.

CVE-2026-19418 is a high-severity origin validation vulnerability in TYPO3 CMS that enables Cross-Site Request Forgery (CSRF) and access control bypasses. Due to architectural consolidation of entry points in version 13.0, the core ReferrerEnforcer fails to isolate backend endpoints from the frontend, allowing an attacker with frontend script execution capabilities to perform unauthorized administrative actions.

Vulnerability Overview

CVE-2026-19418 represents a regression in the boundary isolation mechanisms of the TYPO3 CMS core, specifically affecting the Backend (ext:backend) and Install Tool (ext:install) subcomponents. In TYPO3, administrative and configuration endpoints are protected against unauthorized requests by evaluating the request origin.

Historically, this boundary was maintained by comparing the referrer path against the physical script directories. The architectural consolidation in TYPO3 v13.0, which unified the entry points for frontend and backend under the site root script, unintentionally disabled this protection mechanism.

The vulnerability is classified under CWE-346 (Origin Validation Error) and CWE-352 (Cross-Site Request Forgery). The consequence is a cross-application security boundary failure, permitting frontend code to interact seamlessly with sensitive administrative routes.

Technical Root Cause Analysis

The flaw lies within the referrer verification logic implemented in TYPO3\CMS\Core\Http\Security\ReferrerEnforcer. Prior to TYPO3 v13.0, backend routes resolved to a sub-path such as https://example.com/typo3/. This distinct subfolder was matched against the $this->requestDir parameter during request processing.

In TYPO3 v13.0, both frontend and backend entry points were consolidated to /index.php at the site root. As a consequence, the resolved $this->requestDir parameter became /. When evaluating a request, the enforcer executes str_starts_with($referrer, $requestDir) to determine same-origin access.

Because every frontend URL begins with the site root path, any request initiated from a frontend page (e.g., https://example.com/blog) is incorrectly marked as TYPE_REFERRER_SAME_ORIGIN | TYPE_REFERRER_SAME_SITE. This misclassification treats generic frontend origins with the same authority as backend admin panels, breaking the privilege boundary.

Code-Level Vulnerability & Fix Analysis

The vulnerable component in ReferrerEnforcer.php evaluated referrers using a generic comparison against the request directory.

// Vulnerable code in TYPO3 v13.0.0 - 13.4.33
protected function resolveReferrerType(ServerRequestInterface $request, string $requestHost, string $requestDir): int
{
    $referrer = $request->getServerParams()['HTTP_REFERER'] ?? '';
    if ($referrer === '') {
        return self::TYPE_REFERRER_EMPTY;
    }
    // All paths starting with the root request directory (/) were treated as Same-Origin
    if (str_starts_with($referrer, $requestDir)) {
        return self::TYPE_REFERRER_SAME_ORIGIN | self::TYPE_REFERRER_SAME_SITE;
    }
    // ...
}

The patch addresses this structural vulnerability by making ReferrerEnforcer abstract and establishing discrete enforcers for the backend and the install tool. The backend enforcer uses BackendEntryPointResolver to dynamically resolve the explicit administrative subfolder path, while the install tool enforcer explicitly validates the exact query parameters of the entry point.

// Patched backend logic in TYPO3 v13.4.34 / 14.3.6
protected function resolveReferrerType(ServerRequestInterface $request): int
{
    $referrer = $request->getServerParams()['HTTP_REFERER'] ?? '';
    if ($referrer === '') {
        return self::TYPE_REFERRER_EMPTY;
    }
    // Dynamically retrieve the explicit backend entry point (e.g., /typo3/)
    $entryPointUri = $this->backendEntryPointResolver->getUriFromRequest($request);
    if (str_starts_with($referrer, (string)$entryPointUri)) {
        return self::TYPE_REFERRER_SAME_ORIGIN | self::TYPE_REFERRER_SAME_SITE;
    }
    // Generic site domain referrers are strictly classified as Same-Site (non-privileged)
    $requestHost = rtrim($this->resolveRequestHost($request), '/') . '/';
    if (str_starts_with($referrer, $requestHost)) {
        return self::TYPE_REFERRER_SAME_SITE;
    }
    return 0;
}

Exploit Vector & Methodology

An attacker can exploit this vulnerability to perform unauthorized actions by chaining it with a frontend scripting capability, such as stored or reflected Cross-Site Scripting (XSS). The vulnerability requires an active session of a TYPO3 backend administrator.

When the administrator visits a frontend page containing the attacker's payload, the browser automatically executes the script. Since the script is running under the site's domain context, the browser will attach the administrator's active session cookies to any requests directed to the backend route.

The payload issues a fetch or XMLHttpRequest request to administrative endpoints. The browser appends the Referer header corresponding to the current frontend page. Due to the vulnerable ReferrerEnforcer logic, the TYPO3 core accepts this referrer as identical to the backend origin, executing the payload actions.

// Conceptual XSS payload running on the frontend domain
fetch('https://victim-typo3.com/typo3/index.php?route=/ajax/some-admin-action', {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json',
        'X-Requested-With': 'XMLHttpRequest'
    },
    body: JSON.stringify({
        action: 'create_admin',
        username: 'backdoor_user',
        password: 'Password123!'
    }),
    credentials: 'include' // Attaches administrative session cookies
});

Security Impact & Attack Path

The overall security impact is high, as defined by its CVSS score of 7.3. Exploitation leads to complete administrative compromise of the CMS instance, allowing attackers to manipulate system configurations, dump database contents, and execute arbitrary code on the underlying web server.

The attack path can be modeled as follows:

Because the Install Tool endpoints are also affected, attackers can write files, modify database tables, or install malicious extensions to secure persistent web shells, escalating the initial client-side execution to remote code execution (RCE) on the host environment.

Mitigation and Defense Strategy

The primary and most effective remediation is upgrading the TYPO3 core. Administrators running TYPO3 v13 must upgrade to version 13.4.34 LTS or later, and those on v14 must upgrade to version 14.3.6 LTS or later.

When immediate upgrading is not possible, organizations should deploy a strict Content Security Policy (CSP). Restricting the script sources (script-src) to nonces or trusted hashes and disabling 'unsafe-inline' prevents the execution of the initial XSS vectors that trigger the CSRF bypass.

Additionally, Web Application Firewalls (WAFs) can be configured to inspect backend requests. Any request targeting administrative paths under /typo3/ that contains a Referer header lacking the explicit backend subdirectory prefix should be dropped or flagged for investigation.

Official Patches

TYPO3 AssociationOfficial TYPO3 Security Advisory TYPO3-CORE-SA-2026-021

Fix Analysis (3)

Technical Appendix

CVSS Score
7.3/ 10
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
EPSS Probability
0.21%
Top 89% most exploited

Affected Systems

TYPO3 CMS Backend and Admin/Install Tool (ext:backend, ext:install)

Affected Versions Detail

Product
Affected Versions
Fixed Version
TYPO3 CMS
TYPO3 Association
>= 13.0.0, < 13.4.3413.4.34 LTS
TYPO3 CMS
TYPO3 Association
>= 14.0.0, < 14.3.614.3.6 LTS
AttributeDetail
CWE IDCWE-346, CWE-352
Attack VectorNetwork (requires administrative user session & client-side script execution)
CVSS Score7.3 (High)
EPSS Score0.00213 (Percentile: 11.47%)
ImpactFull Administrative Compromise / Unauthorized Configuration Changes
Exploit Statuspoc
KEV StatusNot Listed

MITRE ATT&CK Mapping

T1189Drive-by Compromise
Initial Access
CWE-346
Origin Validation Error

The software does not properly verify that the source of a request is valid or expected, allowing origin validation errors and potential CSRF bypasses.

Vulnerability Timeline

Vulnerability reported internally to TYPO3 Security Team
2026-08-11
Fix commits authored and reviewed
2026-08-11
Coordinated Security Advisory TYPO3-CORE-SA-2026-021 published
2026-08-11
CVE-2026-19418 assigned and published
2026-08-11

References & Sources

  • [1]TYPO3-CORE-SA-2026-021
  • [2]Related Advisory TYPO3-CORE-SA-2020-006 (CVE-2020-11069)
Related Vulnerabilities
CVE-2020-11069

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•2 minutes ago•CVE-2026-109619
9.2

CVE-2026-109619: Remote Code Execution in PHP Core via Stale Global State Memory Corruption (PHP2Shell)

CVE-2026-109619 (PHP2Shell) is a critical Use-After-Free vulnerability in the core PHP engine caused by improper global state cleanup during out-of-memory exception handling across persistent worker requests.

Alon Barad
Alon Barad
1 views•6 min read
•5 minutes ago•CVE-2026-113721
4.5

CVE-2026-113721: Unsafe Link Resolution in virtualenv File Generation

In Python virtualenv prior to version 21.14.9, activation script generators and configuration writers use Path.exists() before writing files. Because Path.exists() resolves symbolic links, it returns False for dangling symlinks. Consequently, virtualenv skips unlinking pre-planted symbolic links or hard links, writing data directly to target locations outside the intended virtual environment directory.

Amit Schendel
Amit Schendel
1 views•5 min read
•9 days ago•CVE-2026-87697
8.8

CVE-2026-87697: Untrusted Deserialization in .NET PresentationCore Clipboard Handling

A remote code execution vulnerability exists in Microsoft .NET due to untrusted data deserialization within the PresentationCore component. The flaw stems from implicit auto-conversion flags during clipboard data retrieval operations.

Alon Barad
Alon Barad
31 views•5 min read
•9 days ago•CVE-2026-70007
8.8

CVE-2026-70007: Out-of-Bounds Write Vulnerability in .NET Framework and WPF Subsystem

An out-of-bounds write vulnerability in Microsoft .NET Framework, .NET runtime, and Visual Studio allows unauthenticated remote attackers to execute arbitrary code via crafted pixel-shader bytecode or auto-converted clipboard payloads.

Amit Schendel
Amit Schendel
19 views•6 min read
•10 days ago•CVE-2026-70186
7.5

CVE-2026-70186: ASP.NET Core Denial of Service Vulnerability via Framework Deadlock

ASP.NET Core contains a thread deadlock vulnerability (CWE-833) that allows an unauthenticated remote attacker to cause a denial of service over the network by exhausting server thread pool resources.

Amit Schendel
Amit Schendel
18 views•5 min read
•10 days ago•CVE-2026-70035
8.8

CVE-2026-70035: Insecure Deserialization Remote Code Execution in Microsoft .NET Framework and .NET Runtime

CVE-2026-70035 is a high-severity Remote Code Execution (RCE) vulnerability in Microsoft .NET Framework, .NET runtime, and Visual Studio caused by improper handling during the deserialization of untrusted data (CWE-502). An unauthenticated attacker can execute arbitrary code within the context of the affected process by delivering a crafted serialized payload.

Amit Schendel
Amit Schendel
24 views•6 min read