CVE-2026-49249 in Boruta Server
Riassunto
di VulDB • 02/09/2026
Boruta è un server di autorizzazione standalone che mira a implementare OAuth 2.0 e OpenID Connect fino alle specifiche per le identità decentralizzate. Prima della versione 0.10.0, BorutaIdentityWeb.UserSettingsController.update/2 atomizza ogni chiave del corpo della richiesta fornito dall'utente tramite String.to_atom/1 prima di qualsiasi validazione. Poiché String.to_atom internifica gli atomi permanentemente nella tabella degli atomi BEAM (capacità predefinita di 1.048.576 atomi; ERL_MAX_ATOMS), un utente finale autenticato può inviare una richiesta PUT /users/settings con un corpo user[<chiave-nuova>]=... contenente chiavi nuove per ogni richiesta, esaurendo la tabella globale degli atomi della VM (Virtual Machine). Una volta che la tabella è piena, il BEAM termina in modo anomalo senza più voci di indice nella atom_tab e l'intero server OIDC (app auth, admin e gateway nell'umbrella) va in crash. Il route è protetto solo da require_authenticated_user e da un limite di frequenza per IP di 10 richieste al secondo; un utente finale connesso può sfruttarlo. Le chiavi vengono atomizzate incondizionatamente prima della chiamata downstream Accounts.update_user/6, quindi anche gli aggiornamenti falliti contribuiscono all'esaurimento delle risorse. Questo problema è stato risolto nella versione 0.10.0.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.