Pimcore Unsafe PHP Deserialization Vulnerability (CVE-2026-45162)
Pimcore v11 and earlier is vulnerable to unsafe PHP deserialization in multiple locations due to missing `allowed_classes` restrictions when calling `unserialize()` on data from database columns and filesystem files; an attacker with control over serialized data sources (e.g., via SQL injection or file write vulnerabilities) can inject PHP gadget chains, leading to remote code execution.
Pimcore, a content management framework, contains a critical vulnerability (CVE-2026-45162) due to unsafe PHP deserialization in version 11 and earlier. The vulnerability stems from the use of unserialize() in multiple locations without the allowed_classes restriction. This oversight allows attackers to inject arbitrary PHP objects if they can control the serialized data. The affected locations include lib/Tool/Authentication.php, models/Site/Dao.php, models/DataObject/ClassDefinition/CustomLayout/Dao.php, models/Tool/TmpStore/Dao.php, models/Asset/WebDAV/Service.php, and admin-ui-classic-bundle/src/Helper/Dashboard.php. The data being deserialized is sourced from database columns and filesystem files. Exploitation requires an attacker to be able to write to these data sources, which can be achieved through SQL injection or file write vulnerabilities. Successful exploitation leads to remote code execution.
Attack Chain
- The attacker identifies a writable data source, such as the
tmp_storetable or thewebdav-delete.datfile. - The attacker gains write access to the chosen data source, for example via SQL injection against the
tmp_storetable or a file write vulnerability againstwebdav-delete.dat. - The attacker crafts a malicious serialized PHP object, containing a gadget chain designed for remote code execution (e.g., using Monolog’s BufferHandler).
- The attacker writes the malicious serialized data to the targeted data source (e.g., inserting a row into
tmp_storewith the serialized payload, or writing towebdav-delete.dat). - A user action or scheduled task triggers the vulnerable
unserialize()call in one of the affected files (e.g., accessing a page that reads fromTmpStore, or triggering a WebDAV operation that uses the delete log). - The PHP
unserialize()function processes the attacker-controlled serialized data withoutallowed_classes. - The injected PHP object is instantiated, and its methods are invoked according to the gadget chain.
- The gadget chain executes arbitrary PHP code with the privileges of the web server, resulting in remote code execution.
Impact
Successful exploitation of this vulnerability allows an attacker to execute arbitrary PHP code on the Pimcore server. This can lead to complete compromise of the application, including data theft, modification, or deletion. The impact is amplified by the availability of public exploit techniques and gadget chains. Given Pimcore’s use in content management and e-commerce, a successful attack could have significant financial and reputational consequences.
Recommendation
- Apply the vendor-supplied patch or upgrade to a version of Pimcore that addresses CVE-2026-45162.
- Deploy the Sigma rules provided in this brief to your SIEM and tune them for your environment to detect potential exploitation attempts.
- Monitor web server logs for suspicious activity related to database access (e.g., SQL injection attempts) that could be used to inject malicious serialized data into database tables.
- Implement strict file permission controls on the web server to prevent unauthorized writing to the filesystem, mitigating the risk of injecting serialized data into files like
webdav-delete.dat.
Detection coverage 2
Detect CVE-2026-45162 Exploitation Attempt - WebDAV Delete Log Modification
highDetects CVE-2026-45162 exploitation attempt by monitoring for modifications to the WebDAV delete log file with suspicious content.
Detect CVE-2026-45162 Exploitation Attempt - Suspicious Data in TmpStore
mediumDetects CVE-2026-45162 exploitation attempt by monitoring for writes to the `tmp_store` table containing serialized PHP objects.
Detection queries are available on the platform. Get full rules →