league/commonmark
Highly-extensible PHP Markdown parser which fully supports the CommonMark and GFM specs.
Activity
- Latest release
- 1w ago
- Total releases
- 145
- Cadence
- ~16 days
- Last 12 months
- 9
Reach
- Stars
- 3.0k
Details
- License
- BSD-3-Clause
- First release
- Sep 08, 2014
| Version | Released | |
|---|---|---|
2.10.1
patch
|
2.10.1
patch
Dependencies (4)
Changelog
Compare changes
|
|
2.10.0
minor
|
2.10.0
minor
Dependencies (4)
Changelog
Compare changes
|
|
2.9.2
patch
1 CVE
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev |
2.9.2
patch
Dependencies (4)
Changelog
Compare changes
|
|
2.9.1
patch
1 CVE
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev |
2.9.1
patch
Dependencies (4)
Changelog
Compare changes
|
|
2.9.0
minor
4 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86431
GHSA-f8fg-pg57-v4j8
Sep 01, 2026
league/commonmark XSS: `on*` event-handler filter in `AttributesExtension` bypassed with a U+000C form feed
7.2
/ 10
High
Network
Low
None
None
Changed
Low
Low
None
SummaryThe
Prefixing the attribute name with a single U+000C FORM FEED byte defeats that guarantee.
The same prefix defeats the This bypasses the fix shipped in the 2.7.0 security release ("Fix XSS in AttributesExtension",
43207253ea5f14867c77c697cd3838c446cadcea), which added Throughout this report DetailsThree behaviours combine. 1.
PCRE
2. The filter's string comparisons miss it.
3. The renderer never escapes attribute names.
Because the HTML5 tokenizer treats PoC
Full observed output ( | # | Markdown input | Rendered output | Result |
|---|---|---|---|
| A | In case E the injected Browser confirmation. Loading the library's unmodified output in Chrome for Testing 148:
The Verified against git HEAD ( ImpactStored cross-site scripting in any application that renders untrusted Markdown with
Consequences are the usual for stored XSS: session and cookie theft, actions performed as the
viewing user, and account takeover where the host application permits it. Because the payload can
be attached to an image ( The affected configuration is the extension's default: Workaround for usersSetting an explicit allow list takes the other branch of
Verified: Suggested fixThe narrow fix is to add A more durable fix is to reject anything that is not a well-formed attribute name in
As defence in depth, Affected versions
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev |
2.9.0
minor
Dependencies (4)
Changelog
Compare changes
|
|
2.8.3
patch
10 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86431
GHSA-f8fg-pg57-v4j8
Sep 01, 2026
league/commonmark XSS: `on*` event-handler filter in `AttributesExtension` bypassed with a U+000C form feed
7.2
/ 10
High
Network
Low
None
None
Changed
Low
Low
None
SummaryThe
Prefixing the attribute name with a single U+000C FORM FEED byte defeats that guarantee.
The same prefix defeats the This bypasses the fix shipped in the 2.7.0 security release ("Fix XSS in AttributesExtension",
43207253ea5f14867c77c697cd3838c446cadcea), which added Throughout this report DetailsThree behaviours combine. 1.
PCRE
2. The filter's string comparisons miss it.
3. The renderer never escapes attribute names.
Because the HTML5 tokenizer treats PoC
Full observed output ( | # | Markdown input | Rendered output | Result |
|---|---|---|---|
| A | In case E the injected Browser confirmation. Loading the library's unmodified output in Chrome for Testing 148:
The Verified against git HEAD ( ImpactStored cross-site scripting in any application that renders untrusted Markdown with
Consequences are the usual for stored XSS: session and cookie theft, actions performed as the
viewing user, and account takeover where the host application permits it. Because the payload can
be attached to an image ( The affected configuration is the extension's default: Workaround for usersSetting an explicit allow list takes the other branch of
Verified: Suggested fixThe narrow fix is to add A more durable fix is to reject anything that is not a well-formed attribute name in
As defence in depth, Affected versions
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev |
2.8.3
patch
Dependencies (4)
Changelog
Compare changes
|
|
2.8.2
patch
10 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86431
GHSA-f8fg-pg57-v4j8
Sep 01, 2026
league/commonmark XSS: `on*` event-handler filter in `AttributesExtension` bypassed with a U+000C form feed
7.2
/ 10
High
Network
Low
None
None
Changed
Low
Low
None
SummaryThe
Prefixing the attribute name with a single U+000C FORM FEED byte defeats that guarantee.
The same prefix defeats the This bypasses the fix shipped in the 2.7.0 security release ("Fix XSS in AttributesExtension",
43207253ea5f14867c77c697cd3838c446cadcea), which added Throughout this report DetailsThree behaviours combine. 1.
PCRE
2. The filter's string comparisons miss it.
3. The renderer never escapes attribute names.
Because the HTML5 tokenizer treats PoC
Full observed output ( | # | Markdown input | Rendered output | Result |
|---|---|---|---|
| A | In case E the injected Browser confirmation. Loading the library's unmodified output in Chrome for Testing 148:
The Verified against git HEAD ( ImpactStored cross-site scripting in any application that renders untrusted Markdown with
Consequences are the usual for stored XSS: session and cookie theft, actions performed as the
viewing user, and account takeover where the host application permits it. Because the payload can
be attached to an image ( The affected configuration is the extension's default: Workaround for usersSetting an explicit allow list takes the other branch of
Verified: Suggested fixThe narrow fix is to add A more durable fix is to reject anything that is not a well-formed attribute name in
As defence in depth, Affected versions
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev | ||
2.8.1
patch
11 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86431
GHSA-f8fg-pg57-v4j8
Sep 01, 2026
league/commonmark XSS: `on*` event-handler filter in `AttributesExtension` bypassed with a U+000C form feed
7.2
/ 10
High
Network
Low
None
None
Changed
Low
Low
None
SummaryThe
Prefixing the attribute name with a single U+000C FORM FEED byte defeats that guarantee.
The same prefix defeats the This bypasses the fix shipped in the 2.7.0 security release ("Fix XSS in AttributesExtension",
43207253ea5f14867c77c697cd3838c446cadcea), which added Throughout this report DetailsThree behaviours combine. 1.
PCRE
2. The filter's string comparisons miss it.
3. The renderer never escapes attribute names.
Because the HTML5 tokenizer treats PoC
Full observed output ( | # | Markdown input | Rendered output | Result |
|---|---|---|---|
| A | In case E the injected Browser confirmation. Loading the library's unmodified output in Chrome for Testing 148:
The Verified against git HEAD ( ImpactStored cross-site scripting in any application that renders untrusted Markdown with
Consequences are the usual for stored XSS: session and cookie theft, actions performed as the
viewing user, and account takeover where the host application permits it. Because the payload can
be attached to an image ( The affected configuration is the extension's default: Workaround for usersSetting an explicit allow list takes the other branch of
Verified: Suggested fixThe narrow fix is to add A more durable fix is to reject anything that is not a well-formed attribute name in
As defence in depth, Affected versions
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-33347
GHSA-hh8v-hgvp-g3f5
Mar 19, 2026
league/commonmark has an embed extension allowed_domains bypass
Medium
Network
Low
None
None
ImpactThe This enables two attack vectors:
Any application using the PatchesThis has been patched in version 2.8.2. The fix replaces the regex-based domain check with explicit hostname parsing using Workarounds
Affected versions
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
+ 14 more Show less
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
Fixed in
2.8.2
References
Updated Mar 27, 2026 · Source: OSV.dev | ||
2.8.0
minor
12 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86431
GHSA-f8fg-pg57-v4j8
Sep 01, 2026
league/commonmark XSS: `on*` event-handler filter in `AttributesExtension` bypassed with a U+000C form feed
7.2
/ 10
High
Network
Low
None
None
Changed
Low
Low
None
SummaryThe
Prefixing the attribute name with a single U+000C FORM FEED byte defeats that guarantee.
The same prefix defeats the This bypasses the fix shipped in the 2.7.0 security release ("Fix XSS in AttributesExtension",
43207253ea5f14867c77c697cd3838c446cadcea), which added Throughout this report DetailsThree behaviours combine. 1.
PCRE
2. The filter's string comparisons miss it.
3. The renderer never escapes attribute names.
Because the HTML5 tokenizer treats PoC
Full observed output ( | # | Markdown input | Rendered output | Result |
|---|---|---|---|
| A | In case E the injected Browser confirmation. Loading the library's unmodified output in Chrome for Testing 148:
The Verified against git HEAD ( ImpactStored cross-site scripting in any application that renders untrusted Markdown with
Consequences are the usual for stored XSS: session and cookie theft, actions performed as the
viewing user, and account takeover where the host application permits it. Because the payload can
be attached to an image ( The affected configuration is the extension's default: Workaround for usersSetting an explicit allow list takes the other branch of
Verified: Suggested fixThe narrow fix is to add A more durable fix is to reject anything that is not a well-formed attribute name in
As defence in depth, Affected versions
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-33347
GHSA-hh8v-hgvp-g3f5
Mar 19, 2026
league/commonmark has an embed extension allowed_domains bypass
Medium
Network
Low
None
None
ImpactThe This enables two attack vectors:
Any application using the PatchesThis has been patched in version 2.8.2. The fix replaces the regex-based domain check with explicit hostname parsing using Workarounds
Affected versions
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
+ 14 more Show less
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
Fixed in
2.8.2
References
Updated Mar 27, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev | ||
2.7.1
patch
12 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86431
GHSA-f8fg-pg57-v4j8
Sep 01, 2026
league/commonmark XSS: `on*` event-handler filter in `AttributesExtension` bypassed with a U+000C form feed
7.2
/ 10
High
Network
Low
None
None
Changed
Low
Low
None
SummaryThe
Prefixing the attribute name with a single U+000C FORM FEED byte defeats that guarantee.
The same prefix defeats the This bypasses the fix shipped in the 2.7.0 security release ("Fix XSS in AttributesExtension",
43207253ea5f14867c77c697cd3838c446cadcea), which added Throughout this report DetailsThree behaviours combine. 1.
PCRE
2. The filter's string comparisons miss it.
3. The renderer never escapes attribute names.
Because the HTML5 tokenizer treats PoC
Full observed output ( | # | Markdown input | Rendered output | Result |
|---|---|---|---|
| A | In case E the injected Browser confirmation. Loading the library's unmodified output in Chrome for Testing 148:
The Verified against git HEAD ( ImpactStored cross-site scripting in any application that renders untrusted Markdown with
Consequences are the usual for stored XSS: session and cookie theft, actions performed as the
viewing user, and account takeover where the host application permits it. Because the payload can
be attached to an image ( The affected configuration is the extension's default: Workaround for usersSetting an explicit allow list takes the other branch of
Verified: Suggested fixThe narrow fix is to add A more durable fix is to reject anything that is not a well-formed attribute name in
As defence in depth, Affected versions
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-33347
GHSA-hh8v-hgvp-g3f5
Mar 19, 2026
league/commonmark has an embed extension allowed_domains bypass
Medium
Network
Low
None
None
ImpactThe This enables two attack vectors:
Any application using the PatchesThis has been patched in version 2.8.2. The fix replaces the regex-based domain check with explicit hostname parsing using Workarounds
Affected versions
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
+ 14 more Show less
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
Fixed in
2.8.2
References
Updated Mar 27, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev | ||
2.7.0
minor
12 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86431
GHSA-f8fg-pg57-v4j8
Sep 01, 2026
league/commonmark XSS: `on*` event-handler filter in `AttributesExtension` bypassed with a U+000C form feed
7.2
/ 10
High
Network
Low
None
None
Changed
Low
Low
None
SummaryThe
Prefixing the attribute name with a single U+000C FORM FEED byte defeats that guarantee.
The same prefix defeats the This bypasses the fix shipped in the 2.7.0 security release ("Fix XSS in AttributesExtension",
43207253ea5f14867c77c697cd3838c446cadcea), which added Throughout this report DetailsThree behaviours combine. 1.
PCRE
2. The filter's string comparisons miss it.
3. The renderer never escapes attribute names.
Because the HTML5 tokenizer treats PoC
Full observed output ( | # | Markdown input | Rendered output | Result |
|---|---|---|---|
| A | In case E the injected Browser confirmation. Loading the library's unmodified output in Chrome for Testing 148:
The Verified against git HEAD ( ImpactStored cross-site scripting in any application that renders untrusted Markdown with
Consequences are the usual for stored XSS: session and cookie theft, actions performed as the
viewing user, and account takeover where the host application permits it. Because the payload can
be attached to an image ( The affected configuration is the extension's default: Workaround for usersSetting an explicit allow list takes the other branch of
Verified: Suggested fixThe narrow fix is to add A more durable fix is to reject anything that is not a well-formed attribute name in
As defence in depth, Affected versions
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-33347
GHSA-hh8v-hgvp-g3f5
Mar 19, 2026
league/commonmark has an embed extension allowed_domains bypass
Medium
Network
Low
None
None
ImpactThe This enables two attack vectors:
Any application using the PatchesThis has been patched in version 2.8.2. The fix replaces the regex-based domain check with explicit hostname parsing using Workarounds
Affected versions
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
+ 14 more Show less
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
Fixed in
2.8.2
References
Updated Mar 27, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev | ||
2.6.2
patch
12 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-33347
GHSA-hh8v-hgvp-g3f5
Mar 19, 2026
league/commonmark has an embed extension allowed_domains bypass
Medium
Network
Low
None
None
ImpactThe This enables two attack vectors:
Any application using the PatchesThis has been patched in version 2.8.2. The fix replaces the regex-based domain check with explicit hostname parsing using Workarounds
Affected versions
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
+ 14 more Show less
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
Fixed in
2.8.2
References
Updated Mar 27, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev | ||
2.6.1
patch
12 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-33347
GHSA-hh8v-hgvp-g3f5
Mar 19, 2026
league/commonmark has an embed extension allowed_domains bypass
Medium
Network
Low
None
None
ImpactThe This enables two attack vectors:
Any application using the PatchesThis has been patched in version 2.8.2. The fix replaces the regex-based domain check with explicit hostname parsing using Workarounds
Affected versions
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
+ 14 more Show less
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
Fixed in
2.8.2
References
Updated Mar 27, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev | ||
2.6.0
minor
12 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-33347
GHSA-hh8v-hgvp-g3f5
Mar 19, 2026
league/commonmark has an embed extension allowed_domains bypass
Medium
Network
Low
None
None
ImpactThe This enables two attack vectors:
Any application using the PatchesThis has been patched in version 2.8.2. The fix replaces the regex-based domain check with explicit hostname parsing using Workarounds
Affected versions
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
+ 14 more Show less
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
Fixed in
2.8.2
References
Updated Mar 27, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev | ||
2.5.3
patch
13 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-33347
GHSA-hh8v-hgvp-g3f5
Mar 19, 2026
league/commonmark has an embed extension allowed_domains bypass
Medium
Network
Low
None
None
ImpactThe This enables two attack vectors:
Any application using the PatchesThis has been patched in version 2.8.2. The fix replaces the regex-based domain check with explicit hostname parsing using Workarounds
Affected versions
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
+ 14 more Show less
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
Fixed in
2.8.2
References
Updated Mar 27, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.5.2
patch
13 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-33347
GHSA-hh8v-hgvp-g3f5
Mar 19, 2026
league/commonmark has an embed extension allowed_domains bypass
Medium
Network
Low
None
None
ImpactThe This enables two attack vectors:
Any application using the PatchesThis has been patched in version 2.8.2. The fix replaces the regex-based domain check with explicit hostname parsing using Workarounds
Affected versions
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
+ 14 more Show less
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
Fixed in
2.8.2
References
Updated Mar 27, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.5.1
patch
13 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-33347
GHSA-hh8v-hgvp-g3f5
Mar 19, 2026
league/commonmark has an embed extension allowed_domains bypass
Medium
Network
Low
None
None
ImpactThe This enables two attack vectors:
Any application using the PatchesThis has been patched in version 2.8.2. The fix replaces the regex-based domain check with explicit hostname parsing using Workarounds
Affected versions
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
+ 14 more Show less
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
Fixed in
2.8.2
References
Updated Mar 27, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.5.0
minor
13 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-33347
GHSA-hh8v-hgvp-g3f5
Mar 19, 2026
league/commonmark has an embed extension allowed_domains bypass
Medium
Network
Low
None
None
ImpactThe This enables two attack vectors:
Any application using the PatchesThis has been patched in version 2.8.2. The fix replaces the regex-based domain check with explicit hostname parsing using Workarounds
Affected versions
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
+ 14 more Show less
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
Fixed in
2.8.2
References
Updated Mar 27, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.4.4
patch
13 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-33347
GHSA-hh8v-hgvp-g3f5
Mar 19, 2026
league/commonmark has an embed extension allowed_domains bypass
Medium
Network
Low
None
None
ImpactThe This enables two attack vectors:
Any application using the PatchesThis has been patched in version 2.8.2. The fix replaces the regex-based domain check with explicit hostname parsing using Workarounds
Affected versions
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
+ 14 more Show less
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
Fixed in
2.8.2
References
Updated Mar 27, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.4.3
patch
13 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-33347
GHSA-hh8v-hgvp-g3f5
Mar 19, 2026
league/commonmark has an embed extension allowed_domains bypass
Medium
Network
Low
None
None
ImpactThe This enables two attack vectors:
Any application using the PatchesThis has been patched in version 2.8.2. The fix replaces the regex-based domain check with explicit hostname parsing using Workarounds
Affected versions
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
+ 14 more Show less
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
Fixed in
2.8.2
References
Updated Mar 27, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.4.2
patch
13 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-33347
GHSA-hh8v-hgvp-g3f5
Mar 19, 2026
league/commonmark has an embed extension allowed_domains bypass
Medium
Network
Low
None
None
ImpactThe This enables two attack vectors:
Any application using the PatchesThis has been patched in version 2.8.2. The fix replaces the regex-based domain check with explicit hostname parsing using Workarounds
Affected versions
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
+ 14 more Show less
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
Fixed in
2.8.2
References
Updated Mar 27, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.4.1
patch
13 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-33347
GHSA-hh8v-hgvp-g3f5
Mar 19, 2026
league/commonmark has an embed extension allowed_domains bypass
Medium
Network
Low
None
None
ImpactThe This enables two attack vectors:
Any application using the PatchesThis has been patched in version 2.8.2. The fix replaces the regex-based domain check with explicit hostname parsing using Workarounds
Affected versions
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
+ 14 more Show less
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
Fixed in
2.8.2
References
Updated Mar 27, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.4.0
minor
13 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-33347
GHSA-hh8v-hgvp-g3f5
Mar 19, 2026
league/commonmark has an embed extension allowed_domains bypass
Medium
Network
Low
None
None
ImpactThe This enables two attack vectors:
Any application using the PatchesThis has been patched in version 2.8.2. The fix replaces the regex-based domain check with explicit hostname parsing using Workarounds
Affected versions
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
+ 14 more Show less
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
Fixed in
2.8.2
References
Updated Mar 27, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.3.9
patch
13 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-33347
GHSA-hh8v-hgvp-g3f5
Mar 19, 2026
league/commonmark has an embed extension allowed_domains bypass
Medium
Network
Low
None
None
ImpactThe This enables two attack vectors:
Any application using the PatchesThis has been patched in version 2.8.2. The fix replaces the regex-based domain check with explicit hostname parsing using Workarounds
Affected versions
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
+ 14 more Show less
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
Fixed in
2.8.2
References
Updated Mar 27, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.3.8
patch
13 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-33347
GHSA-hh8v-hgvp-g3f5
Mar 19, 2026
league/commonmark has an embed extension allowed_domains bypass
Medium
Network
Low
None
None
ImpactThe This enables two attack vectors:
Any application using the PatchesThis has been patched in version 2.8.2. The fix replaces the regex-based domain check with explicit hostname parsing using Workarounds
Affected versions
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
+ 14 more Show less
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
Fixed in
2.8.2
References
Updated Mar 27, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.3.7
patch
13 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-33347
GHSA-hh8v-hgvp-g3f5
Mar 19, 2026
league/commonmark has an embed extension allowed_domains bypass
Medium
Network
Low
None
None
ImpactThe This enables two attack vectors:
Any application using the PatchesThis has been patched in version 2.8.2. The fix replaces the regex-based domain check with explicit hostname parsing using Workarounds
Affected versions
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
+ 14 more Show less
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
Fixed in
2.8.2
References
Updated Mar 27, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.3.6
patch
13 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-33347
GHSA-hh8v-hgvp-g3f5
Mar 19, 2026
league/commonmark has an embed extension allowed_domains bypass
Medium
Network
Low
None
None
ImpactThe This enables two attack vectors:
Any application using the PatchesThis has been patched in version 2.8.2. The fix replaces the regex-based domain check with explicit hostname parsing using Workarounds
Affected versions
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
+ 14 more Show less
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
Fixed in
2.8.2
References
Updated Mar 27, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.3.5
patch
13 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-33347
GHSA-hh8v-hgvp-g3f5
Mar 19, 2026
league/commonmark has an embed extension allowed_domains bypass
Medium
Network
Low
None
None
ImpactThe This enables two attack vectors:
Any application using the PatchesThis has been patched in version 2.8.2. The fix replaces the regex-based domain check with explicit hostname parsing using Workarounds
Affected versions
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
+ 14 more Show less
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
Fixed in
2.8.2
References
Updated Mar 27, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.3.4
patch
13 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-33347
GHSA-hh8v-hgvp-g3f5
Mar 19, 2026
league/commonmark has an embed extension allowed_domains bypass
Medium
Network
Low
None
None
ImpactThe This enables two attack vectors:
Any application using the PatchesThis has been patched in version 2.8.2. The fix replaces the regex-based domain check with explicit hostname parsing using Workarounds
Affected versions
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
+ 14 more Show less
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
Fixed in
2.8.2
References
Updated Mar 27, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.3.3
patch
13 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-33347
GHSA-hh8v-hgvp-g3f5
Mar 19, 2026
league/commonmark has an embed extension allowed_domains bypass
Medium
Network
Low
None
None
ImpactThe This enables two attack vectors:
Any application using the PatchesThis has been patched in version 2.8.2. The fix replaces the regex-based domain check with explicit hostname parsing using Workarounds
Affected versions
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
+ 14 more Show less
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
Fixed in
2.8.2
References
Updated Mar 27, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.3.2
patch
13 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-33347
GHSA-hh8v-hgvp-g3f5
Mar 19, 2026
league/commonmark has an embed extension allowed_domains bypass
Medium
Network
Low
None
None
ImpactThe This enables two attack vectors:
Any application using the PatchesThis has been patched in version 2.8.2. The fix replaces the regex-based domain check with explicit hostname parsing using Workarounds
Affected versions
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
+ 14 more Show less
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
Fixed in
2.8.2
References
Updated Mar 27, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.2.5
patch
12 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.3.1
patch
13 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-33347
GHSA-hh8v-hgvp-g3f5
Mar 19, 2026
league/commonmark has an embed extension allowed_domains bypass
Medium
Network
Low
None
None
ImpactThe This enables two attack vectors:
Any application using the PatchesThis has been patched in version 2.8.2. The fix replaces the regex-based domain check with explicit hostname parsing using Workarounds
Affected versions
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
+ 14 more Show less
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
Fixed in
2.8.2
References
Updated Mar 27, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.2.4
patch
12 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.3.0
minor
13 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-33347
GHSA-hh8v-hgvp-g3f5
Mar 19, 2026
league/commonmark has an embed extension allowed_domains bypass
Medium
Network
Low
None
None
ImpactThe This enables two attack vectors:
Any application using the PatchesThis has been patched in version 2.8.2. The fix replaces the regex-based domain check with explicit hostname parsing using Workarounds
Affected versions
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
+ 14 more Show less
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
Fixed in
2.8.2
References
Updated Mar 27, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.2.3
patch
12 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.1.3
patch
12 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.0.4
patch
12 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.2.2
patch
12 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.1.2
patch
12 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.0.3
patch
12 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.2.1
patch
12 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.2.0
minor
12 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
1.6.7
patch
9 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev |
1.6.7
patch
Changelog
Compare changes
|
|
2.1.1
patch
12 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.1.0
minor
12 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.0.2
patch
12 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev |
2.0.2
patch
Changelog
Compare changes
|
|
2.0.1
patch
12 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.0.0
major
12 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-mj63-m3rc-8ppr
Aug 06, 2026
league/commonmark: Denial of service via deeply nested XML output
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
Impact
This affects applications that convert untrusted Markdown to XML, which is an opt-in output path. The parser's WorkaroundsApplications converting untrusted Markdown to XML should:
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-mh25-x5hq-wrqp
Aug 06, 2026
league/commonmark: Denial of service via colliding heading slugs
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
The path is reached whenever the shared slug normalizer runs over attacker-controlled text. That happens when WorkaroundsIntegrators who cannot upgrade immediately can:
Each of these trades off functionality or correctness; upgrading to the patched release (which removes the quadratic behavior while keeping unique ids and identical output) is the recommended remediation. Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 31 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-30838
GHSA-4v6x-c7xx-hw9f
Mar 06, 2026
CommonMark has DisallowedRawHtml extension bypass via whitespace in HTML tag names
Medium
Network
Low
Low
ImpactThe All applications using the PatchesFixed in 2.8.1. The regex character class Workarounds
Affected versions
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
+ 28 more Show less
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
Fixed in
2.8.1
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev | ||
2.0.0-rc2
pre
9 CVEs
CVE-2026-86428
GHSA-8rr7-cvq3-gmfh
Sep 01, 2026
league/commonmark: Denial of service via distinctly-named attributes in the Attributes extension
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
Impact
Two paths in the extension re-process every attribute a node has already collected each time another attribute is applied to it. When the attributes carry distinct names, the collected set grows by one on every step and is walked again in full, so a run of n attributes costs O(n²). 1. Attribute nodes resolving to a common target (affected from 1.5.0).
Two input shapes reach this path: adjacent inline attributes at the start of a block ( 256 KB of adjacent inline attributes takes 20.0 seconds to convert, against 0.09 seconds once patched. 2. Consecutive attribute-block lines (affected from 2.0.0).
256 KB of such lines takes 1.9 seconds to convert while producing zero bytes of output, against 0.08 seconds once patched. Relationship to GHSA-jjv6-8j6v-6j52. The fix released in 2.9.1 for that advisory made the Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. PatchesThe issue is patched in The listener path affects WorkaroundsIf you cannot upgrade immediately:
The Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 56 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
2.9.1
2.9.2
Fixed in
2.10.0
References Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86429
GHSA-jjv6-8j6v-6j52
Sep 01, 2026
league/commonmark: Denial of service in the SmartPunct and Attributes extensions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactTwo first-party extensions contain quadratic parsing paths. Both ship with the library but must be explicitly registered on the 1.
A 1.2 MB document of alternating text segments and apostrophes takes 34.9 seconds to convert, against 0.069 seconds for the same input with the extension not registered. Hardened configuration makes this worse rather than better: 2.
An input placing each This is the block-level counterpart of GHSA-g2gp-3wwq-f4ph, patched in 2.9.0. That fix is incomplete: the early break it introduced is guarded on the node being an 3.
Overall impact. An unauthenticated attacker who can submit Markdown to an affected application can consume disproportionate CPU time with a comparatively small request, occupying PHP workers and preventing legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. No library-level configuration gates any of these paths. For the Attributes extension in particular, neither the PatchesThe issues are patched in
The SmartPunct path affects WorkaroundsIf you cannot upgrade immediately:
Restricting conversion to trusted users, applying strict execution-time limits, and rate-limiting requests reduce exposure but are not substitutes for upgrading. Configuration options including Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 54 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
CVE-2026-86430
GHSA-j8pm-gj4c-rq4x
Sep 01, 2026
league/commonmark: Denial of service via crafted code fences, reference links, and emphasis delimiters
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of The three paths were introduced at different times. This advisory's version range is their union; the individual ranges are: | Path | Affected from | Affected through |
|---|---|---|
| 1. Fenced code block detection | 1. Fenced code block detection — quadratic, affected from 0.6.0.
The lookahead enforces the CommonMark rule that a backtick fence's info string may not itself contain a backtick, but neither the lookahead nor the backtick run it guards is atomic or possessive. On a line consisting of a long backtick run, filler text, and a single trailing backtick, the quantifier gives back one character at a time and re-runs the lookahead across the remainder of the line on every candidate fence length. A 320 KB single line takes roughly 27 seconds to convert. The identical payload with one 2. Reference link label lookup — effectively quadratic, affected from 0.6.0. When a shortcut or collapsed reference link is attempted, In 2.x the normalization sits behind an early return for an empty reference map, so a single 8-byte reference definition anywhere in the document ( 3. Emphasis, strikethrough, and highlight delimiter processing — super-linear, affected from 2.6.0.
The resulting work grows as roughly n^1.5. This is sub-quadratic, but the amplification over linear growth itself scales with input size, so it worsens as inputs grow: 800 KB of ordinary asterisks, letters, and spaces costs roughly 27 seconds on a stock converter. This path is a regression introduced in 2.6.0. Before that release the cache key was the bare delimiter character — a bounded key space that amortized correctly. Overall impact. An unauthenticated attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The impact is limited to availability: no data is disclosed, rendered output is unchanged, and no rendering restriction is bypassed. Applications that process only trusted Markdown are not remotely exploitable. Settings such as PatchesThe issues are patched in
Versions from WorkaroundsIf you cannot upgrade immediately, enforce a maximum length for individual lines before passing input to the converter, in addition to a total request-size limit. A per-line limit matters because every trigger described above fits within a single line. Because the cost grows super-linearly, the cap must be genuinely small to bound worst-case CPU. Setting Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions all reduce exposure, but none is a complete substitute for upgrading. Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 120 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
2.9.0
Fixed in
2.9.1
References
Updated Sep 08, 2026 · Source: OSV.dev
GHSA-jfm3-95jq-q3rf
Aug 06, 2026
league/commonmark: Denial of service via duplicate footnote definitions
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactThe Footnote extension records one backref per footnote reference and then appends the entire backref list for every footnote definition block in the document, without ever de-duplicating or removing repeated definitions of the same label ( Reaching the vulnerable path requires WorkaroundsThere is no library-level option to cap the number of footnotes, references, or definitions, so no configuration switch prevents the amplification. Integrators who cannot upgrade should:
Upgrading to the patched release is the recommended remediation. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
GHSA-g2gp-3wwq-f4ph
Aug 06, 2026
league/commonmark: Denial of service via adjacent inline attribute blocks
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactWith the Attributes extension enabled, Reaching the path requires WorkaroundsThere is no library-level configuration that gates the quadratic walk. Integrators who cannot upgrade can only reduce exposure indirectly:
Upgrading to a release containing the fix is recommended. Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 06, 2026 · Source: OSV.dev
CVE-2026-71488
GHSA-2q4p-g7hv-5rgv
Aug 06, 2026
league/commonmark: Quadratic-time denial of service when parsing crafted Markdown
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactAffected versions of In current 2.x releases, a single non-ASCII character anywhere on a line can place that whole line on the slower multibyte path. An attacker can combine it with a long run of leading whitespace or repeated Markdown punctuation, causing increasingly large rescans. When the Autolink extension is enabled, repeated URL-like prefixes provide another trigger, even on ASCII-only lines. Each trigger fits within one long line, so complex Markdown structure is unnecessary. An attacker who can submit Markdown for conversion can use a comparatively small request to consume disproportionate CPU time and allocation activity. Repeated or concurrent requests can occupy all available PHP workers and prevent legitimate requests from completing. The core paths affect PatchesThe issue is patched in WorkaroundsIf you cannot upgrade immediately, reject or truncate inputs with excessively long individual lines before passing them to the converter. A total request-size limit is also useful, but a per-line limit is important because every demonstrated trigger fits on one line. Choose limits appropriate for the application and enforce them before Markdown parsing begins. Restricting conversion to trusted users, applying strict execution-time limits, rate-limiting requests, and limiting concurrent conversions can further reduce exposure, but these measures are not complete substitutes for upgrading. Disabling Affected versions
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
0.13.3
0.13.4
0.14.0
+ 119 more Show less
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References
Updated Aug 21, 2026 · Source: OSV.dev
CVE-2026-71478
GHSA-29pj-957v-52mc
Aug 06, 2026
league/commonmark: AttributesExtension href/src unsafe-link filter bypass via embedded control bytes
6.1
/ 10
Medium
Network
Low
None
Required
Changed
Low
Low
None
SummaryThe
The filter is a literal anchored-prefix regex ( This is confirmed reproducible even with This is a sibling gap in the same defense that CVE-2025-46734 (GHSA-3527-qv2q-pfvx) fixed in v2.7.0 — that fix made VulnerabilityFiles:
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS) — primary
Root Cause
The Attributes extension's own quote-value grammar ( Attack Scenario
Why the payload needs an unsafe core destination. Step 2 above deliberately uses Two related forms that are not exploitable, noted so the fix isn't over-scoped:
Recommended FixNormalize inside Affected Versions
Prior Related AdvisoriesGHSA-3527-qv2q-pfvx / CVE-2025-46734 fixed a different Attributes-extension XSS (unallowlisted Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 53 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
2.7.0
2.7.1
2.8.0
2.8.1
2.8.2
2.8.3
Fixed in
2.9.0
References Updated Aug 21, 2026 · Source: OSV.dev
CVE-2025-46734
GHSA-3527-qv2q-pfvx
May 05, 2025
league/commonmark contains a XSS vulnerability in Attributes extension
6.4
/ 10
Medium
Network
Low
Low
None
Changed
Low
Low
None
SummaryCross-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. DetailsThe league/commonmark library provides configuration options such as As a result, even with the secure configuration shown above, an attacker can inject dangerous attributes into applications using this extension via a payload such as:
Which results in the following HTML:
Which causes the JS to execute immediately on page load. PatchesVersion 2.7.0 contains three changes to prevent this XSS attack vector:
WorkaroundsIf upgrading is not feasible, please consider:
Affected versions
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
+ 47 more Show less
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.6.2
Fixed in
2.7.0
References Updated Mar 20, 2026 · Source: OSV.dev
CVE-2024-58382
GHSA-c2pc-g5qf-rfrf
Dec 09, 2024
league/commonmark's quadratic complexity bugs may lead to a denial of service
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
ImpactSeveral polynomial time complexity issues in league/commonmark may lead to unbounded resource exhaustion and subsequent denial of service. Malicious users could trigger that inefficient code with carefully crafted Markdown inputs that are specifically designed to ensure the worst-case performance is reached. Sending multiple such requests in parallel could tie up all available CPU resources and/or PHP-FPM processes, leading to denial of service for legitimate users. PatchesThese vulnerabilities have been patched in version 2.6.0. All users on older versions are highly encouraged to upgrade as soon as possible. WorkaroundsIf you cannot upgrade, you may be able to mitigate the issues by:
ReferencesMost of these issues were discovered in other Markdown parsers. You can read more about them here:
For general information about this type of issue:
Affected versions
0.1.0
0.1.1
0.1.2
0.10.0
0.11.0
0.11.1
0.11.2
0.11.3
0.12.0
0.13.0
0.13.1
0.13.2
+ 119 more Show less
0.13.3
0.13.4
0.14.0
0.15.0
0.15.1
0.15.2
0.15.3
0.15.4
0.15.5
0.15.6
0.15.7
0.16.0
0.17.0
0.17.1
0.17.2
0.17.3
0.17.4
0.17.5
0.18.0
0.18.1
0.18.2
0.18.3
0.18.4
0.18.5
0.19.0
0.19.1
0.19.2
0.19.3
0.2.0
0.2.1
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.7.1
0.7.2
0.8.0
0.9.0
1.0.0
1.0.0-beta1
1.0.0-beta2
1.0.0-beta3
1.0.0-beta4
1.0.0-rc1
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0
1.2.1
1.2.2
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.5.7
1.5.8
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
2.0.0
2.0.0-beta1
2.0.0-beta2
2.0.0-beta3
2.0.0-rc1
2.0.0-rc2
2.0.1
2.0.2
2.0.3
2.0.4
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
2.3.8
2.3.9
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.5.0
2.5.1
2.5.2
2.5.3
Fixed in
2.6.0
References
Updated Sep 10, 2026 · Source: OSV.dev |