VORANT. Threat Intelligence Research Create a free account

pynetdicom path traversal allows arbitrary file writes

Published Vorant ratingroutine vulnerability Healthcare

Vorant's rating weighs the evidence in the report: confirmed exploitation, victims claimed, CVSS and EPSS, and how many sources agree. It rates the report, not your assets.

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

Vulnerabilities CVE-2026-56445

Detection guidance

Suspicious Path Traversal File Write by Python DICOM Process

ATT&CK T1203 · status experimental · needs windows file_event logs · generated from the report, not run against telemetry

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

ATT&CK T1189 · status experimental · needs windows network_connection logs · generated from the report, not run against telemetry

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