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

CVE-2025-50952

CVE-2025-50952 Null Pointer Dereference in Openjpeg
📅 PUBLISHED: 2025-08-07 00:00 UTC 🔄 UPDATED: 2026-09-24 06:01 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the 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.26%
👁️
0.26% probability
6.5× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
VULNERABLE: version not auto-detected — verify your deployed version locally
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-2025-50952 is a NULL pointer dereference vulnerability discovered in OpenJPEG version 2.5.0, specifically within the /openjp2/dwt.c component. This flaw can be triggered when processing a specially crafted JPEG 2000 image, leading to a denial of service (DoS) condition via application crash. The vulnerability has a CVSS score of 0.0 (pending official assessment), but based on the nature of the bug, it is classified as a low-to-medium severity local or user-assisted DoS. No public proof-of-concept or patch is currently available.

⚡ 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

OpenJPEG is a widely used open-source library for JPEG 2000 image compression. It is integrated into numerous applications, including image viewers, document scanners, and multimedia frameworks. A NULL pointer dereference in the core DWT (Discrete Wavelet Transform) component can be exploited by an attacker to crash any application that processes malicious JPEG 2000 files using the vulnerable library. This poses a supply chain risk, as downstream software may inherit the vulnerability without immediate awareness.

CVSS Breakdown & Threat Level

  • Attack Vector (AV): Local (AV:L) – Requires the victim to open a malicious file.
  • Attack Complexity (AC): Low (AC:L) – No special conditions needed beyond file processing.
  • Privileges Required (PR): None (PR:N) – No authentication needed.
  • User Interaction (UI): Required (UI:R) – Victim must open the crafted file.
  • Scope (S): Unchanged (S:U) – Impact is confined to the vulnerable component.
  • Confidentiality (C): None (C:N) – No data exposure.
  • Integrity (I): None (I:N) – No data modification.
  • Availability (A): High (A:H) – Application crash leads to denial of service.

Threat Level: Low (User interaction required, no remote code execution).

Deep Dive & Mechanics

The vulnerability resides in the opj_dwt_decode_1 function within /openjp2/dwt.c. When processing a JPEG 2000 image with malformed or missing wavelet transform parameters, the function attempts to dereference a pointer that has not been properly initialized, resulting in a NULL pointer dereference.

Root Cause: In dwt.c, the opj_dwt_decode_1 function is called during the inverse discrete wavelet transform. If the image's coding parameters are corrupted (e.g., missing or invalid resolutions or bands data), the function may access a NULL pointer when iterating over wavelet decomposition levels. This leads to a segmentation fault.

Trigger: An attacker crafts a JPEG 2000 file with a malformed COD (Coding style default) marker segment, specifically manipulating the number of decomposition levels or the wavelet filter bank parameters.

Vulnerable vs. Patched Code

Vulnerable Code (OpenJPEG 2.5.0):

// In dwt.c, opj_dwt_decode_1 function
for (i = 0; i < tilec->numresolutions; i++) {
    opj_dwt_level_t *level = &tilec->levels[i]; // Potential NULL if levels not allocated
    // ... use level->bandN etc.
}

Patched Code (Hypothetical fix):

// In dwt.c, opj_dwt_decode_1 function
for (i = 0; i < tilec->numresolutions; i++) {
    if (tilec->levels == NULL) {
        opj_event_msg(..., "Error: levels not initialized");
        return OPJ_FALSE;
    }
    opj_dwt_level_t *level = &tilec->levels[i];
    // ... safe usage
}

The patch adds a NULL check for the levels array before dereferencing.

Exploitation & Lab Setup

Red Team

Lab Setup:

  1. Install OpenJPEG 2.5.0 on a test system (Ubuntu 22.04).
  2. Compile a simple JPEG 2000 decoder using opj_decode.
  3. Craft a malicious JP2 file using a hex editor or fuzzing tool (e.g., AFL++).

Exploitation Steps:

  1. Generate a malformed JP2 file with a corrupted COD marker (e.g., set number of resolutions to 0 or a very high value).
  2. Deliver the file to the victim via email, web download, or USB.
  3. When the victim opens the file with a vulnerable application (e.g., an image viewer using OpenJPEG), the application crashes.

No public exploit code is available.

Blue Team

Detection:

  • Monitor for crashes in applications that use OpenJPEG (e.g., opj_decompress, gimp, imagemagick).
  • Use file integrity monitoring to detect unexpected JP2 files.
  • Deploy endpoint detection and response (EDR) to capture crash dumps.

Mitigation:

  • Block JP2 files at email gateways if not required.
  • Use application whitelisting to prevent untrusted software from processing JP2 files.
  • Implement sandboxing for image processing.

Indicators of Compromise (IOCs)

  • File Hashes: (None available – no known malicious samples)
  • File Patterns: JP2 files with anomalous COD marker segments (e.g., zero or extremely high number of decomposition levels).
  • Behavioral: Application crash logs showing SIGSEGV in opj_dwt_decode_1 or libopenjp2.so.
  • Network: No network indicators (local file-based exploit).

Detection Engineering

YARA Rule

rule CVE_2025_50952_OpenJPEG_NULL_Deref {
    meta:
        description = "Detects malicious JP2 files targeting CVE-2025-50952"
        author = "Valters IT"
        date = "2025-01-01"
        reference = "CVE-2025-50952"
    strings:
        $jp2_magic = { 00 00 00 0C 6A 50 20 20 0D 0A 87 0A }
        $cod_marker = { FF 52 } // COD marker
        $bad_res = { 00 00 } // Zero resolutions (example)
    condition:
        $jp2_magic at 0 and $cod_marker and $bad_res
}

Sigma Rule

title: CVE-2025-50952 OpenJPEG NULL Pointer Dereference
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects crashes in OpenJPEG due to NULL pointer dereference in dwt.c
author: Valters IT
logsource:
    category: application
    product: linux
detection:
    selection:
        EventID: 11  # Crash event (Sysmon)
        Image|endswith: 'opj_decompress'
        Details|contains: 'SIGSEGV'
    condition: selection
falsepositives:
    - Legitimate crashes due to memory corruption
level: medium

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-50952 OpenJPEG JP2 File Transfer"; flow:to_server; fileext:"jp2"; content:"|00 00 00 0C 6A 50 20 20 0D 0A 87 0A|"; distance:0; within:12; classtype:attempted-dos; sid:1000001; rev:1;)

Remediation & Mitigation

  1. Patch: Apply the official patch from OpenJPEG when available. Monitor the OpenJPEG GitHub repository for updates.
  2. Workaround: Disable JPEG 2000 support in applications if not required.
  3. Input Validation: Implement file validation for JP2 files before processing (e.g., check COD marker integrity).
  4. Sandboxing: Run image processing in a sandboxed environment to contain crashes.
  5. Monitoring: Deploy detection rules (YARA, Sigma, Suricata) to identify malicious JP2 files and crashes.

Valters IT
Securing Digital Frontiers

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