Cloudanix VulnDB

CVE-2024-22373

High · 8.1

CVSS

8.1

EPSS

1.7%

Published

Apr 25, 2024

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

A bug in software that reads medical scan files can let a bad file take over the computer that opens it.

Exploitation
Remote Unauthenticated
Attacker needs
None
Complexity
High
Impact
Full Compromise
Component
Library
Class
Buffer Overflow
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

The vulnerability permits an out-of-bounds write during JPEG2000 stream decoding in the DICOM library, resulting in a heap buffer overflow that can corrupt memory and enable arbitrary code execution.

Why it matters to the business

Successful exploitation could allow attackers to compromise systems handling medical imaging data, risking unauthorized access to sensitive patient information, disruption of clinical workflows, and potential regulatory penalties in healthcare settings.

How an attack unfolds

An attacker creates a malformed DICOM file embedding malicious JPEG2000 data that triggers the decoder flaw; when the file is opened or imported by an application using the vulnerable library, the overflow occurs and attacker-controlled code runs in the context of the processing application.

How to fix it

Upgrade the Grassroot DICOM library to the latest patched release that corrects the JPEG2000Codec decoding logic. Where upgrades are delayed, isolate DICOM processing to trusted sources only and apply strict file-type validation before decoding.

How to confirm the fix worked

Reprocess a corpus of known-good and previously crashing DICOM samples under the updated library, confirm absence of crashes or memory errors with address sanitizer tooling, and verify vendor release notes reference resolution of the JPEG2000 out-of-bounds write.

Typical attack path

  1. Craft a specially malformed DICOM file containing malicious JPEG2000 streams
  2. Deliver the file to a target via email, file share, or network transfer
  3. Induce the victim application or automated workflow to process the DICOM file
  4. Trigger the heap overflow during DecodeByStreamsCommon execution
  5. Leverage memory corruption to achieve code execution or denial of service

How to detect it

Review application and system logs for crashes or errors during DICOM import operations, monitor for unexpected child processes spawned by DICOM viewers, and inspect memory dumps from decoder failures for signs of overflow patterns.

What your security team should do

  • Prioritize patching all instances of the affected DICOM library within the next maintenance window
  • Block or sandbox processing of DICOM files from untrusted external sources
  • Add runtime memory protections such as ASLR and heap canaries where feasible
  • Subscribe to vendor and NVD alerts for subsequent Grassroot DICOM updates

The record

An out-of-bounds write vulnerability exists in the JPEG2000Codec::DecodeByStreamsCommon functionality of Mathieu Malaterre Grassroot DICOM 3.0.23. A specially crafted DICOM file can lead to a heap buffer overflow. An attacker can provide a malicious file to trigger this vulnerability.

Affected packages

Ecosystem Package Introduced Fixed
Debian:11 gdcm 0 No fix
Debian:12 gdcm 0 No fix
Debian:13 gdcm 0 3.0.24-1
Debian:14 gdcm 0 3.0.24-1
SUSE:Package Hub 15 SP5 gdcm 0 3.0.24-bp155.2.4.1
SUSE:Package Hub 15 SP6 gdcm 0 3.0.24-bp156.2.4.1
Ubuntu:16.04:LTS gdcm 0 No fix
Ubuntu:18.04:LTS gdcm 0 No fix
Ubuntu:20.04:LTS gdcm 0 No fix
Ubuntu:22.04:LTS gdcm 0 No fix
Ubuntu:24.04:LTS gdcm 0 No fix
Ubuntu:24.10 gdcm 0 3.0.24-3build1
Ubuntu:Pro:14.04:LTS gdcm 0 No fix
Ubuntu:Pro:16.04:LTS gdcm 0 No fix
Ubuntu:Pro:18.04:LTS gdcm 0 No fix
Ubuntu:Pro:20.04:LTS gdcm 0 No fix
openSUSE:Leap 15.5 gdcm 0 3.0.24-bp155.2.4.1
openSUSE:Leap 15.6 gdcm 0 3.0.24-bp156.2.4.1
openSUSE:Leap 16.0 gdcm 0 3.0.24-bp160.2.1
openSUSE:Leap 16.0 orthanc 0 1.12.10-bp160.1.1
openSUSE:Leap 16.0 orthanc-authorization 0 0.10.3-bp160.1.1
openSUSE:Leap 16.0 orthanc-dicomweb 0 1.22-bp160.1.1
openSUSE:Leap 16.0 orthanc-gdcm 0 1.8-bp160.1.1
openSUSE:Leap 16.0 orthanc-indexer 0 1.0-bp160.2.1
openSUSE:Leap 16.0 orthanc-mysql 0 5.2-bp160.2.1
openSUSE:Leap 16.0 orthanc-neuro 0 1.1-bp160.2.1
openSUSE:Leap 16.0 orthanc-postgresql 0 10.0-bp160.1.1
openSUSE:Leap 16.0 orthanc-python 0 7.0-bp160.1.1
openSUSE:Leap 16.0 orthanc-stl 0 1.2-bp160.2.1
openSUSE:Leap 16.0 orthanc-tcia 0 1.3-bp160.1.1
openSUSE:Leap 16.0 orthanc-wsi 0 3.3-bp160.1.1
openSUSE:Leap 16.0 python-pyorthanc 0 1.22.1-bp160.1.1
openSUSE:Tumbleweed orthanc-gdcm 0 1.7-1.1

Related vulnerabilities