CVE-2024-31744

7.5 HIGH

📋 TL;DR

This vulnerability in Jasper 4.2.2 allows attackers to cause a denial of service (DoS) by triggering an assertion failure in the jpc_streamlist_remove function when processing a specially crafted image file. The vulnerability affects systems using Jasper for JPEG 2000 image processing, potentially impacting applications that handle untrusted image uploads.

💻 Affected Systems

Products:
  • Jasper JPEG 2000 library
Versions: Version 4.2.2 specifically (and potentially earlier versions with similar code)
Operating Systems: All operating systems where Jasper is installed
Default Config Vulnerable: ⚠️ Yes
Notes: Any application using Jasper library to process JPEG 2000 images is affected. The vulnerability is in the core library code.

⚠️ 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 service disruption through application crash, potentially affecting availability of image processing services or applications that rely on Jasper library.

🟠

Likely Case

Denial of service through application crash when processing malicious image files, requiring service restart.

🟢

If Mitigated

Minimal impact if proper input validation and sandboxing are implemented, with crashes contained to isolated processes.

🌐 Internet-Facing: MEDIUM - Applications accepting image uploads from untrusted sources are vulnerable, but exploitation requires specific image file delivery.
🏢 Internal Only: LOW - Internal systems typically process trusted images, reducing attack surface.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW - Requires only a crafted image file to trigger the assertion.

Exploitation is straightforward - simply providing a malicious JPEG 2000 image file to the vulnerable function triggers the crash.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Fixed in commit 6d084c53a77762f41bb5310713a5f1872fef55f5 and later versions

Vendor Advisory: https://github.com/jasper-software/jasper/commit/6d084c53a77762f41bb5310713a5f1872fef55f5

Restart Required: Yes

Instructions:

1. Update Jasper to version containing commit 6d084c53a77762f41bb5310713a5f1872fef55f5 or later. 2. Rebuild any applications using Jasper library. 3. Restart affected services.

🔧 Temporary Workarounds

Input validation and filtering

all

Implement strict validation of JPEG 2000 image files before processing with Jasper library

Process isolation

all

Run Jasper image processing in isolated containers or processes to contain crashes

🧯 If You Can't Patch

  • Implement strict file type validation to reject untrusted JPEG 2000 images
  • Deploy application monitoring to detect and restart crashed Jasper processes

🔍 How to Verify

Check if Vulnerable:

Check Jasper version: `jasper --version` should show if version is 4.2.2 or earlier with vulnerable code

Check Version:

jasper --version

Verify Fix Applied:

Verify Jasper version includes commit 6d084c53a77762f41bb5310713a5f1872fef55f5 or test with known malicious JPEG 2000 image

📡 Detection & Monitoring

Log Indicators:

  • Application crashes with assertion failures in jpc_dec.c
  • Segmentation faults in Jasper processes
  • Unexpected process terminations during image processing

Network Indicators:

  • Multiple failed image upload attempts
  • Unusual JPEG 2000 file uploads to image processing endpoints

SIEM Query:

process_name:"jasper" AND (event_type:"crash" OR exit_code:139 OR signal:SIGABRT)

🔗 References

📤 Share & Export