☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2025-43967

CVE-2025-43967 Null Pointer Dereference in Libheif
📅 PUBLISHED: 2025-04-20 00:00 UTC 🔄 UPDATED: 2026-09-23 20:37 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: CONFIRMED — 3+ independent sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.43%
👁️
0.43% probability
10.8× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Patch available — upgrade to latest release
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
2.9
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-43967 is a NULL pointer dereference vulnerability in libheif, a library for handling HEIF (High Efficiency Image File Format) images. The flaw exists in the ImageItem_Grid::get_decoder function within image-items/grid.cc. A specially crafted HEIF file containing a grid image that references a nonexistent image item can cause a NULL pointer dereference, leading to a denial of service (DoS) via application crash. The vulnerability has a low CVSS score of 2.9 due to the requirement for user interaction and local access, but it can be triggered remotely if an application processes untrusted HEIF files. No public proof-of-concept (PoC) or exploit code is currently available, and the EPSS score is 0.0%, indicating low exploitation activity.

⚡ 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

This vulnerability affects the libheif library, which is a dependency for many image processing applications and libraries (e.g., ImageMagick, GIMP, and various media players). Users of these applications are indirectly vulnerable if they process untrusted HEIF files. The library is available via package managers on Linux distributions (e.g., apt, yum) and can be compiled from source. The fix is included in version 1.19.6, and users should update their libheif packages or rebuild applications against the patched version.

CVSS Breakdown & Threat Level

  • CVSS Score: 2.9 (Low)
  • Vector: CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:L
  • Attack Vector (AV): Local (L) – The attacker must have local access to the system or trick a user into opening a malicious file.
  • Attack Complexity (AC): Low (L) – No special conditions are required to exploit.
  • Privileges Required (PR): None (N) – No authentication needed.
  • User Interaction (UI): Required (R) – The victim must open the malicious HEIF file.
  • Scope (S): Unchanged (U) – The vulnerability does not affect other components.
  • Confidentiality (C): None (N) – No data exposure.
  • Integrity (I): None (N) – No data modification.
  • Availability (A): Low (L) – The application crashes, causing a denial of service.

Threat Level: Low. The vulnerability requires user interaction and only results in a DoS. However, it could be used in targeted attacks against systems that process HEIF images from untrusted sources.

Deep Dive & Mechanics

The vulnerability resides in the ImageItem_Grid::get_decoder function in image-items/grid.cc. In libheif, a grid image is composed of multiple sub-images (tiles) that are referenced by their image item IDs. When parsing a HEIF file, the code retrieves the image item for each tile. If the tile references a nonexistent image item ID, the pointer to that item is NULL. The vulnerable code then attempts to call a method on this NULL pointer, leading to a crash.

Root Cause: Lack of null pointer validation before dereferencing the image item pointer.

Trigger: A specially crafted HEIF file with a grid image that contains an invalid reference to a nonexistent image item.

Impact: Denial of service (application crash). No code execution or data leakage is possible.

Vulnerable vs. Patched Code

Vulnerable Code (libheif < 1.19.6):

// image-items/grid.cc
std::shared_ptr<HeifContext::Image> ImageItem_Grid::get_decoder() const {
    // ...
    for (const auto& tile : tiles) {
        auto image = context->get_image(tile.image_id);
        // No null check before calling image->get_decoder()
        auto decoder = image->get_decoder(); // CRASH if image is NULL
        // ...
    }
    // ...
}

Patched Code (libheif >= 1.19.6):

// image-items/grid.cc
std::shared_ptr<HeifContext::Image> ImageItem_Grid::get_decoder() const {
    // ...
    for (const auto& tile : tiles) {
        auto image = context->get_image(tile.image_id);
        if (!image) {
            // Handle the error gracefully
            return nullptr; // or throw an exception
        }
        auto decoder = image->get_decoder();
        // ...
    }
    // ...
}

The fix adds a null check after retrieving the image item. If the image is NULL, the function returns early, preventing the crash.

Exploitation & Lab Setup

Red Team (Attack Simulation)

Since no public PoC or exploit code is available, a red team can craft a malicious HEIF file to trigger the vulnerability. The following steps outline the process:

  1. Create a Malicious HEIF File:

    • Use a hex editor or a custom script to modify a valid HEIF file.
    • Locate the grid image box (type 'grid') and change the image item ID for one of the tiles to a nonexistent ID (e.g., 0 or a very large number).
    • Ensure the file still parses as a valid HEIF file up to the point of the crash.
  2. Deliver the File:

    • Send the file via email, web download, or other means to the target.
    • Convince the user to open the file with an application that uses libheif (e.g., an image viewer or converter).
  3. Trigger the Crash:

    • When the application processes the grid image, it will attempt to dereference the NULL pointer, causing a segmentation fault and crash.

Example Python Script to Generate Malicious HEIF:

# This is a conceptual script; actual HEIF structure is complex.
# Use a library like `heif` to parse and modify.
import struct

def create_malicious_heif():
    # Placeholder: In reality, you would modify an existing HEIF file.
    # Change the tile reference to an invalid ID.
    pass

Blue Team (Defense & Detection)

  • Prevention: Update libheif to version 1.19.6 or later. Use application whitelisting to prevent untrusted applications from processing HEIF files.
  • Detection: Monitor for crashes in applications that use libheif. Use file integrity monitoring to detect malicious HEIF files.
  • Mitigation: If patching is not possible, consider disabling HEIF support in applications or using a sandboxed environment to process untrusted images.

Indicators of Compromise (IOCs)

  • File Hashes: No specific hashes available as no PoC exists.
  • File Patterns: HEIF files with grid images containing invalid tile references.
  • Behavioral: Application crashes (segmentation faults) when processing HEIF files.
  • Network: No network indicators as the vulnerability is file-based.

Detection Engineering

YARA Rule

rule CVE_2025_43967_HEIF_NULL_PTR {
    meta:
        description = "Detects HEIF files with grid images referencing nonexistent items"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-43967"
    strings:
        $heif_magic = { 00 00 00 ?? 66 74 79 70 68 65 69 63 } // ftyp box for HEIC
        $grid_box = { 67 72 69 64 } // 'grid' box
        $invalid_id = { 00 00 00 00 } // Placeholder for invalid ID
    condition:
        $heif_magic and $grid_box and #invalid_id > 0
}

Sigma Rule

title: CVE-2025-43967 - libheif NULL Pointer Dereference
id: 8a4b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects application crashes caused by CVE-2025-43967
author: Valters IT
date: 2025/04/10
logsource:
    category: application
    product: linux
detection:
    selection:
        EventID: 11  # Crash event (e.g., segfault)
        Image: '*libheif*'
    condition: selection
falsepositives:
    - Legitimate crashes due to other bugs
level: low

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-43967 - HEIF File with Invalid Grid Reference"; flow:to_server; file_data; content:"|00 00 00 ?? 66 74 79 70 68 65 69 63|"; content:"|67 72 69 64|"; distance:0; within:100; content:"|00 00 00 00|"; distance:0; within:10; classtype:attempted-dos; sid:1000001; rev:1;)

Remediation & Mitigation

  1. Patch Immediately: Update libheif to version 1.19.6 or later. This is the only complete fix.
  2. Workaround: If patching is not possible, disable HEIF support in applications or use a proxy that validates HEIF files before processing.
  3. User Education: Warn users not to open HEIF files from untrusted sources.
  4. Monitoring: Implement the detection rules above to identify exploitation attempts.
  5. Vendor Communication: If you are a vendor using libheif, update your dependencies and notify users.

Valters IT
Securing Digital Frontiers

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-43967/ · 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.