Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessUpload crafted ZIP presentation file
-
DeliveryIOFactory routes to Serialized reader
-
Exploitunserialize() instantiates arbitrary objects
-
ExecutionGadget chain triggers code/file write
-
ImpactRemote code execution or DoS
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V1 - Encoding and Sanitization Safe deserialization, type allowlists
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that the target application call PHPPresentation's IOFactory::load() on an attacker-controllable file, and that the crafted file be a ZIP whose contents cause routing to the Serialized reader (a PhpPresentation.xml payload handed to unserialize() in Reader/Serialized.php). The practical escalation from object instantiation to code execution or file write further requires a usable PHP gadget chain present in the application or its loaded dependencies - without such a chain the realistic outcome is limited to arbitrary object instantiation or denial of service. Limiting factors: the vulnerable serialized-reader path must be reachable (applications that only read standard PowerPoint/ODP formats may not invoke it), and full RCE impact is contingent on available gadgets, which is why the authoritative vector marks AT:P (attack requirement present) rather than a fully unconditional network exploit. |
| Impact | This is a genuine high-priority vulnerability, though its severity is conditional rather than automatic. The CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H, 9.2) indicates unauthenticated network-reachable exploitation with full impact to confidentiality, integrity, and availability - consistent with a CWE-502 insecure deserialization flaw reaching unserialize(). The critical qualifier is AT:P (attack requirement present): exploitation is not turnkey because it depends on the consuming application actually routing an attacker-supplied file to IOFactory::load AND the presence of a usable PHP gadget chain in the target's codebase/dependencies, without which the primitive yields only object instantiation or denial of service rather than guaranteed RCE. No EPSS score, KEV listing, or POC flag was supplied in the input, so exploitation-probability signals are absent; absence of these is not evidence of low risk. A detailed third-party technical writeup (hackmd) and a VulnCheck advisory exist and pinpoint the vulnerable Serialized.php reader, meaning the vulnerability mechanics are public and reproducible even if no packaged exploit is confirmed. Net: treat as a real priority for any application that ingests user-supplied presentation files via PHPPresentation, but recognize the practical blast radius is gated by whether the deserialized data path is actually exposed and whether gadget chains are available. |
| Exploit ScenarioDerived | An application uses PHPPresentation's IOFactory::load() to process user-uploaded presentation files. An attacker uploads a crafted ZIP containing a PhpPresentation.xml that the Serialized reader passes to unserialize(), instantiating arbitrary PHP objects; if a suitable gadget chain exists in the application or its dependencies, this escalates to arbitrary code execution, arbitrary file writes, or denial of service. No packaged public exploit is confirmed in the input, but a public technical writeup documents the vulnerable code path. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 21, 2026
PHPOffice PHPPresentation through version 1.2.0 will pass attacker-controlled serialized data to unserialize() when IOFactory::load() is pointed at a crafted presentation file, letting remote unauthenticated attackers instantiate arbitrary PHP objects inside the hosting application. Where a usable gadget chain exists in the application or its dependencies, that object instantiation escalates to code execution or arbitrary file writes; without gadgets the realistic outcome is object injection or denial of service, which is why the assessed vector marks a present attack requirement (AT:P) rather than an unconditional network exploit. No confirmed active exploitation (CISA KEV) and no public exploit identified at time of analysis, but the library is widely embedded in document-conversion and upload pipelines, so exposure depends entirely on whether the vulnerable Serialized reader path is reachable from untrusted input.
RemediationAI
No vendor-released patch identified at time of analysis, so mitigation must be layered around the library. First, stop feeding untrusted files to format auto-detection: replace IOFactory::load() with an explicitly chosen reader (for example the PowerPoint2007/ODP readers) so input can never be routed to Reader/Serialized.php, and reject or quarantine any upload that is not a plain Office Open XML or ODP container - the trade-off is that the library's own serialized format can no longer be loaded, which is rarely needed for user uploads. Second, if the Serialized reader must stay enabled, patch the local vendored copy of Serialized.php to call unserialize($data, ['allowed_classes' => false]) or restrict it to an explicit allowlist of PhpPresentation classes; this neutralizes gadget chains but may break legitimate round-tripping of serialized presentations. Third, run conversion workloads in a hardened sandbox or container with a read-only filesystem, no outbound network, and a low memory/CPU cap, which limits file-write, RCE, and DoS outcomes at the cost of some operational overhead. Additionally, keep Composer dependencies (monolog, guzzle, symfony components, etc.) current to eliminate known gadget chains, enforce upload size and ZIP entry-count limits to blunt decompression-style DoS, and monitor for unexpected child processes or file writes from the document-processing service. Track the vendor repository and the VulnCheck advisory for a fixed release and upgrade as soon as one is published.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The flaw is a classic CWE-502 insecure deserialization in a PHP document-processing library. PHPPresentation's IOFactory::load() performs format auto-detection on a supplied file; when the input is a ZIP whose payload causes routing to the Serialized reader (src/PhpPresentation/Reader/Serialized.php, lines 77-109), the contents (a PhpPresentation.xml payload) are handed to PHP's unserialize(). Because unserialize() honors attacker-supplied class names, an attacker can force instantiation of any autoloadable class in the application's scope; combined with __wakeup/__destruct/__toString magic methods in loaded dependencies, this becomes a PHP object-injection gadget chain leading to command execution, file write, or resource-exhaustion DoS. The vendor source references for IOFactory.php (line 39) and the Serialized reader show the exact dispatch and deserialization sites. Note the discrepancy between the CVE's CVSS 4.0 score of 9.2 and the independently assessed CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H, 8.1-level profile): the assessed view treats exploitability as high-complexity because success depends on the application actually calling IOFactory::load() on user-supplied files and on the presence of a suitable gadget chain.
Know when Phppresentation 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
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Network-reachable file ingestion with no auth (AV:N/PR:N/UI:N), but AC:H because reliable code execution depends on reaching the serialized reader and a viable gadget chain existing in the target.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
PHPOffice PHPPresentation through 1.2.0 contains an insecure deserialization vulnerability that allows attackers to instantiate arbitrary PHP objects by supplying a crafted presentation file. Attackers can upload a ZIP containing PhpPresentation.xml that IOFactory::load passes to unserialize(), enabling gadget-chain code execution, file writes, or denial of service.
Articles & Coverage 1
Executive ViewAI
PHPOffice PHPPresentation through 1.2.0 can expose document-conversion and upload pipelines to crafted presentation files that reach an unsafe unserialize path, creating risk of object injection, denial of service, and, where application gadget chains exist, code execution or file writes. Leadership should care because this component is often embedded in shared processing services, so a single vulnerable path can affect multiple business workflows and customer-facing uploads; no public exploit has been identified at time of analysis and no vendor-released patch has been identified.
No vendor-released patch identified; restrict IOFactory::load() to trusted files, disable the Serialized reader path for untrusted uploads, enforce file-type allowlists and scanning, sandbox document-conversion services, apply WAF or virtual patching where feasible, and monitor for object-injection or denial-of-service indicators.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Insecure deserialization occurs when an application converts serialized data (a stream of bytes representing an object's state) back into a living object without proper validation.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
EUVD-2026-107250
GHSA-q73p-x2mp-8gm9
NVD
CVE.org
EPSS
Exploit-DB