Pandora CVE-2026-74764 i 74767: archiwum ucieka z katalogu i pamięci
TAR path traversal pozwala nadpisywać pliki, a DAA decompression bomb wyczerpuje zasoby analizatora. Wyjaśniamy poprawki w Pandora 1.12.6.
- AUTOR
- Karol Rapacz / CEO Breachroad · OSCP · PNPT
- PUBLIKACJA
- 15 sierpnia 2026
- CZAS CZYTANIA
- 15 min czytania
- TEMAT
- Chmura, infrastruktura i DevSecOps
15 sierpnia 2026 roku opublikowano CVE-2026-74764 i CVE-2026-74767 w platformie Pandora do analizy plików. Pierwsza podatność pozwala złośliwemu archiwum TAR zapisać pliki poza katalogiem ekstrakcji. Druga wykorzystuje format DAA, aby mały skompresowany plik rozrósł się w pamięci do ogromnego obrazu ISO. Razem pokazują dwie granice, które musi egzekwować każda usługa przyjmująca niezaufane pliki: gdzie wolno zapisywać i ile wolno zużyć.
Advisory path traversal ma ocenę 10,0 w CVSS 4.0, a advisory decompression bomb 8,7. Poprawki trafiły do commitów projektu 15 sierpnia, a gotowa wersja Pandora 1.12.6 została opublikowana 17 sierpnia. Dotknięte są wcześniejsze wydania.
Dlaczego analizator plików jest atrakcyjnym celem
Pandora przyjmuje dokument lub archiwum po to, aby automatycznie je rozpakować, zidentyfikować format i uruchomić zestaw workerów. Funkcja bezpieczeństwa celowo dotyka najbardziej niebezpiecznej części wejścia. Plik może pochodzić z poczty, zgłoszenia użytkownika, procesu SOC albo integracji, więc często nie wymaga zaufanego nadawcy.
Operator może zakładać, że ryzyko zostanie zamknięte w katalogu zadania. To założenie działa tylko wtedy, gdy każdy ekstraktor normalizuje ścieżki, odrzuca linki i respektuje limity. Jeden format obsłużony innym kodem może ominąć wspólną politykę. CVE dotyczą właśnie takich rozbieżności.
Skutek zależy również od uprawnień workera. Jeżeli proces widzi konfigurację, klucze usług, socket kontenera, katalog aplikacji lub współdzielony wolumen, wyjście poza katalog analizy staje się drogą do przejęcia usługi. Jeżeli wiele zadań działa w tym samym procesie, decompression bomb uderza także w innych użytkowników.
CVE-2026-74764: nazwa pliku staje się ścieżką hosta
Archiwum TAR zapisuje dla każdego elementu nazwę ścieżki. Może ona zawierać sekwencje ../, ścieżkę absolutną albo link wskazujący poza katalog docelowy. Bezpieczny ekstraktor musi sprawdzić ostateczną, znormalizowaną lokalizację każdego obiektu, a nie tylko skleić dest_dir z nazwą.
Podatny kod Pandora wywoływał Pythonowe tarfile.TarFile.extract bez filtra ekstrakcji. Złośliwy element mógł więc opuścić przeznaczony katalog. Potencjalny efekt obejmuje nadpisanie plików dostępnych dla procesu, modyfikację konfiguracji, denial of service, a w odpowiednim układzie również wykonanie kodu po ponownym uruchomieniu lub załadowaniu zmienionego pliku.
Poprawka jest niewielka, ale semantycznie ważna: wywołanie używa filter=‘data’. Filtr w Python tarfile odrzuca albo neutralizuje niebezpieczne elementy, w tym ścieżki uciekające z katalogu i niebezpieczne cele linków. To lepsze niż ręczne wyszukiwanie ciągu ../, które można obejść ścieżkami absolutnymi, linkami i różnicami platformy.
Nie należy interpretować oceny 10,0 jako dowodu, że każda instancja natychmiast daje powłokę. Advisory opisuje maksymalny wpływ przy zdalnym, anonimowym przesłaniu archiwum i korzystnym celu zapisu. Realny blast radius zależy od ekspozycji uploadu, praw procesu i zawartości otoczenia. Mimo to sama możliwość zapisu poza sandboxem jest krytycznym naruszeniem granicy.
CVE-2026-74767: kontrolowany rozmiar wejścia, niekontrolowany wynik
DAA, czyli Direct Access Archive, może przechowywać skompresowane fragmenty obrazu dysku. Pandora używała zlib.decompress bez limitu wyjścia, a rozpakowane fragmenty gromadziła w celu zbudowania wewnętrznego ISO. Niewielki plik o wysokim współczynniku kompresji mógł więc wymusić ogromną alokację pamięci i koszt CPU.
Limit rozmiaru uploadu nie rozwiązuje tego problemu. Bramka widzi kilka megabajtów, podczas gdy worker może wygenerować gigabajty danych. Bezpieczeństwo musi mierzyć rozmiar po dekompresji, sumę wszystkich fragmentów i czas pracy. To samo dotyczy ZIP, 7z, obrazów, PDF-ów z osadzonymi obiektami oraz rekurencyjnych archiwów.
Poprawka przechodzi na decompressobj().decompress z parametrem max_extracted_filesize, kontroluje skumulowany rozmiar i zgłasza dedykowany wyjątek ZipBomb po przekroczeniu granicy. Zadanie zostaje przerwane jako zbyt duże, zamiast kontynuować do utraty pamięci.
Ocena 8,7 odzwierciedla wysoki wpływ na dostępność bez bezpośredniej utraty poufności czy integralności. W środowisku wielodostępnym dostępność workera jest jednak wspólnym zasobem. Powtarzane zgłoszenia mogą wyczerpać pulę procesów, kolejkę, RAM hosta i budżet autoscalingu.
Co powinien zrobić operator Pandora
Zaktualizuj do Pandora 1.12.6 lub nowszej. Potwierdź wersję aplikacji i obrazu kontenera, nie tylko tag w konfiguracji IaC. Jeśli obraz jest cache’owany w prywatnym rejestrze, sprawdź digest. Po wdrożeniu przetestuj, że normalne archiwa TAR i DAA nadal są analizowane, a pliki przekraczające limity kończą się kontrolowanym statusem.
Do czasu aktualizacji ogranicz upload do zaufanych źródeł, wyłącz niepotrzebne formaty albo skieruj ekstrakcję do jednorazowych workerów. Sam filtr rozszerzenia nie wystarcza, ponieważ format może być wykrywany po zawartości, a nazwę i MIME można sfałszować. Jeżeli możesz bezpiecznie zastosować poprawki projektowe, wymagane są oba commity: filtr TAR i ograniczona dekompresja DAA.
Uruchamiaj workery jako nieuprzywilejowany użytkownik, z systemem plików tylko do odczytu poza katalogami roboczymi. Sekrety powinny być dostarczane w minimalnym zakresie, bez montowania socketu Docker i bez dostępu do katalogu kodu. Ustaw limity pamięci, CPU, czasu, liczby procesów i rozmiaru efemerycznego dysku.
Oddziel worker analizujący od API oraz kolejki. Awaria jednego zadania nie powinna zabierać panelu, uwierzytelnienia ani innych analiz. Jednorazowy kontener lub microVM z usuwanym wolumenem daje silniejszą granicę niż wspólny katalog i długowieczny proces Pythona.
Jak sprawdzić wcześniejsze wykorzystanie
Dla TAR przejrzyj logi przesłanych plików, nazwy elementów archiwów i zmiany na systemie plików w czasie analizy. Szukaj ścieżek absolutnych, sekwencji traversal, nietypowych linków symbolicznych oraz modyfikacji poza katalogami zadań. Porównaj pliki aplikacji i konfiguracji z zaufanym obrazem lub manifestem.
Dla DAA koreluj zadania z nagłym wzrostem RSS, czasem CPU, OOMKilled, restartami workera i wzrostem kolejki. Mały upload poprzedzający duże zużycie pamięci jest charakterystyczny, ale nie unikalny. Zachowaj hash próbki i metadane bez ponownego otwierania jej poza izolowanym procesem.
Jeżeli worker mógł nadpisać plik wykonywany lub konfiguracyjny, aktualizacja nie wystarcza. Odbuduj kontener z zaufanego obrazu, usuń wolumen roboczy, zweryfikuj trwałe dane i rotuj sekrety dostępne procesowi. W środowisku bare metal porównaj pakiety, jednostki systemd, cron i klucze z referencyjnym stanem.
Architektura bezpiecznego pipeline’u plików
Pierwsza zasada to nieuwierzenie parserowi. Format pliku nie jest biernym blobem; to program dla ekstraktora. Nazwy, rozmiary, liczba elementów, głębokość zagnieżdżenia i relacje między linkami są wejściem sterującym.
Druga zasada to limit po każdej transformacji. Sprawdzaj rozmiar uploadu, rozmiar zadeklarowany, faktycznie rozpakowane bajty, sumę wszystkich elementów, głębokość rekursji i czas. Limit powinien być egzekwowany strumieniowo, zanim dane trafią w całości do pamięci lub na dysk.
Trzecia zasada to weryfikacja miejsca docelowego. Ostateczna ścieżka po resolve musi pozostać pod dozwolonym katalogiem. Linki, urządzenia specjalne i inne nietypowe typy elementów należy odrzucać, jeżeli nie są niezbędne. Biblioteczny bezpieczny filtr jest zwykle lepszy od własnej listy znaków.
Czwarta zasada to założenie kompromitacji workera. Brak egressu, minimalne uprawnienia, read-only root filesystem i jednorazowe środowisko ograniczają skutek nowego błędu parsera. Monitoring powinien mierzyć koszt na zadanie, aby jeden plik nie ukrył się w metrykach całego hosta.
Fakty i wnioski Breachroad
Faktem jest, że CVE-2026-74764 umożliwia zapis poza katalogiem przez TAR i ma ocenę 10,0, a CVE-2026-74767 pozwala na nieograniczoną dekompresję DAA i ma ocenę 8,7. Poprawki trafiły do kodu 15 sierpnia i wydania 1.12.6. Advisory nie potwierdzają masowej eksploatacji.
Wnioskiem Breachroad jest to, że narzędzie do analizy złośliwych plików samo musi być traktowane jak strefa najwyższego ryzyka. Bezpieczna biblioteka ekstrakcji jest konieczna, lecz trwałą ochronę daje dopiero izolacja, limity per zadanie i brak wartościowych sekretów w workerze.
Jeżeli chcesz ocenić izolację kontenerów, pipeline uploadu i limity zasobów, zobacz audyt bezpieczeństwa chmury. Zespołom SOC, DevSecOps i platformowym polecamy też szkolenia cyberbezpieczeństwa dla organizacji o bezpiecznej analizie niezaufanych danych.


