CVE-2026-29074

7.5 HIGH

📋 TL;DR

SVGO versions 2.1.0-2.8.0, 3.0.0-3.3.2, and before 4.0.1 are vulnerable to XML entity expansion attacks. Attackers can craft small malicious SVG files that cause denial of service by crashing Node.js processes with out-of-memory errors. This affects any application or service using vulnerable SVGO versions to process SVG files.

💻 Affected Systems

Products:
  • SVGO (SVG Optimizer)
Versions: 2.1.0 to 2.8.0, 3.0.0 to 3.3.2, and versions before 4.0.1
Operating Systems: All platforms running Node.js
Default Config Vulnerable: ⚠️ Yes
Notes: Any application using SVGO to process SVG files is vulnerable. This includes web applications, build tools, and content management systems.

⚠️ Manual Verification Required

This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.

Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).

🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.

Recommended Actions:
  1. Review the CVE details at NVD
  2. Check vendor security advisories for your specific version
  3. Test if the vulnerability is exploitable in your environment
  4. Consider updating to the latest version as a precaution

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete denial of service for applications processing SVG files, potentially crashing entire Node.js processes and disrupting services.

🟠

Likely Case

Service disruption when processing malicious SVG files, leading to application crashes and downtime.

🟢

If Mitigated

Minimal impact with proper input validation and updated versions, though performance degradation may occur during attack attempts.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: LOW

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation requires only a malicious SVG file. The advisory includes proof-of-concept XML demonstrating the attack.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.8.1, 3.3.3, or 4.0.1

Vendor Advisory: https://github.com/svg/svgo/security/advisories/GHSA-xpqw-6gx7-v673

Restart Required: Yes

Instructions:

1. Identify SVGO version in package.json or via npm list. 2. Update to patched version: npm update svgo@latest or specify exact version: npm install svgo@2.8.1, svgo@3.3.3, or svgo@4.0.1. 3. Restart any running Node.js applications using SVGO.

🔧 Temporary Workarounds

Input validation for SVG files

all

Implement XML entity validation before passing files to SVGO

Implement custom XML parser with entity expansion limits

Rate limiting SVG processing

all

Limit concurrent SVG processing and implement timeouts

Set Node.js --max-old-space-size flag to limit memory
Implement processing timeouts in application code

🧯 If You Can't Patch

  • Implement strict file upload validation rejecting SVG files with XML entities
  • Run SVGO in isolated containers with memory limits and automatic restart on crash

🔍 How to Verify

Check if Vulnerable:

Check package.json for SVGO version or run: npm list svgo

Check Version:

npm list svgo | grep svgo

Verify Fix Applied:

Confirm version is 2.8.1+, 3.3.3+, or 4.0.1+ via npm list svgo

📡 Detection & Monitoring

Log Indicators:

  • Node.js heap out of memory errors
  • Process crashes during SVG processing
  • Unusually high memory usage spikes

Network Indicators:

  • Increased failed requests to SVG processing endpoints
  • Service degradation for SVG-related functionality

SIEM Query:

source="application.logs" AND ("heap out of memory" OR "FATAL ERROR") AND process="node"

🔗 References

📤 Share & Export