CVE-2026-55733
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 3 - wyżej niż 3% wszystkich znanych CVE
Streszczenie
Podatność w bibliotece Guardian (Elixir) umożliwia atak DoS poprzez nieograniczone tworzenie atomów z danych binarnych kontrolowanych przez atakującego. Funkcja encode/3 w Guardian.Permissions.AtomEncoding wywołuje String.to_atom/1 bez walidacji, co prowadzi do wyczerpania tablicy atomów BEAM i awarii węzła.
Ocena ryzyka
Organizacja narażona jest na całkowitą odmowę usługi (DoS) – atakujący może wysłać serię zróżnicowanych, nieuwierzytelnionych danych wejściowych, co trwale wyczerpie tablicę atomów i spowoduje crash wszystkich aplikacji na tym samym węźle BEAM.
Rekomendacja
Należy natychmiast zaktualizować bibliotekę guardian do wersji 2.4.1 lub nowszej. Jeśli aktualizacja nie jest możliwa, należy zmienić domyślny encoder na Guardian.Permissions.BitwiseEncoding i nie używać Guardian.Permissions.AtomEncoding.
Inne podatności w Guardian
Zobacz wszystkie- CVE-2026-34116Krytyczne
Podatność w systemie językowym Guardian pozwala nieuwierzytelnionemu atakującemu na zdalne wykonanie dowolnych poleceń systemu operacyjnego poprzez wstrzyknięcie znaków specjalnych do parametru 'id' w skrypcie transcribe.php. Parametr ten jest przekazywany bezpośrednio do funkcji PHP exec() bez żadnej sanityzacji.
- CVE-2026-34114Krytyczne
Podatność w systemie językowym Guardian polega na przekazywaniu parametru GET 'id' bezpośrednio do funkcji PHP exec() w pliku translate_text.php bez sanityzacji. Nie jest wymagane uwierzytelnienie, co pozwala zdalnemu atakującemu na wykonanie dowolnych poleceń systemu operacyjnego.
- CVE-2026-34113Krytyczne
Podatność w systemie językowym Guardian pozwala nieuwierzytelnionemu atakującemu na zdalne wykonanie dowolnych poleceń systemu operacyjnego poprzez wstrzyknięcie metaznaków powłoki do parametru id w skrypcie speech_text.php.
- CVE-2026-34109Krytyczne
Podatność w systemie językowym Guardian pozwala nieuwierzytelnionemu atakującemu na zdalne wykonanie dowolnych poleceń systemu operacyjnego poprzez wstrzyknięcie metaznaków powłoki do parametru 'id' przekazywanego do funkcji PHP exec() w pliku speech.php.
- CVE-2026-34108Krytyczne
Podatność w systemie językowym Guardian pozwala nieuwierzytelnionemu atakującemu na zdalne wykonanie dowolnych poleceń systemu operacyjnego poprzez wstrzyknięcie metaznaków powłoki do parametru id przekazywanego bezpośrednio do funkcji exec() w pliku text.php.
- CVE-2026-34106Krytyczne
Podatność w systemie językowym Guardian pozwala nieuwierzytelnionemu atakującemu na zdalne wykonanie dowolnych poleceń systemu operacyjnego poprzez wstrzyknięcie metaznaków powłoki do parametru 'id' w skrypcie subtitles.php. Parametr ten jest przekazywany bezpośrednio do funkcji PHP exec() bez jakiejkolwiek sanityzacji.
- CVE-2026-55735Wysokie
Podatność w bibliotece guardian (wersje od 1.0.0 przed 2.4.1) polega na nieprawidłowej weryfikacji podpisu kryptograficznego, co pozwala nieuwierzytelnionemu atakującemu na unieważnienie sesji ofiary za pomocą sfałszowanego tokena JWT.
- CVE-2026-55734Wysokie
Podatność w bibliotece Guardian (moduł Guardian.Permissions) pozwala na atak DoS poprzez wyczerpanie tablicy atomów BEAM. Funkcja encode_permissions!/1 konwertuje klucze mapy na atomy bez walidacji, a atomy nie są usuwane przez garbage collector, co prowadzi do wyczerpania stałego zasobu tablicy atomów.
- CVE-2026-54894Wysokie
Podatność w guardian (wersje od 0.1.0 przed 2.4.1) polega na alokacji zasobów bez ograniczeń, co umożliwia atakującemu przeprowadzenie ataku DoS poprzez tworzenie nieograniczonej liczby atomów z danych binarnych.
Oryginalny opis (angielski, źródło NVD)
Allocation of Resources Without Limits or Throttling in ueberauth guardian allows denial of service via unbounded atom creation from attacker-controlled binary input. Guardian.Permissions.AtomEncoding encodes permission scopes by passing arbitrary binaries to String.to_atom/1. When encode/3 in lib/guardian/permissions/atom_encoding.ex is called with a list, each binary entry is handled by the encode_value/3 binary clause, which calls String.to_atom(value) with no allow-list check. The perm_set argument (the application's small, finite set of legitimate permission names) is discarded, so any external string flows straight into atom creation. This encoder is selected with use Guardian.Permissions, encoding: Guardian.Permissions.AtomEncoding and reached through the imported encode/3 entry point. String.to_atom/1 creates a brand-new atom for every previously unseen binary, atoms are never garbage collected, and the BEAM atom table is fixed at roughly 1,048,576 entries by default. An application that funnels attacker-influenced permission scopes (from a request body, a JWT claim, or other external input) into encode/3 therefore mints one permanent atom per distinct value. A modest stream of varied, unauthenticated input permanently consumes the atom table and crashes the BEAM node with system_limit, taking down every application running on it. The default encoder is Guardian.Permissions.BitwiseEncoding, which is not affected. This issue affects guardian: from 2.0.0 before 2.4.1.

