CVE-2025-46734 Information
Description
league/commonmark is a PHP Markdown parser. A cross-site scripting (XSS) vulnerability in the Attributes extension of the league/commonmark library (versions 1.5.0 through 2.6.x) allows remote attackers to insert malicious JavaScript calls into HTML. The league/commonmark library provides configuration options such as html_input: 'strip' and allow_unsafe_links: false to mitigate cross-site scripting (XSS) attacks by stripping raw HTML and disallowing unsafe links. However when the Attributes Extension is enabled it introduces a way for users to inject arbitrary HTML attributes into elements via Markdown syntax using curly braces. Version 2.7.0 contains three changes to prevent this XSS attack vector: All attributes starting with on are considered unsafe and blocked by default; support for an explicit allowlist of allowed HTML attributes; and manually-added href and src attributes now respect the existing allow_unsafe_links configuration option. If upgrading is not feasible please consider disabling the AttributesExtension for untrusted users and/or filtering the rendered HTML through a library like HTMLPurifier.
Reference
https://github.com/thephpleague/commonmark/commit/f0d626cf05ad3e99e6db26ebcb9091b6cd1cd89b
https://github.com/thephpleague/commonmark/security/advisories/GHSA-3527-qv2q-pfvx
league/commonmark
is
a
PHP
Markdown
parser.
A
cross-site
scripting
(XSS)
vulnerability
in
the
Attributes
extension
of
the
league/commonmark
library
(versions
1.5.0
through
2.6.x)
allows
remote
attackers
to
insert
malicious
JavaScript
calls
into
HTML.
The
league/commonmark
library
provides
configuration
options
such
as
html_input: 'strip'
and
allow_unsafe_links: false
to
mitigate
cross-site
scripting
(XSS)
attacks
by
stripping
raw
HTML
and
disallowing
unsafe
links.
However
when
the
Attributes
Extension
is
enabled
it
introduces
a
way
for
users
to
inject
arbitrary
HTML
attributes
into
elements
via
Markdown
syntax
using
curly
braces.
Version
2.7.0
contains
three
changes
to
prevent
this
XSS
attack
vector:
All
attributes
starting
with
on
are
considered
unsafe
and
blocked
by
default;
support
for
an
explicit
allowlist
of
allowed
HTML
attributes;
and
manually-added
href
and
src
attributes
now
respect
the
existing
allow_unsafe_links
configuration
option.
If
upgrading
is
not
feasible
please
consider
disabling
the
AttributesExtension
for
untrusted
users
and/or
filtering
the
rendered
HTML
through
a
library
like
HTMLPurifier.