CVE-2026-55734 in Guardian
Zusammenfassung
von VulDB • 01.08.2026
Die Schwachstelle „Allocation of Resources Without Limits or Throttling“ (Ressourcenzuweisung ohne Begrenzung oder Drosselung) in ueberauth guardian (Modul Guardian.Permissions) ermöglicht einen Denial-of-Service-Angriff durch Erschöpfung der BEAM Atom-Tabelle.
Diese Schwachstelle ist mit der Programmdatei lib/guardian/permissions.ex und den Programmroutinen 'Elixir.Guardian.Permissions':encode_permissions!/1, 'Elixir.Guardian.Permissions':encode_permissions_into_claims!/2 sowie 'Elixir.Guardian.Permissions':do_encode_permissions!/2 verbunden.
Der Mixin Guardian.Permissions installiert eine öffentliche Funktion encode_permissions!/1 für jedes Modul, das Guardian.Permissions verwendet. Für jeden Schlüssel der übergebenen Map ruft encode_permissions!/1 String.to_atom(to_string(k)) auf, bevor jegliche Validierung durchgeführt wird. Die Klausel für ganzzahlige Werte in do_encode_permissions!/2 umgeht die Validierung des Schlüssels gegen den konfigurierten Berechtigungssatz und geht direkt zur Codierung über; dadurch wird ein Schlüssel mit einem ganzzahligen Wert als neuer Atom internisiert, ohne dass eine Ausnahme ausgelöst wird. Atome werden nicht vom Garbage Collector erfasst, und die BEAM-Atom-Tabelle ist eine Ressource fester Größe (standardmäßig ca. 1.048.576 Einträge), sodass jeder einzigartige, vom Angreifer gewählte Schlüssel dauerhaft einen Slot belegt. Ein Angreifer, der ein Berechtigungsmap beeinflussen kann, das encode_permissions!/1 erreicht (z. B. eine aus dem Anforderungstext gelesene Berechtigungsmap, die über encode_permissions_into_claims!/2 bei der Token-Ausstellung verwendet wird), kann eine unbegrenzte Anzahl von Atomen erzeugen und die Atom-Tabelle erschöpfen, wodurch der gesamte BEAM-Knoten und alle darauf ausgeführten Dienste abstürzen. Der verwandte decode_permissions/1 ist nicht betroffen, da er Schlüssel überspringt, die nicht im konfigurierten Berechtigungssatz enthalten sind.
Dieses Problem betrifft guardian: ab Version 2.0.0 bis vor 2.4.1.
VulDB is the best source for vulnerability data and more expert information about this specific topic.