Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDeliver crafted RLE DICOM file
-
ExploitVictim app calls getUncompressedFrame()
-
ExecutiondecodeFrame() copies 64 bytes past fragment
-
ImpactRead 63 bytes adjacent heap or crash
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK
1 technique across 1 tactic: Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the victim application to decode RLE Lossless DICOM pixel data via the frame-by-frame path - specifically DcmRLECodecDecoder::decodeFrame(), reached through APIs like DcmPixelData::getUncompressedFrame(). The malicious input must be an RLE Lossless DICOM file whose pixel-data fragment is shorter than the 64-byte RLE header. Key LIMITING factors: the attack is local and needs passive user interaction (a user or automated pipeline must open/process the attacker's file); applications using the sibling decode() path - including the bundled dcmdrle command-line tool - are NOT affected because decode() already performs the length check; and only DCMTK 3.7.0 integrations lacking the commit-45469f3c fix are vulnerable. |
| Impact | This is a genuinely low-to-moderate priority issue, not a high-urgency flaw. The vendor-provided CVSS 4.0 vector (AV:L/AC:L/PR:N/UI:P/VC:L/VI:N/VA:L) describes a local attack vector requiring passive user interaction (a victim application must process an attacker-supplied file), yielding only a low confidentiality impact (up to 63 bytes of adjacent heap) and low availability impact (a crash) - hence the 4.8 base score, which is accurate for the technical impact. There is no public exploit identified at time of analysis and no CISA KEV listing, so no active exploitation is indicated. No EPSS score or SSVC decision data was provided in the input, so exploitation probability and automatability cannot be quantified here. The attack vector is correctly LOCAL rather than network: exploitation hinges on getting a crafted DICOM file into an application that uses the frame-by-frame decode path, not on a remote service. The impact is self-consistent with the description (bounded 63-byte over-read plus potential crash), so there is no conflict between the vector and the narrative. Bottom line: a well-characterized memory-safety bug with a clear patch, worth remediating in medical-imaging software supply chains but not an emergency. |
| Exploit ScenarioDerived | An attacker crafts a malicious RLE Lossless DICOM file whose pixel-data fragment is shorter than the mandatory 64-byte RLE header. A victim runs a medical-imaging application that decodes images frame by frame (e.g., via DcmPixelData::getUncompressedFrame()) and opens the file, causing the decoder to copy 64 bytes from an under-sized buffer. This leaks up to 63 bytes of adjacent heap memory into the decoded output or crashes the application; no public exploit code is identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 08, 2026
A heap-based out-of-bounds read in OFFIS DCMTK 3.7.0's DcmRLECodecDecoder::decodeFrame() allows unauthenticated local attackers to read up to 63 bytes of adjacent heap memory or cause a crash by tricking a victim application into decoding a crafted RLE Lossless DICOM file whose pixel data fragment is shorter than the 64-byte RLE header. Exploitation requires user interaction to open or process the malicious file and only affects applications using the frame-by-frame decoding path (e.g., via DcmPixelData::getUncompressedFrame()); the dcmdrle command-line tool is not affected. The issue is fixed in commit 45469f3c30037e9c7159290e4bb74cd7b3b9ef1d, and no public exploit code has been identified at time of analysis.
RemediationAI
Apply commit 45469f3c30037e9c7159290e4bb74cd7b3b9ef1d or upgrade to a DCMTK release containing this fix once available. Since no tagged release is confirmed, system integrators should monitor the DCMTK project for a patched version. Until then, mitigate by avoiding frame-by-frame RLE decoding of untrusted DICOM files (use the dcmdrle tool or other decode path that performs the length check where feasible). If frame-by-frame decoding is necessary, pre-validate that RLE pixel data fragments are at least 64 bytes before passing them to DCMTK, though this may not be possible in all application architectures. Restrict processing of DICOM files to trusted sources, as exploitation requires user interaction. See vendor advisory at https://support.dcmtk.org/redmine/issues/1213 and the patch commit for details.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
DCMTK is a widely used implementation of the DICOM standard for medical imaging. The DcmRLECodecDecoder class handles RLE Lossless compression, a simple lossless scheme specified by DICOM. The decodeFrame() method processes individual frames and copies a 64-byte RLE header from the input pixel data fragment without first verifying that the fragment length is at least 64 bytes. This missing bounds check (CWE-125: Out-of-bounds Read) causes the function to read up to 63 bytes past the end of the heap buffer allocated for the fragment. The sibling decode() method includes the necessary length check and is therefore not vulnerable; the dcmdrle tool uses decode() and remains safe. The vulnerability affects applications that decompress RLE images frame by frame, such as those calling DcmPixelData::getUncompressedFrame(). The fix in commit 45469f3c adds a check that returns an error (EC_CannotChangeRepresentation) when the fragment length is less than 64 bytes.
Know when Dcmtk gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:L/VI:N/VA:L/SC:N/SI:N/SA:N
Local file-processing vector (AV:L) needs a victim to open a crafted file (UI:R), no privileges (PR:N); impact is a bounded 63-byte heap over-read (C:L) and possible crash (A:L), no integrity effect.
Primary rating from Vendor (securin).
CVSS VectorVendor: securin
DescriptionCVE.org
A heap-based out-of-bounds read in DcmRLECodecDecoder::decodeFrame() in dcmdata/libsrc/dcrleccd.cc of OFFIS DCMTK 3.7.0 allows an attacker to read up to 63 bytes of adjacent heap memory, or cause a crash, via a crafted RLE Lossless DICOM file whose pixel data fragment is shorter than the 64-byte RLE header. The function copies 64 bytes without checking the fragment length, a check that the sibling function decode() already performs. Applications that decode RLE images frame by frame (for example, through DcmPixelData::getUncompressedFrame()) are affected. The dcmdrle command-line tool uses decode() and is not affected. The issue is fixed in commit 45469f3c30037e9c7159290e4bb74cd7b3b9ef1d.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
OFFIS.de DCMTK 3.6.3 and below is affected by: Buffer Overflow. Rated critical severity (CVSS 9.8), this vulnerability i
Stack-based buffer overflow in the parsePresentationContext function in storescp in DICOM dcmtk-3.6.0 and earlier allows
Buffer Overflow vulnerability in DCMTK v.3.6.8 allows an attacker to execute arbitrary code via the EctEnhancedCT method
An incorrect type conversion vulnerability exists in the DVPSSoftcopyVOI_PList::createFromImage functionality of OFFIS D
DCMTK v3.6.7 was discovered to contain a memory leak via the T_ASC_Association object. Rated high severity (CVSS 7.5), t
(1) movescu.cc and (2) storescp.cc in dcmnet/apps/, (3) dcmnet/libsrc/scp.cc, (4) dcmwlm/libsrc/wlmactmg.cc, (5) dcmprsc
OFFIS DCMTK's (All versions prior to 3.6.7) service class user (SCU) is vulnerable to relative path traversal, allowing
OFFIS DCMTK's (All versions prior to 3.6.7) service class provider (SCP) is vulnerable to path traversal, allowing an at
dcmdata in DCMTK before 3.6.9 has a segmentation fault via an invalid DIMSE message. Rated medium severity (CVSS 5.3), t
Heap over-read in DCMTK through 3.7.0 allows unauthenticated remote attackers to crash applications or leak adjacent hea
Deeply nested DICOM sequence (SQ) elements delivered to a DCMTK 3.7.0-based service drive the parser into unbounded recu
dcmnet in DCMTK before 3.6.9 has a segmentation fault via an invalid DIMSE message. Rated medium severity (CVSS 4.3), th
EUVD-2026-94937
GHSA-mmr5-x4mp-rpf4
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB