Jun 15, 2026·7 min read·3 visits
Authenticated backend users can bypass file extension restrictions to load malicious YAML configurations, executing arbitrary database commands and gaining full administrator privileges.
CVE-2026-11607 is a critical broken access control vulnerability in TYPO3 CMS's Form Framework (ext:form). Authenticated backend users with access to the Form Framework can load unauthorized YAML configurations, bypassing file extension restrictions. This allows the execution of arbitrary SQL commands via the SaveToDatabase finisher, leading to privilege escalation to administrator level.
CVE-2026-11607 is a broken access control vulnerability (CWE-862) within the Form Framework (ext:form) component of TYPO3 CMS. The Form Framework provides editors with a visual interface and backend modules to create, configure, and maintain interactive web forms. These configurations are serialized and stored as YAML files within designated persistence layers. The vulnerability allows authenticated backend users to bypass established file extension rules and load arbitrary configuration payloads.
Under normal operating conditions, the Form Framework restricts configuration files to the .form.yaml file extension. This restriction acts as a critical security boundary to prevent unauthorized file injection and parsing attacks. An administrative or low-privileged backend user with access to the Form module can, however, bypass this extension check. This vulnerability permits the processing of YAML files lacking the appropriate extension, exposing the underlying parsing engine to maliciously crafted input.
The consequences of this validation failure are severe, as it facilitates a multi-stage attack. By uploading a specially formatted configuration file, attackers can force the system to parse and execute arbitrary instructions. Specifically, the framework executes backend actions configured via form finishers when processing these files. This flaw ultimately enables arbitrary SQL statement execution on the underlying database, leading to full system compromise.
The root cause of the vulnerability lies in a logical short-circuiting flaw located in FormPersistenceManager.php and AbstractFileStorageAdapter.php. When importing or loading a form definition, the framework validates whether the file extension is secure. This validation check relies on a helper method designed to verify both the internal file structure and the external file extension. The validation logic was structured using a logical AND (&&) operator to perform these verification checks in sequence.
The function generateErrorsIfFormDefinitionIsValidButHasInvalidFileExtension executed two primary functions. First, it checked if the configuration payload structurally resembled a form via looksLikeAFormDefinition. Second, it checked if the file had a valid extension via hasValidFileExtension. Because these checks were joined by an AND operator, the failure of the first check caused the interpreter to skip the second check entirely.
An attacker can exploit this conditional evaluation by crafting a file that does not structurally match a standard form definition initially. Specifically, omitting the expected type: Form pair causes looksLikeAFormDefinition to return a boolean false. The overall conditional statement immediately evaluates to false, which bypasses the exception-throwing block. The system then processes the arbitrary file structure as a valid configuration despite its non-compliant file extension.
To understand the vulnerable code path, look at the logical operation executed during the file loading sequence. In the vulnerable version, the conditional check was implemented with a logical AND connector. If the parsed structure did not trigger the structural validator, the engine assumed no violation had occurred. The code snippet below illustrates the vulnerable conditional check before the patch was applied.
// Vulnerable logic utilizing short-circuit AND operator
protected function generateErrorsIfFormDefinitionIsValidButHasInvalidFileExtension(array $formDefinition, string $persistenceIdentifier): void
{
if ($this->looksLikeAFormDefinition($formDefinition) && !$this->hasValidFileExtension($persistenceIdentifier)) {
throw new PersistenceManagerException(sprintf('Form definition "%s" does not end with ".form.yaml".', $persistenceIdentifier), 1531160649);
}
}The patch changes the logic from a logical AND operator (&&) to a logical OR operator (||). By checking if the form definition is invalid OR if the file extension is invalid, the system enforces both criteria. If the structure is missing the appropriate keys, or if the extension is not .form.yaml, the validation block throws an exception. This ensures that the configuration must strictly conform to both structural and metadata constraints before loading.
Reviewing the patch for the file storage adapter shows an identical change to ensure consistent security across adapters. The modification in AbstractFileStorageAdapter.php alters the logic to use the negative OR evaluation mechanism. This parallel adjustment guarantees that alternative storage adapters do not remain vulnerable to the same file validation bypass. The complete implementation now leaves no paths where malformed file extensions can bypass structural validations.
Exploitation requires an attacker to possess authenticated backend privileges with access to the TYPO3 Form Framework. The attacker first constructs a malicious configuration payload inside a standard text file. This file uses a standard extension such as .yaml or .txt instead of the restricted .form.yaml suffix. The structure is designed to avoid containing the key-value pair type: Form during the initial persistence check.
The malicious YAML file defines a form structure containing a highly privileged database finisher. The Form Framework natively supports the SaveToDatabase finisher, which allows inserting user input directly into database tables. The attacker specifies database columns and insert parameters within the finisher configuration blocks. This configuration dictates the insertion of a new administrative user record into the be_users database table.
After uploading the file to a standard user-accessible directory like fileadmin/, the attacker references the file within the Form module. When the framework parses the file, the logical bypass occurs, and the persistence manager loads the configuration. The attacker then triggers the form processing sequence, executing the SQL instructions embedded in the finisher. This action inserts a new administrator account, allowing the attacker to escalate privileges and take complete control of the CMS.
The security impact of CVE-2026-11607 is classified as high, carrying a CVSS score of 7.6. The exploitation pathway allows low-privileged backend users to escalate their privileges to full administrators. This completely compromises the confidentiality, integrity, and availability of the affected TYPO3 installation. Since TYPO3 systems often handle highly sensitive web assets, a compromise at this level exposes the entire host environment.
Once an attacker gains administrative privileges via the database insert mechanism, they can execute arbitrary code. TYPO3 administrators have the capability to install extensions, configure template engines, and execute system commands in some configurations. This permits the deployment of web shells or malicious scripts directly to the underlying web server. Consequently, the exploit serves as a direct vector for remote code execution on the hosting infrastructure.
The vulnerability also presents significant risk to connected databases and internal networks. Attackers can extract sensitive application data, including user credentials, configuration files, and private client databases. The absence of active exploitation in the wild does not diminish the severity of the flaw. Immediate patching is necessary to mitigate the risk of target-specific unauthorized access attempts.
The primary remediation strategy is upgrading the TYPO3 installation to the designated secure versions. Security updates are available for all supported release branches, including LTS and ELTS versions. Administrators should consult the official TYPO3 release notes to determine the exact version matching their branch. Applying these updates replaces the vulnerable validation scripts with the corrected logical operators.
For organizations unable to apply immediate updates, temporary workarounds can mitigate the threat vector. Security administrators must audit and restrict user access to the TYPO3 Form Framework module. Disabling form creation permissions for non-admin users blocks the primary pathway required to reference external files. Additionally, implementing strict file upload restrictions on the /fileadmin/ directory prevents the placement of unauthorized YAML assets.
Finally, security teams should implement defensive monitoring and scanning routines across the environment. Analyzing the backend database for newly created administrative accounts helps detect unauthorized privilege escalation. Web Application Firewalls (WAF) can also be configured to block request payloads targeting the form editor endpoints. Continuous monitoring of file modification logs ensures rapid detection of suspicious YAML files within public directories.
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N| Attribute | Detail |
|---|---|
| CWE ID | CWE-862 |
| Attack Vector | Network |
| CVSS v4.0 | 7.6 |
| EPSS Score | 0.00414 (0.41%) |
| Impact | Privilege Escalation / Database Compromise |
| Exploit Status | None |
| KEV Status | Not Listed |
CVE-2026-47347 is an open redirect vulnerability affecting multiple TYPO3 CMS versions. The issue resides in GeneralUtility::sanitizeLocalUrl, where an insufficient blocklist validation implementation fails to prevent browsers from normalizing malformed relative paths into external protocol-relative redirections. Attackers can exploit this to conduct phishing, session hijacking, or credential harvesting campaigns.
An authenticated backend user with access to the Recycler module in TYPO3 CMS can bypass write restrictions and restore soft-deleted records on pages or database tables they are not authorized to modify. This vulnerability resides in the core DataHandler class due to missing permission checks during 'undelete' operations.
Improper validation of backslash character separators in esbuild's local development server allows path traversal on Windows systems.
An issue was discovered in the Deno integration of the esbuild package. The module fails to verify the integrity of downloaded native binary packages from NPM registries before writing and executing them on the local filesystem. This allows an attacker who controls the NPM_CONFIG_REGISTRY environment variable or intercepts the network connection to execute arbitrary native code on the host machine.
A thread-safety vulnerability exists in the PyO3 library versions prior to 0.29.0 due to a missing Sync trait bound on closure type parameters. This omission allows safe Rust code to register non-thread-safe closures as Python callables, leading to concurrent shared mutation and data races during multithreaded execution.
A denial of service vulnerability in the ConnectBot SSH Client Library (cbssh) up to version 0.3.0 allows remote attackers to cause uncontrolled resource consumption. The library uses Kaitai Struct to parse incoming binary streams, but failed to validate the declared length of SSH fields against the physical stream size, leading to excessive memory allocation and OutOfMemoryError crashes.