Skip to content
OpenAdvisories
High · 7.2 CVE-2026-86431 EUVD-2026-72389GHSA-f8fg-pg57-v4j8GHSA-m24x-mf52-x8gc

commonmark before 2.9.1 XSS via AttributesExtension form feed bypass

Published Sep 7, 2026 · Updated Oct 8, 2026 · Assigned by VulnCheck

Description

league/commonmark (thephpleague/commonmark) versions >= 2.7.0 and < 2.9.1 contain a cross-site scripting vulnerability in the AttributesExtension. Prefixing an attribute name with a single U+000C form feed byte (e.g. {\x0Conclick="alert(1)"}) bypasses the AttributesHelper::filterAttributes() 'on*' event-handler filter because PHP's trim() does not strip U+000C, causing the attribute to be written verbatim into the output where browsers parse it as a genuine event handler. The same prefix also defeats the allow_unsafe_links check, allowing javascript: URIs through href/src attributes even when allow_unsafe_links is false. Exploitation requires processing untrusted Markdown with the AttributesExtension enabled; the injected script executes when the rendered HTML is viewed. Fixed in 2.9.1.

Affected products

VendorProductAffectedFixed
thephpleague commonmark 2.7.0 – < 2.9.1 2.9.1

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 php-league-commonmark 2.10.0-1 —
Debian 13 php-league-commonmark No fix yet —
Debian 12 php-league-commonmark No fix yet —
ReleasePackageFixed inAdvisory
Ubuntu 26.04 LTS php-league-commonmark No fix yet —
Show 3 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu Pro 24.04 LTS php-league-commonmark No fix yet —
Ubuntu Pro 22.04 LTS php-league-commonmark No fix yet —
Ubuntu Pro 20.04 LTS php-league-commonmark No fix yet —

Affected packages

EcosystemPackageAffectedFixedRecord
Packagist league/commonmark >= 2.7.0, < 2.9.1 2.9.1 GHSA-f8fg-pg57-v4j8

References