CVE-2026-55189
WysokieCVSS 7.7Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 10 - wyżej niż 10% wszystkich znanych CVE
Streszczenie
W RustFS od wersji 1.0.0-alpha.1 do 1.0.0-beta.9, gdy włączony jest frontend FTP, operacje odczytu i sprawdzania (RETR, SIZE, MDTM, CWD) omijają funkcję autoryzacji IAM, co pozwala każdemu uwierzytelnionemu użytkownikowi FTP na odczyt i sprawdzanie dowolnych obiektów w dowolnym zasobniku, niezależnie od polityk IAM.
Ocena ryzyka
Organizacja narażona jest na nieautoryzowany dostęp do wszystkich danych przechowywanych w systemie RustFS przez każdego użytkownika FTP, nawet jeśli jego polityka IAM wyraźnie zabrania odczytu (s3:GetObject). Może to prowadzić do wycieku poufnych informacji.
Rekomendacja
Należy natychmiast zaktualizować RustFS do wersji 1.0.0-beta.9 lub nowszej. Jeśli aktualizacja nie jest możliwa, należy tymczasowo wyłączyć frontend FTP.
Inne podatności w RustFS
Zobacz wszystkie- CVE-2026-73290Średnie
W RustFS przed wersją 1.0.0-beta.12 anonimowe żądanie ListObjectVersions bez bezpośredniego zezwolenia polityki bucketu przechodzi do sprawdzenia s3:ListBucket i zwraca wynik przed zastosowaniem kontroli deny_anonymous_table_data_plane_if_needed oraz RestrictPublicBuckets. Umożliwia to ujawnianie wersji obiektów w bucketach z anonimowym listowaniem, nawet gdy operator włączył kontrolę dostępu publicznego.
- CVE-2026-73289Wysokie
RustFS przed wersją 1.0.0-beta.12 zawiera błędną ocenę kwalifikatorów ForAllValues: i ForAnyValue: z negowanymi operatorami string, co może prowadzić do przyznania dostępu wykluczonemu podmiotowi lub nieskuteczności reguł Deny.
- CVE-2026-73286Wysokie
RustFS przed wersją 1.0.0-beta.12 zawiera podatność polegającą na tym, że funkcja get_condition_values włącza kontrolowane przez atakującego nagłówki żądań do warunków tożsamości, takich jak userid, username, principaltype, groups, versionid, signatureversion, jwt: i ldap:. Umożliwia to uwierzytelnionym użytkownikom spełnienie warunków polityk opartych na tożsamości.
- CVE-2026-73285Wysokie
RustFS od wersji 1.0.0-alpha.64 do 1.0.0-rc.1, gdy zewnętrzna autoryzacja OPA jest włączona przez RUSTFS_POLICY_PLUGIN_URL, ustawia PreparedIamAuth.needs_existing_object_tag niepoprawnie dla PreparedIamMode::Opa, co powoduje pominięcie wartości s3:ExistingObjectTag/* w maybe_merge_object_tag_conditions. Umożliwia to uwierzytelnionym użytkownikom obejście ograniczeń polityk opartych na tagach.
- CVE-2026-22042Wysokie
RustFS przed wersją 1.0.0-alpha.79 ma podatność w API administracyjnym ImportIam, które błędnie waliduje uprawnienia przy użyciu ExportIAMAction zamiast ImportIAMAction. Pozwala to podmiotowi z uprawnieniami tylko do eksportu na wykonywanie operacji importu. Ponieważ import danych IAM wykonuje uprzywilejowane operacje zapisu (tworzenie/aktualizacja użytkowników, grup, polityk i kont usług), może to prowadzić do nieautoryzowanej modyfikacji IAM i eskalacji uprawnień. Wersja 1.0.0-alpha.79 naprawia problem.
- CVE-2026-45043Krytyczne
W systemie RustFS przed wersją 1.0.0-beta.2 wykryto podatność w punkcie końcowym PUT /rustfs/admin/v3/import-iam. Brak odpowiedniej walidacji pozwala użytkownikowi z uprawnieniem ImportIAMAction na tworzenie kont usługowych z dowolną tożsamością nadrzędną, włącznie z rootem (minioadmin). Atakujący może ustawić własne dane uwierzytelniające, co prowadzi do eskalacji uprawnień do pełnego dostępu administracyjnego.
- CVE-2026-22043Krytyczne
W RustFS (wersje 1.0.0-alpha.13 do 1.0.0-alpha.78) wadliwe skrócenie w mechanizmie `deny_only` w IAM pozwala ograniczonemu kontu usługowemu lub poświadczeniu STS na samodzielne wydanie nieograniczonego konta usługowego, dziedzicząc pełne uprawnienia rodzica. Umożliwia to eskalację uprawnień i obejście ograniczeń polityk sesji/wbudowanych. Wersja 1.0.0-alpha.79 naprawia problem.
- CVE-2025-68705Krytyczne
RustFS w wersjach od 1.0.0-alpha.13 do 1.0.0-alpha.78 zawiera podatność na path traversal w endpointcie /rustfs/rpc/read_file_stream. Podatność została naprawiona w wersji 1.0.0-alpha.79.
- CVE-2025-68926Krytyczne
RustFS to rozproszony system przechowywania obiektów napisany w Rust. W wersjach przed 1.0.0-alpha.78 RustFS implementuje uwierzytelnianie gRPC przy użyciu zakodowanego na stałe tokenu `"rustfs rpc"`, który jest publicznie dostępny w repozytorium kodu źródłowego, zakodowany po stronie klienta i serwera, niekonfigurowalny i uniwersalnie ważny we wszystkich wdrożeniach RustFS. Każdy atakujący z dostępem sieciowym do portu gRPC może uwierzytelnić się tym publicznie znanym tokenem i wykonywać uprzywilejowane operacje, w tym niszczenie danych, manipulację politykami i zmiany konfiguracji klastra. Wersja 1.0.0-alpha.78 zawiera poprawkę.
- CVE-2026-73288Średnie
W RustFS przed wersją 1.0.0-rc.1 egzekwowanie Object Lock pozwala na usunięcie lub wygaśnięcie obiektów pod retencją COMPLIANCE, gdy metadane .metadata.bin są nieczytelne, nie można ich sparsować lub brakuje konfiguracji. Funkcje check_object_lock_for_deletion, delete_prefix oraz skanery traktują takie przypadki jako brak konfiguracji blokady.
Oryginalny opis (angielski, źródło NVD)
RustFS is a distributed object storage system built in Rust. From 1.0.0-alpha.1 until 1.0.0-beta.9, when the FTP frontend is enabled, the FTP read and probe handlers dispatch directly to the storage backend without ever calling the IAM authorization function that the FTP write/list handlers (and the entire HTTP S3 path) use. As a result, any user who can authenticate to the FTP listener — including a user whose IAM policy contains an explicit Deny on s3:GetObject — can read (RETR) and stat (SIZE/MDTM) any object in any bucket, and probe any bucket (CWD), completely regardless of their IAM policy. This vulnerability is fixed in 1.0.0-beta.9.

