CVE-2026-44034
ŚrednieCVSS 4.4Streszczenie
W bibliotece OFFIS DCMTK 3.7.0 funkcja DcmRLECodecDecoder::decodeFrame() w pliku dcmdata/libsrc/dcrleccd.cc zawiera błąd odczytu poza granicami bufora na stercie. Przy przetwarzaniu spreparowanego pliku DICOM RLE Lossless, którego fragment danych pikseli jest krótszy niż 64-bajtowy nagłówek RLE, funkcja kopiuje 64 bajty bez sprawdzenia długości fragmentu, co pozwala odczytać do 63 bajtów sąsiedniej pamięci sterty lub spowodować awarię.
Ocena ryzyka
Aplikacje dekodujące obrazy RLE klatka po klatce (np. przez DcmPixelData::getUncompressedFrame()) mogą zostać zmuszone do ujawnienia fragmentów pamięci lub awarii, co stanowi ryzyko wycieku danych i odmowy usługi. Narzędzie dcmdrle korzysta z funkcji decode() i nie jest podatne.
Rekomendacja
Zaktualizuj OFFIS DCMTK do wersji zawierającej poprawkę z commita 45469f3c30037e9c7159290e4bb74cd7b3b9ef1d. Do czasu aktualizacji unikaj dekodowania niezaufanych plików RLE DICOM w aplikacjach korzystających z decodeFrame().
Inne podatności w OFFIS DCMTK
Zobacz wszystkie- CVE-2026-44033Średnie
W bibliotece OFFIS DCMTK 3.7.0 wbudowany parser XML (ofstd/libsrc/ofxml.cc) zawiera niekontrolowaną rekurencję w funkcjach XMLNode::ParseXMLElement() i XMLNode::emptyTheNode(). Spreparowany dokument XML z głęboko zagnieżdżonymi elementami może wyczerpać stos i spowodować awarię procesu.
- CVE-2026-44031Wysokie
Nieograniczona rekurencja w funkcjach DcmSequenceOfItems::read() i DcmItem::read() w bibliotece dcmdata pakietu OFFIS DCMTK 3.7.0 pozwala zdalnemu, nieuwierzytelnionemu atakującemu na spowodowanie odmowy usługi (wyczerpanie stosu i awaria procesu) poprzez wysłanie zestawu danych DICOM zawierającego głęboko zagnieżdżone sekwencje (elementy SQ). Zestaw danych może być wysłany w żądaniu C-STORE do storescp, dcmrecv, dcmqrscp lub innej usługi DICOM opartej na DCMTK, ponieważ odebrany zestaw jest analizowany przed jakąkolwiek autoryzacją. Lokalne narzędzia, takie jak dcmdump, również ulegają awarii przy otwieraniu takiego pliku. Problem został naprawiony w commicie 885ff0f10372bd589b5f44cea974f28a3964cb0f, który dodaje konfigurowalny limit głębokości zagnieżdżenia sekwencji (domyślnie 64).
Oryginalny opis (angielski, źródło NVD)
A heap-based out-of-bounds read in DcmRLECodecDecoder::decodeFrame() in dcmdata/libsrc/dcrleccd.cc of OFFIS DCMTK 3.7.0 allows an attacker to read up to 63 bytes of adjacent heap memory, or cause a crash, via a crafted RLE Lossless DICOM file whose pixel data fragment is shorter than the 64-byte RLE header. The function copies 64 bytes without checking the fragment length, a check that the sibling function decode() already performs. Applications that decode RLE images frame by frame (for example, through DcmPixelData::getUncompressedFrame()) are affected. The dcmdrle command-line tool uses decode() and is not affected. The issue is fixed in commit 45469f3c30037e9c7159290e4bb74cd7b3b9ef1d.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

