---
id: "CVE-2026-114404"
kind: "vulnerability"
aliases: ["CVE-2026-114404"]
title: "PHPPresentation: HTML writer lets crafted PPTX inject script into pages"
severity: "medium"
cvss: 6.1
epss: 0.00258
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["composer", "file-upload", "package", "php", "phppresentation"]
not_affected_if: ["html-writer-unused", "trusted-input-only"]
published_at: "2026-10-21T13:18:31+00:00"
first_seen_at: "2026-10-23T21:57:28+00:00"
updated_at: "2026-10-25T04:03:30+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-114404", "first_seen_at": "2026-10-23T21:57:28+00:00"}, {"source": "epss", "url": "https://api.first.org/data/v1/epss?cve=CVE-2026-114404", "first_seen_at": "2026-10-24T13:15:54+00:00"}]
---

# PHPPresentation: HTML writer lets crafted PPTX inject script into pages

PHPOffice PHPPresentation 1.2.0 writes presentation text, hyperlink targets and shape descriptions into generated HTML without escaping them. A crafted PPTX file can therefore run script in the browser of anyone who opens the generated HTML.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the installed version with `composer show phpoffice/phppresentation` and look for `1.2.0`.
- Search your code for calls to the HTML writer, such as `IOFactory::createWriter($presentation, 'HTML')`, on user-supplied files.

## Fix

- Upgrade phpoffice/phppresentation past `1.2.0`; the fixed version is unknown from the sources.
- Until then, sanitize or escape the generated HTML before serving it, or do not render untrusted PPTX files to HTML.

## Timeline

- 2026-10-23T21:57:28+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-114404
- 2026-10-24T13:15:54+00:00 epss https://api.first.org/data/v1/epss?cve=CVE-2026-114404

## From the sources

PHPOffice PHPPresentation 1.2.0 contains a cross-site scripting vulnerability in the HTML writer that allows attackers who supply presentation content to inject script into generated HTML. Attackers can craft a PPTX with malicious text runs, hyperlink relationship targets, or shape descr attributes that are emitted unescaped, executing script in viewers' browsers.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
