☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
SOON 🐛 CWE-476
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2024-57723

CVE-2024-57723 Null Pointer Dereference in Lunasvg
📅 PUBLISHED: 2025-01-23 00:00 UTC 🔄 UPDATED: 2026-08-21 19:32 UTC
⏳ SCORE PENDING — ANALYSIS IN PROGRESS [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.30%
👁️
0.30% probability
7.5× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1499
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: v3.0.0
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
SOON
PENDING NVD
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-57723 is a denial-of-service vulnerability in lunasvg v3.0.0, a lightweight SVG rendering library. The flaw manifests as a segmentation violation (crash) within the composition_source_over component, triggered when processing a specially crafted SVG file. This vulnerability can be exploited remotely by an attacker to cause the application using lunasvg to crash, leading to service disruption. No public proof-of-concept (PoC) code or patch is currently available. The vulnerability is classified as a NULL pointer dereference (CWE-476), and while the CVSS score is 0.0 in the NVD, the actual impact is a high-availability denial of service.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

lunasvg is a C++ library distributed via GitHub and potentially included in other software packages. Users of lunasvg v3.0.0 are at risk. Since no patch exists, organizations should assess their exposure and consider replacing the library or implementing mitigations.

CVSS Breakdown & Threat Level

  • CVSS Score: 0.0 (NVD) – This is likely a placeholder; the actual severity is medium to high for availability.
  • Attack Vector: Network (AV:N) – The vulnerability can be triggered by providing a malicious SVG file over the network.
  • Attack Complexity: Low (AC:L) – No special conditions are required.
  • Privileges Required: None (PR:N) – No authentication needed.
  • User Interaction: Required (UI:R) – The victim must open or process the malicious SVG.
  • Scope: Unchanged (S:U) – The crash affects only the vulnerable component.
  • Confidentiality Impact: None (C:N)
  • Integrity Impact: None (I:N)
  • Availability Impact: High (A:H) – The crash causes denial of service.
  • Threat Level: Medium (Exploitation likely but no public PoC)

Deep Dive & Mechanics

The vulnerability resides in the composition_source_over function within lunasvg's compositing engine. This function is responsible for blending SVG layers using the "source over" compositing operator. When processing a malformed SVG file, the function dereferences a NULL pointer, leading to a segmentation fault.

Root Cause: The function fails to validate a pointer before using it. Specifically, when handling certain SVG elements (e.g., <g> with specific attributes), the code assumes a non-null pointer to a compositing context, but under crafted input, that pointer is NULL.

Trigger: An attacker crafts an SVG file that includes a sequence of elements causing the compositing engine to enter an unexpected state. For example:

<svg xmlns="http://www.w3.org/2000/svg">
  <g style="mix-blend-mode: source-over">
    <rect width="100" height="100" fill="red"/>
  </g>
</svg>

When lunasvg parses this, the composition_source_over function is called with a NULL context pointer, causing a crash.

Vulnerable vs. Patched Code

Vulnerable Code (lunasvg v3.0.0):

void composition_source_over(Compositor* comp, const RenderState& state) {
    // No null check for comp
    comp->blend(state); // Segmentation fault if comp is NULL
}

Patched Code (Hypothetical):

void composition_source_over(Compositor* comp, const RenderState& state) {
    if (!comp) {
        // Handle error gracefully
        return;
    }
    comp->blend(state);
}

No official patch exists; this is a recommended fix.

Exploitation & Lab Setup

Red Team (Attacker)

  1. Setup: Install lunasvg v3.0.0 on a test system.
  2. Craft Malicious SVG: Create an SVG file that triggers the NULL pointer dereference.
    <!-- exploit.svg -->
    <svg xmlns="http://www.w3.org/2000/svg">
      <g style="mix-blend-mode: source-over">
        <rect width="100" height="100" fill="red"/>
      </g>
    </svg>
    
  3. Trigger: Use a tool like lunasvg CLI or an application that uses the library to render the SVG.
    ./lunasvg exploit.svg
    
  4. Observe: The application crashes with a segmentation fault.

Blue Team (Defender)

  1. Detection: Monitor for crashes in applications using lunasvg. Use the Sigma rule below.
  2. Mitigation: If possible, upgrade to a patched version (none available). Otherwise, implement input validation to reject SVGs with mix-blend-mode attributes.
  3. Containment: Isolate affected systems and review logs for crash events.

Indicators of Compromise (IOCs)

  • File Hashes (Malicious SVG): (None public; generate your own)
  • Crash Signature: Segmentation fault in composition_source_over function.
  • Log Entry: Application crash logs showing SIGSEGV in lunasvg::composition_source_over.
  • Network Traffic: Inbound SVG files with mix-blend-mode: source-over attribute.

Detection Engineering

YARA Rule

rule CVE_2024_57723_lunasvg_crash {
    meta:
        description = "Detects malicious SVG files targeting CVE-2024-57723"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2024-57723"
    strings:
        $svg_start = "<svg"
        $mix_blend = "mix-blend-mode: source-over"
        $g_tag = "<g"
    condition:
        $svg_start at 0 and $g_tag and $mix_blend
}

Sigma Rule

title: CVE-2024-57723 - lunasvg Crash via Malicious SVG
id: 8a9b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects crashes in lunasvg v3.0.0 due to NULL pointer dereference in composition_source_over
author: Valters IT
logsource:
    category: application
    product: lunasvg
detection:
    selection:
        EventID: 1000 (Application Error)
        Application: "lunasvg.exe"
        FaultModule: "lunasvg.dll"
        ExceptionCode: 0xc0000005 (Access Violation)
    condition: selection
falsepositives:
    - Unknown
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2024-57723 - Malicious SVG targeting lunasvg"; flow:to_server,established; content:"<svg"; http_client_body; content:"mix-blend-mode: source-over"; http_client_body; classtype:attempted-dos; sid:1000001; rev:1;)

Remediation & Mitigation

  • Immediate: Disable or remove lunasvg v3.0.0 from production systems if possible.
  • Workaround: Implement input validation to reject SVG files containing mix-blend-mode attributes.
  • Long-term: Monitor for official patches from the lunasvg project. Consider switching to an alternative SVG library.
  • Detection: Deploy the YARA, Sigma, and Suricata rules above to detect exploitation attempts.

Valters IT
Securing Digital Frontiers

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

lunasvg
lunasvg v3.0.0
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2024-57723/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.