Bug 2526256

Summary: CVE-2026-48988 libgit2_1.9: markdown-it: Denial of Service via quadratic processing of smartquotes with typographer enabled [epel-all]
Product: [Fedora] Fedora EPEL Reporter: Marian Rehak <mrehak>
Component: libgit2_1.9Assignee: Fabio Valentini <decathorpe>
Status: CLOSED NOTABUG QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: epel10CC: decathorpe, infra-sig, sgallagh
Target Milestone: ---Keywords: Security, SecurityTracking
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: {"flaws": ["71f48a1b-0719-4fd8-ad05-456e61498917"]}
Fixed In Version: Doc Type: ---
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2026-09-01 15:48:00 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2490150    

Description Marian Rehak 2026-08-31 11:17:15 UTC
Disclaimer: Community trackers are created by Red Hat Product Security team on a best effort basis. Package maintainers are required to ascertain if the flaw indeed affects their package, before starting the update process.

markdown-it is a Markdown parser. Versions 14.1.1 and below contain a denial-of-service vulnerability when typographer: true is enabled, due to quadratic (O(n^2)) processing in the smartquotes rule. The issue stems from repeatedly modifying strings with replaceAt(), which performs O(n) slicing and concatenation per quote character. This can cause excessive CPU consumption when parsing quote-heavy, user-supplied markdown and may let attackers degrade or disrupt service availability. Although typographer is disabled by default, many production apps enable it for smart typography, making the issue relevant. This issue has been fixed in version 14.2.0.

Comment 1 Fabio Valentini 2026-09-01 15:48:00 UTC
markdown-it is only referenced in the JavaScript tooling that's used to build the API docs, which isn't done for the Fedora packages - and even if it were, it would only be used to parse "trusted" input.