pynetdicom path traversal allows arbitrary file writes
A path traversal flaw in pydicom's pynetdicom library (CVE-2026-56445) allows unauthenticated attackers to write files to arbitrary paths via malicious DICOM datasets.
Sourcecisa.gov — open the original
What to check
- Applies to
- The 1 CVE named below. Whether you run an affected version is not assessed: check the versions the source lists.
- Exploitation
- No exploitation in the wild and no public exploit is recorded for the CVEs named.
CISA has published an advisory for CVE-2026-56445, a path traversal vulnerability in the pynetdicom library used in healthcare imaging systems. The flaw exists in the qrscp application's C-STORE handler, which fails to sanitize attacker-supplied DICOM dataset instances before using them in os.path.join(), enabling unauthenticated attackers to write files to arbitrary filesystem locations. Versions 1.0.0 through 3.0.4 (exclusive) are affected.
The vulnerability impacts healthcare and public health sector deployments worldwide. The pynetdicom maintainer has not responded to CISA's coordination efforts. Users are advised to consult the project's GitHub repository for updates. CISA has received no reports of active exploitation at this time.
CISA recommends standard ICS security practices including network segmentation, minimizing internet exposure, and implementing defense-in-depth strategies. Organizations should conduct proper impact analysis and risk assessment before deploying defensive measures.
Mentioned in this report
Detection guidance
Suspicious Path Traversal File Write by Python DICOM Process
A behavioural hunt for the technique in general, not a signature for the CVEs this report names.
Detects file creation events containing path traversal sequences written by a Python-based DICOM SCP process (e.g. pynetdicom/qrscp), consistent with exploitation of CVE-2026-56445 arbitrary file write. Auto-generated starting point — validate and tune in your environment before deploying. IOC matches can false-positive on shared infrastructure and decay as adversary infrastructure rotates.
title: Path Traversal File Write by Python DICOM Process
id: c4ab7e63-918a-5d2c-8935-31d48a2c38c2
status: experimental
description: Detects file write events where the target path contains directory traversal
sequences (../ or ..\) and the writing process is a Python interpreter or DICOM
SCP application, indicative of exploitation of the pynetdicom qrscp C-STORE handler
path traversal vulnerability (CVE-2026-56445) allowing arbitrary file writes outside
the intended storage directory.
references:
- CVE-2026-56445
logsource:
category: file_event
product: windows
detection:
selection:
Image|contains:
- python
- qrscp
- pynetdicom
TargetFilename|contains:
- ..\\
- ../
filter:
TargetFilename|contains:
- \\AppData\\Local\\Temp\\pip-
- \\site-packages\\
condition: selection and not filter
falsepositives:
- Python package installers or virtual environment tools writing to relative paths
during legitimate maintenance
- Development or testing of DICOM applications that intentionally traverse directories
in sandboxed environments
level: high
tags:
- attack.t1203
- cve.2026-56445
author: Vorant
DICOM C-STORE Traffic to Unpatched pynetdicom qrscp Service
A behavioural hunt for the technique in general, not a signature for the CVEs this report names.
Flags inbound network connections on standard DICOM ports (104/11112) to hosts running qrscp/pynetdicom, which should be monitored for anomalous C-STORE payloads following disclosure of an unauthenticated path traversal write vulnerability. Auto-generated starting point — validate and tune in your environment before deploying. IOC matches can false-positive on shared infrastructure and decay as adversary infrastructure rotates.
title: Inbound Connection to DICOM Service Port on Potentially Vulnerable Host
id: cc7daf01-85b7-5e7e-89e3-da531fbe09e2
status: experimental
description: Detects inbound network connections to the standard DICOM service ports
(104 or 11112) which are commonly used by pynetdicom-based qrscp applications. Use
this rule to monitor and baseline C-STORE traffic to hosts known to run vulnerable
pynetdicom versions (1.0.0 to below 3.0.4) pending patching, as unauthenticated
senders could exploit CVE-2026-56445 to write arbitrary files via crafted DICOM
dataset instances.
references:
- CVE-2026-56445
logsource:
category: network_connection
product: windows
detection:
selection:
DestinationPort:
- 104
- 11112
Initiated: 'true'
filter:
SourceIp|cidr:
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
condition: selection and not filter
falsepositives:
- Legitimate PACS/modality traffic from known internal imaging systems to the DICOM
SCP
- Scheduled interoperability testing between healthcare application servers
level: low
tags:
- attack.t1189
- cve.2026-56445
author: Vorant
Behavioural rules are generated from public reporting — validate in your environment before deploying.
Source reporting: https://www.cisa.gov/news-events/ics-advisories/icsma-26-176-01
Free public brief. The detections with Splunk SPL already written (plus Elastic and KQL where they apply) are in the app with a free account, no card. Slack alerts on the vendors you run come with the paid plans, and a new account gets three days of them.
What this brief leaves out
This page is the free tier: the write-up, the severity, the names. In the app the same report carries its detections (Splunk SPL already written, plus Elastic and Microsoft KQL where they apply) and live profiles of the CVEs it names. The paid plans add the security research and news reporting the free tier leaves out.
It sits in a corpus of 16,436 reports from 149 sources, 661 of them written in the last seven days, and it grows through the day.
A new account starts with three days of all of it, no card, then keeps the government and CERT reporting free. Slack alerts are a paid-plan feature: name the vendors you run and Slack hears about the reports that touch them, not the rest of the week's. Nothing is charged unless you subscribe.
Create a free account What it costs