Cloudanix VulnDB

CVE-2024-44337

Medium · 5.1

CVSS

5.1

EPSS

0.5%

Published

Oct 15, 2024

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

A text-processing tool used by some applications can freeze and exhaust resources when given specially crafted text, causing those applications to stop responding until restarted.

Exploitation
Local Privilege
Attacker needs
None
Complexity
Low
Impact
Denial Of Service
Component
Library
Class
Denial of service
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

A logical flaw in the paragraph function of parser/block.go allows specially crafted Markdown input to trigger an infinite loop during parsing, causing the process to hang and consume CPU and memory indefinitely.

Why it matters to the business

Applications using the library, including Apache Pinot, can be rendered unresponsive by a single malicious input, leading to service outages, resource exhaustion, and potential cascading failures in dependent systems until the process is manually terminated.

How an attack unfolds

An attacker identifies an application that accepts untrusted Markdown through the vulnerable gomarkdown parser, crafts input containing a specific sequence that loops forever in the paragraph handler, submits it via the normal input channel, and observes the target process hang while consuming resources with no further interaction required.

How to fix it

Upgrade gomarkdown/markdown to commit a2a9c4f76ef5a5c32108e36f7c47f8d310322252 or later; upgrade org.apache.pinot:pinot to version 0.10.0 or later. After upgrade, rebuild and redeploy all affected services. If immediate upgrade is impossible, add input validation or sandboxing around Markdown parsing calls.

How to confirm the fix worked

Confirm the library version matches or exceeds the fixed commit or 0.10.0, then test parsing with known loop-triggering Markdown samples to verify the process no longer hangs. Monitor resource usage during repeated parsing of boundary-case inputs.

Typical attack path

  1. Locate an entry point that feeds user-controlled Markdown into the gomarkdown library
  2. Submit a minimal crafted payload designed to enter the infinite loop in parser/block.go
  3. Monitor for sustained high CPU and memory usage or application unresponsiveness
  4. Repeat or leave the process hanging to prolong denial of service

How to detect it

Search application and system logs for repeated or long-running Markdown parsing operations, sudden sustained high CPU or memory usage from processes that call the markdown parser, and any unhandled hangs or restarts of services that accept Markdown input.

What your security team should do

  • Prioritize upgrade of gomarkdown/markdown and Apache Pinot to the listed fixed versions within normal change windows
  • Inventory all internal services that parse Markdown with this library
  • Implement rate limiting or input-size restrictions on Markdown endpoints until patched
  • Add monitoring for anomalous CPU spikes during Markdown processing

The record

The package `github.com/gomarkdown/markdown` is a Go library for parsing Markdown text and rendering as HTML. Prior to pseudoversion `v0.0.0-20240729232818-a2a9c4f`, which corresponds with commit `a2a9c4f76ef5a5c32108e36f7c47f8d310322252`, there was a logical problem in the paragraph function of the parser/block.go file, which allowed a remote attacker to cause a denial of service (DoS) condition by providing a tailor-made input that caused an infinite loop, causing the program to hang and consume resources indefinitely. Submit `a2a9c4f76ef5a5c32108e36f7c47f8d310322252` contains fixes to this problem.

Affected packages

Ecosystem Package Introduced Fixed
Go github.com/gomarkdown/markdown 0 0.0.0-20240729212818-a2a9c4f76ef5
Go github.com/gomarkdown/markdown 0 0.0.0-20240729232818-a2a9c4f
Chainguard fq 0 0.13.0-r0
Chainguard kube-metrics-adapter 0 0.2.3-r2
Debian:12 golang-github-gomarkdown-markdown 0 No fix
Debian:13 golang-github-gomarkdown-markdown 0 No fix
Debian:14 golang-github-gomarkdown-markdown 0 No fix
Ubuntu:24.04:LTS golang-github-gomarkdown-markdown 0 No fix
Ubuntu:24.10 golang-github-gomarkdown-markdown 0 No fix
Ubuntu:25.04 golang-github-gomarkdown-markdown 0 No fix
Ubuntu:25.10 golang-github-gomarkdown-markdown 0 No fix
Wolfi fq 0 0.13.0-r0
Wolfi kube-metrics-adapter 0 0.2.3-r2
openSUSE:Tumbleweed fq 0 0.14.0-1.1
openSUSE:Tumbleweed govulncheck-vulndb 0 0.0.20241213T205935-1.1

Related vulnerabilities