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

CVE-2025-8836

CVE-2025-8836 Denial of Service in Jasper
📅 PUBLISHED: 2025-08-11 07:32 UTC 🔄 UPDATED: 2026-09-23 20:34 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.21%
👁️
0.21% probability
5.1× 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
4.8
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-8836 is a low-severity denial-of-service vulnerability in the JasPer library (up to version 4.2.5), specifically within the JPEG 2000 encoder component. The flaw resides in the jpc_floorlog2 function in src/libjasper/jpc/jpc_enc.c, where a reachable assertion can be triggered by a local attacker. This leads to an application crash, impacting availability. The vulnerability requires local access and user interaction, making it a low-risk but exploitable issue for denial-of-service scenarios. A patch is available and recommended.

⚡ 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

CVSS Breakdown & Threat Level

  • CVSS Score: 3.3 (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 – The attacker must have local access to the system.
  • Attack Complexity (AC): Low – No special conditions are required.
  • Privileges Required (PR): None – No authentication needed.
  • User Interaction (UI): Required – The victim must run the vulnerable encoder on a crafted input.
  • Scope (S): Unchanged – The exploit cannot affect other components.
  • Confidentiality (C): None – No data exposure.
  • Integrity (I): None – No data modification.
  • Availability (A): Low – The application crashes, causing a denial of service.

Threat Level: Low. The requirement for local access and user interaction significantly reduces the attack surface. The primary risk is a local denial of service.

Deep Dive & Mechanics

The vulnerability is a reachable assertion in the jpc_floorlog2 function within the JasPer JPEG 2000 encoder. The function is used to compute the floor of the base-2 logarithm of an integer. When the encoder processes a crafted or malformed input, it can pass an invalid argument (e.g., zero or a negative value) to jpc_floorlog2, which triggers an assertion failure. Assertions are debugging checks that, when enabled, cause the program to abort if a condition is false. In this case, the assertion assert(x > 0) is reachable with a zero or negative input, leading to a crash.

The vulnerable code path is in jpc_enc.c during the encoding process. The function jpc_floorlog2 is called with a value derived from the input image parameters. A specially crafted JPEG 2000 file or image parameters can cause this value to be zero or negative, bypassing the intended validation and hitting the assertion.

Vulnerable vs. Patched Code

Vulnerable Code (JasPer <= 4.2.5):

// src/libjasper/jpc/jpc_enc.c
static int jpc_floorlog2(int x) {
    assert(x > 0);  // Reachable assertion
    int y = 0;
    while (x > 1) {
        x >>= 1;
        y++;
    }
    return y;
}

Patched Code (after commit 79185d32d7a444abae441935b20ae4676b3513d4):

// src/libjasper/jpc/jpc_enc.c
static int jpc_floorlog2(int x) {
    if (x <= 0) {
        return 0;  // Graceful handling instead of assertion
    }
    int y = 0;
    while (x > 1) {
        x >>= 1;
        y++;
    }
    return y;
}

The patch replaces the assertion with a conditional check that returns 0 for invalid inputs, preventing the crash.

Exploitation & Lab Setup

Red Team (Attack Simulation)

Prerequisites:

  • Local access to a system running an application that uses JasPer (e.g., image processing tools).
  • Ability to provide a crafted JPEG 2000 file or parameters to the encoder.

Exploit Steps:

  1. Create a malicious JPEG 2000 file that triggers the assertion. This can be done by crafting an image with specific parameters (e.g., zero dimensions or invalid quantization values) that cause jpc_floorlog2 to receive a zero or negative argument.
  2. Deliver the file to the victim via social engineering (e.g., email attachment, USB drive).
  3. When the victim opens the file with a vulnerable application (e.g., an image viewer that uses JasPer for encoding), the application crashes.

Example Crafted Input (Conceptual):

# Using a hex editor or script to create a malformed JP2 file
# The exact bytes depend on the JasPer version and input parsing
# This is a simplified example to illustrate the concept
echo -n -e '\x00\x00\x00\x0c\x6a\x50\x20\x20\x0d\x0a\x87\x0a' > malicious.jp2
# Then open with a vulnerable application
./vulnerable_app malicious.jp2

Blue Team (Defense & Detection)

Detection:

  • Monitor for application crashes (segfaults, assertion failures) in image processing tools.
  • Use file integrity monitoring to detect unexpected modifications to image files.
  • Implement application whitelisting to prevent execution of untrusted binaries.

Prevention:

  • Apply the patch immediately (commit 79185d32d7a444abae441935b20ae4676b3513d4).
  • Use input validation and sanitization for all image files before processing.
  • Run image processing in a sandboxed environment with limited privileges.

Indicators of Compromise (IOCs)

  • File Hashes (Example): (No specific exploit hashes available; generic indicators below)
    • Malicious JP2 file with zero or negative dimensions.
  • Process Behavior:
    • Application crash with assertion failure in jpc_floorlog2.
    • Core dump files containing the string jpc_floorlog2.
  • Network: None (local vulnerability).
  • Logs:
    • Application logs showing assertion "x > 0" failed in jpc_enc.c.
    • System logs (e.g., /var/log/syslog) with segfault or abort signals.

Detection Engineering

YARA Rule

rule CVE_2025_8836_JasPer_Assertion {
    meta:
        description = "Detects malicious JP2 files targeting CVE-2025-8836"
        author = "Valters IT"
        date = "2025-01-01"
        reference = "CVE-2025-8836"
    strings:
        $jpc_header = { 00 00 00 0C 6A 50 20 20 0D 0A 87 0A }  // JP2 file signature
        $assertion_str = "jpc_floorlog2" nocase
    condition:
        $jpc_header and $assertion_str
}

Sigma Rule

title: CVE-2025-8836 JasPer Assertion Failure
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects assertion failures in JasPer library indicating exploitation attempt
author: Valters IT
date: 2025-01-01
logsource:
    product: linux
    service: syslog
detection:
    selection:
        - "assertion \"x > 0\" failed"
        - "jpc_floorlog2"
    condition: selection
falsepositives:
    - Legitimate software bugs
level: medium

Suricata Rule

alert tcp any any -> any any (msg:"CVE-2025-8836 JasPer JP2 File Transfer"; flow:to_client; fileext:"jp2"; content:"|00 00 00 0C 6A 50 20 20 0D 0A 87 0A|"; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Patch: Apply the official patch from the JasPer repository (commit 79185d32d7a444abae441935b20ae4676b3513d4) or upgrade to a version newer than 4.2.5.
  2. Workaround: If patching is not immediately possible, disable the JPEG 2000 encoder functionality or restrict access to the vulnerable application.

Long-Term Measures:

  • Implement robust input validation for all image processing libraries.
  • Use static analysis tools to detect assertion-based vulnerabilities.
  • Regularly update all dependencies, especially image processing libraries.

Valters IT Signature This report was generated by Valters IT DevSecOps AI. For questions, contact security@valters-it.com.

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