pydicom — это чистый пакет Python для работы с файлами DICOM. Версии с 2.0.0-rc.1 по 3.0.1 уязвимы для обхода пути через вредоносно созданный DICOMDIR ReferencedFileID, когда для него установлен путь за пределами корня набора файлов. pydicom разрешает путь только для подтверждения его существования, но не проверяет, что разрешенный путь остается в корне набора файлов. Последующие общедоступные операции FileSet, такие как копирование(), запись() и удаление()+запись(use_existing=True), используют этот непроверенный путь в операциях файлового ввода-вывода.
Это позволяет произвольное чтение/копирование файлов и, в некоторых потоках, перемещение/удаление за пределы корня набора файлов. Эта проблема исправлена в версии 3.0.2.
Показать оригинальное описание (EN)
pydicom is a pure Python package for working with DICOM files. Versions 2.0.0-rc.1 through 3.0.1 are vulnerable to Path Traversal through a maliciously crafted DICOMDIR ReferencedFileID when it is set to a path outside the File-set root. pydicom resolves the path only to confirm that it exists, but does not verify that the resolved path remains under the File-set root. Subsequent public FileSet operations such as copy(), write(), and remove()+write(use_existing=True) use that unchecked path in file I/O operations. This allows arbitrary file read/copy and, in some flows, move/delete outside the File-set root. This issue has been fixed in version 3.0.2.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Pydicom Pydicom
cpe:2.3:a:pydicom:pydicom:*:*:*:*:*:python:*:*
|
2.0.0
|
3.0.2
|