DCMTK storescp
OS Command Injection durch Platzhalter-Substitution
Wenn storescp mit --exec-on-reception oder --exec-on-eostudy konfiguriert ist, werden vom Angreifer kontrollierte DICOM-Metadaten in Shell-Befehle eingesetzt. Die vorhandene Bereinigung deckt Pfadtrennzeichen ab, aber keine Shell-Metazeichen, was zu Command Injection führt.
edbb085e aus DCMTK master anwenden.CVECVE-2026-5663Beschreibung
Die Flags --exec-on-reception und --exec-on-eostudy konfigurieren storescp zur Ausführung eines Shell-Befehls beim Empfang eines DICOM-Objekts. Platzhalter-Token im Befehlsstring werden mit Werten aus der eingehenden DICOM-Assoziation ersetzt und an /bin/sh -c übergeben.
Drei Platzhalter-Token akzeptieren vom Angreifer kontrollierte Eingaben: #f (Dateiname, abgeleitet von der SOP Instance UID), #p (Pfad, abgeleitet von der Study Instance UID bei Verwendung von --sort-on-study-uid) und #r (Reverse-DNS-Hostname des Aufrufers).
Die Platzhalter #f und #p werden durch sanitizeFilename() verarbeitet, die Pfadtrennzeichen ersetzt:
ofstd/libsrc/ofstd.cc:3405
void OFStandard::sanitizeFilename(OFString& fname){ const size_t len = fname.length(); for (size_t i = 0; i < len; ++i) { if (fname[i] == PATH_SEPARATOR) fname[i] = '_'; }}Shell-Metazeichen wie Semikolons, Pipes, Backticks und Dollarzeichen werden von dieser Bereinigung nicht erfasst. Der zusammengesetzte Befehl wird anschließend an die Shell übergeben:
dcmnet/apps/storescp.cc:2582
execl("/bin/sh", "/bin/sh", "-c", cmd.c_str(), OFreinterpret_cast(char *, 0));Der Platzhalter #r (Reverse-DNS-Hostname) wird vor der Substitution nicht bereinigt. Ein Angreifer, der den PTR-Record seiner IP-Adresse kontrolliert, kann über den aufgelösten Hostnamen Shell-Metazeichen einschleusen.
Im Februar 2024 erhielten die Platzhalter #a und #c (AE-Title-Token) eine Allowlist-basierte Bereinigung über sanitizeAETitle() (Issue #1109). Die Platzhalter #f, #p und #r waren in dieser Änderung nicht enthalten.
DICOM-UID-Felder haben eine maximale Länge von 64 Zeichen und Leerzeichen werden durch den Parser entfernt. Diese Einschränkungen begrenzen die Payload-Länge, können aber durch Shell-Parameterexpansion umgangen werden.
Hinweis: VulDB führt diese Schwachstelle derzeit mit CVSS 7.3 (C:L/I:L/A:L). Wir sind der Auffassung, dass die Impact-Metriken angesichts der bestätigten Codeausführung C:H/I:H/A:H betragen sollten, und haben VulDB bezüglich der Bewertung kontaktiert.
Auswirkung
- Nicht authentifizierte Remote Code Execution als Prozessbesitzer von storescp über eine einzelne DICOM-C-STORE-Anfrage.
- In PACS-Umgebungen hat storescp typischerweise Lese- und Schreibzugriff auf geschützte Gesundheitsdaten (PHI).
- DCMTK ist in allen großen Linux-Distributionen enthalten. Das Flag
--exec-on-receptionist das dokumentierte Integrationsmuster für PACS-Server, DICOM-Router und klinische Forschungsinfrastruktur.
Abhilfe
Wenden Sie edbb085e aus DCMTK master an, oder aktualisieren Sie auf das nächste stabile Release, sobald verfügbar. Als Abhilfe vermeiden Sie die Verwendung der Platzhalter #f, #p und #r in --exec-on-reception- oder --exec-on-eostudy-Befehlen. Das Flag --disable-host-lookup deaktiviert den #r-Vektor.
Referenzen
So können wir helfen
Wer wir sind
Die Sicherheitsforscher hinter diesem Advisory.

Dr. rer. nat. Simon Weber
Senior Pentester & MedSec-Forscher
Ich evaluiere Ihr SaMD mit derselben branchenprägenden Sicherheitsexpertise, die ich dem BAK MV für die Überarbeitung des B3S-Standards beigetragen habe.
- Promotion über Krankenhaus-Cybersicherheit
- Kritische Schwachstellen in Krankenhaussystemen gefunden
- Alumni der THB MedSec-Forschungsgruppe

Dipl.-Inf. Volker Schönefeld
Senior Application Security Expert
Als ehemaliger CTO und Entwickler, der zum Pentester wurde, arbeite ich mit Ihrem Team zusammen, um Schwachstellen aufzudecken und Lösungen zu finden, die zu Ihrer Architektur passen.
- 20+ Jahre als CTO, 50+ Mio. App-Downloads
- Architektur und Absicherung großer IoT-Flotten
- Certified Web Exploitation Specialist
Penetrationstest gesucht?
Machine Spirits ist spezialisiert auf Sicherheitsbewertungen für Medizinprodukte und Gesundheits-IT. Von MDR-Penetrationstests bis C5-Cloud-Compliance helfen wir MedTech-Unternehmen, regulatorische Anforderungen zu erfüllen.
