Podatność integer overflow w bibliotece Grassroots DICOM (GDCM) przed wersją 2.6.2 pozwala atakującemu na wykonanie dowolnego kodu poprzez spreparowany plik obrazu DICOM. Krytyczny poziom zagrożenia (CVSS 10.0) wynika z możliwości zdalnego wykonania kodu bez uwierzytelnienia i bez interakcji użytkownika.
▸ Pokaż oryginał (EN)
Integer overflow in the ImageRegionReader::ReadIntoBuffer function in MediaStorageAndFileFormat/gdcmImageRegionReader.cxx in Grassroots DICOM (aka GDCM) before 2.6.2 allows attackers to execute arbitrary code via crafted header dimensions in a DICOM image file, which triggers a buffer overflow.
Błąd występuje w funkcji ImageRegionReader::ReadIntoBuffer w pliku MediaStorageAndFileFormat/gdcmImageRegionReader.cxx. Atakujący umieszcza w nagłówku pliku DICOM spreparowane wartości wymiarów obrazu, które powodują przepełnienie liczby całkowitej (integer overflow). Skutkiem przepełnienia jest nieprawidłowe obliczenie rozmiaru bufora, co następnie prowadzi do buffer overflow podczas wczytywania danych obrazu. Umożliwia to nadpisanie pamięci procesu i przejęcie kontroli nad jego wykonaniem.
Atakujący może wykonać dowolny kod w kontekście procesu przetwarzającego plik DICOM, co w praktyce oznacza pełne przejęcie kontroli nad systemem. Zagrożone są poufność, integralność oraz dostępność danych i systemu.
Należy zaktualizować bibliotekę GDCM do wersji 2.6.2 lub nowszej. Poprawka dostępna jest w repozytorium projektu (commit e547b1ded3fd21e0b0ad149f13045aa12d4b9b7c). Należy również weryfikować źródła plików DICOM przetwarzanych przez aplikacje korzystające z biblioteki GDCM.
Grassroots DICOM (GDCM) w wersjach przed 2.6.2, w tym potwierdzone wersje 2.6.0 i 2.6.1
Podatność została opublikowana przez Census Labs w dniu 11 stycznia 2016 r. Szczegóły techniczne oraz proof-of-concept dostępne są w serwisach Packet Storm Security oraz Full Disclosure.
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:HMalaterre Grassroots Dicom
APPMalaterre2.6.1≤ 2.6.0
Powiązane podatności
An out-of-bounds read vulnerability exists in the JPEGBITSCodec::InternalCode functionality of Grassroot DICOM...
An out-of-bounds read vulnerability exists in the RLECodec::DecodeByStreams functionality of Grassroot DICOM 3...
An out-of-bounds read vulnerability exists in the Overlay::GrabOverlayFromPixelData functionality of Grassroot...
An out-of-bounds read vulnerability exists in the JPEGBITSCodec::InternalCode functionality of Grassroot DICOM...
An out-of-bounds write vulnerability exists in the JPEG2000Codec::DecodeByStreamsCommon functionality of Mathi...