CVE-2026-55676
WysokieCVSS 8.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 47 - wyżej niż 47% wszystkich znanych CVE
Streszczenie
Malcolm, narzędzie do analizy ruchu sieciowego, zawiera podatność w komponencie przesyłania plików (FilePond PHP backend). Lista dozwolonych typów plików jest domyślnie pusta, więc akceptowane są wszystkie rozszerzenia, a nazwy plików zachowują rozszerzenie .php. Uwierzytelniony użytkownik z rolą ROLE_UPLOAD może przesłać plik PHP i wykonać go jako www-data.
Ocena ryzyka
Atakujący z uprawnieniami tylko do przesyłania plików może wykonać dowolny kod PHP w kontenerze, co może prowadzić do pełnego przejęcia systemu lub eskalacji uprawnień.
Rekomendacja
Zaktualizuj Malcolma do wersji 26.06.1 lub nowszej, która naprawia tę podatność. Dodatkowo skonfiguruj listę dozwolonych typów plików i ogranicz dostęp do punktu przesyłania.
Inne podatności w Malcolm
Zobacz wszystkie- CVE-2026-107361Średnie
Usługa Arkime live capture (arkime-live) w Malcolm działa z network_mode: host, wystawiając port 8005 na wszystkich interfejsach sieciowych (viewHost=0.0.0.0). Arkime ufa nagłówkowi X-Forwarded-User z dowolnego adresu IP (userAuthIps=::,0.0.0.0/0) i automatycznie tworzy użytkowników z pełnym dostępem. passwordSecret jest zaszyty na stałe do publicznej wartości "Malcolm". Atakujący w sieci może ominąć nginx całkowicie, łącząc się bezpośrednio z portem 8005 z podrobionym nagłówkiem tożsamości.
- CVE-2026-107336Średnie
Frontowy reverse proxy nginx w Malcolm definiuje lokalizację "Dashboards → Arkime shortcut" używając matchera regex bez rozróżniania wielkości liter, ale przepisania (rewrite) z rozróżnianiem wielkości liter. Żądanie, którego segment ścieżki nie jest dokładnie małymi literami (np. /IDDASH2ARK/...) wchodzi do lokalizacji (matcher działa), ale omija przepisanie (brak przekierowania), więc nginx przechodzi do proxy_pass lokalizacji do backendu Arkime. Ta lokalizacja jest jedyną proxowaną lokalizacją w dostarczonej konfiguracji, która nie zawiera pliku uwierzytelniania per lokalizacja, więc żądanie dociera do Arkime bez uwierzytelnienia. Ta sama lokalizacja przekazuje również nagłówek X-Forwarded-User dostarczony przez klienta bez nadpisania, a Arkime jest skonfigurowany, aby ufać X-Forwarded-User jako nazwie uwierzytelnionego użytkownika — więc nieuwierzytelniony wywołujący z sieci może dotrzeć do backendu Arkime, podając podrobioną, automatycznie utworzoną tożsamość.
- CVE-2026-107335Średnie
Potok przetwarzania uploadów w Malcolm (scripts/safe-extract.py) egzekwuje limity liczby wpisów, głębokości zagnieżdżenia i całkowitego rozmiaru nieskompresowanego podczas rozpakowywania archiwów kontenerowych (zip/tar/rar/7z przez libarchive), ale te limity nie są stosowane, gdy przesłany plik jest pojedynczym strumieniem skompresowanym (.gz, .bz2, .xz, .lzma, .lz), który nie jest archiwum .tar.*. Każdy uwierzytelniony użytkownik uprawniony do przesyłania plików PCAP/log może przesłać mały, wysoko kompresowalny plik (np. bombę gzip), który dekompresuje się do praktycznie nieograniczonego rozmiaru na dysku, wyczerpując współdzielony wolumen Docker używany przez OpenSearch, Logstash, Arkime i Zeek, i zakłócając platformę dla wszystkich użytkowników.
- CVE-2026-107334Średnie
Warstwa kontroli dostępu oparta na rolach (RBAC) nginx Lua w Malcolm decyduje, czy uwierzytelniony użytkownik może uzyskać dostęp do ścieżki ograniczonej rolą (np. /htadmin, /auth, /admin_login, /arkime/api/esadmin, NetBox, punkty uploadu) przez dopasowanie wzorca do surowego, percent-encoded URI żądania. Sam nginx wybiera jednak, która lokalizacja faktycznie obsługuje żądanie, używając zdekodowanego, znormalizowanego URI. Ponieważ kontrola RBAC nigdy nie dekoduje percent-encoding, uwierzytelniony użytkownik z niskimi uprawnieniami może zażądać ścieżki admin-only używając percent-encoding (np. /%68tadmin.php) i nginx przekieruje go do ograniczonej lokalizacji, podczas gdy brama Lua RBAC oceniająca nieodkodowany surowy string nie znajdzie żadnego ograniczenia i przyzna dostęp.
- CVE-2026-19671Średnie
Malcolm's upload-processing pipeline (scripts/safe-extract.py) egzekwuje limity liczby wpisów, głębokości zagnieżdżenia i całkowitego rozmiaru przy rozpakowywaniu archiwów kontenerowych (zip/tar/rar/7z), ale nie stosuje tych limitów do pojedynczych strumieni skompresowanych (.gz, .bz2, .xz, .lzma, .lz). Uwierzytelniony użytkownik może przesłać mały, wysoko skompresowany plik (np. bombę gzip), który dekompresuje się do nieograniczonego rozmiaru, wyczerpując współdzielony wolumin Docker i zakłócając działanie platformy.
- CVE-2026-19670Średnie
Malcolm's nginx Lua warstwa kontroli dostępu oparta na rolach (RBAC) decyduje o dostępie do ścieżek ograniczonych rolą, dopasowując wzorce do surowego, percent-encoded URI. Nginx jednak wybiera blok location na podstawie zdekodowanego, znormalizowanego URI. Ponieważ kontrola RBAC nie dekoduje percent-encoding, uwierzytelniony użytkownik z niskimi uprawnieniami może uzyskać dostęp do ścieżek administracyjnych, używając percent-encoded URI, omijając ograniczenia.
- CVE-2026-63177Wysokie
Malcolm to zestaw narzędzi do analizy ruchu sieciowego. Przed wersją 26.07.0 kontrola dostępu oparta na rolach w warstwie Nginx OpenResty Lua ocenia surowy, nieznormalizowany `ngx.var.request_uri`, podczas gdy sam Nginx kieruje żądania przy użyciu znormalizowanej ścieżki. Uwierzytelniony użytkownik o niskich uprawnieniach może dodać segment traversal (na przykład `/x/../upload/...`), tak że Nginx kieruje żądanie do ograniczonego backendu, podczas gdy kontrola roli Lua nie dopasowuje żadnej reguły i otwiera się, przyznając dostęp, który powinien być zabroniony. Wersja 26.07.0 naprawia ten problem.
- CVE-2026-63134Średnie
Malcolm to zestaw narzędzi do analizy ruchu sieciowego. Przed wersją 26.07.0, `safe-extract.py` chroni ekstrakcję plików flagami bezpieczeństwa libarchive, ale tworzy wpisy katalogów za pomocą surowego `os.makedirs(os.path.join(dest, entry.pathname))`, które nie ma ochrony przed traversal. Złośliwe archiwum zawierające wpis katalogu z sekwencją `../` lub ścieżką bezwzględną powoduje, że kontener przetwarzania filebeat tworzy katalogi poza zamierzonym katalogiem ekstrakcji. Wersja 26.07.0 naprawia problem.
- CVE-2026-63133Średnie
Malcolm to zestaw narzędzi do analizy ruchu sieciowego. Przed wersją 26.07.0, `safe-extract.py` wyodrębnia przesłane archiwa bez limitu liczby wpisów, głębokości katalogów, całkowitej liczby wpisów lub rozmiaru wyjścia. Małe złośliwe archiwum zawierające dużą liczbę wpisów katalogów lub plików powoduje, że kontener przetwarzania filebeat tworzy nieograniczoną liczbę obiektów systemu plików, wyczerpując inody lub metadane systemu plików i powodując odmowę usługi dla potoku przetwarzania i wszelkich usług współdzielących ten sam montaż. Wersja 26.07.0 naprawia problem.
Oryginalny opis (angielski, źródło NVD)
Malcolm is a network traffic analysis tool suite. The file-upload component (FilePond PHP backend) accepts uploads at `POST /server/php/submit.php` and stores them in a directory served by the same nginx and php-fpm instance. The allow-list that should restrict accepted file types is an empty array by default (`file-upload/php/config.php:16`), so the type check is a no-op and every extension is accepted. The filename sanitizer keeps the `.php` extension intact. Committed files land in `/var/www/upload/server/php/files` (`file-upload/php/config.php:7`), and the component's nginx routes any URL ending in `.php` to php-fpm. An authenticated `GET /server/php/files/<name>.php` then executes the uploaded code as `www-data`. Prior to version 26.06.1, in RBAC mode, the upload endpoint is reachable by the granular `ROLE_UPLOAD` role (`nginx/lua/nginx_auth_helpers.lua:71`), a role intended only for submitting capture files. As a result, a user holding the upload-only role runs arbitrary PHP as `www-data` inside the file-upload container. Version 26.06.1 fixes the issue.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

