Read the docs
TI-2026-36446 Aliases CVE-2026-49249

Boruta: Authenticated atom-exhaustion DoS in BorutaIdentityWeb.UserSettingsController.update/2

Priority MEDIUM 64CWE-400Published · Updated

Key facts

Attack vector
Network
Privileges required
Low
User interaction
None
Attack complexity
Low
Attack requirements
None
Impact type
Denial of service
Confidentiality · integrity · availability
None · None · High
Fix status
Fixed

Attack profile from CVSS 4.0 · CNA. Fix status from CNA. Impact type from CWE-400.

Summary

Boruta is a standalone authorization server that aims to implement OAuth 2.0 and Openid Connect up to decentralized identity specifications. Prior to version 0.10.0, BorutaIdentityWeb.UserSettingsController.update/2 atomizes every key of the user-supplied request body via String.to_atom/1 before any validation. Because String.to_atom interns atoms permanently in the BEAM atom table (default cap 1,048,576 atoms; ERL_MAX_ATOMS), any authenticated end user can send PUT /users/settings with a user[<fresh-key>]=... body containing fresh keys per request and exhaust the global VM atom table. Once the table is full, the BEAM aborts with no more index entries in atom_tab and the entire OIDC server (auth, admin, gateway apps in the umbrella) crashes. The route is protected only by require_authenticated_user and a per-IP rate limit of 10 requests/second; a logged-in end user can hit it. The keys are atomized unconditionally before the downstream Accounts.update_user/6 call, so even failing updates contribute to exhaustion. This issue has been patched in version 0.10.0.

Why it matters now

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.00397 34th percentileScored 2026-11-07
Fix Fixed boruta-server (malach-it): 0.10.0

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
Poc
Automatable
No
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
malach-itboruta-serverbefore 0.10.00.10.0Patch availableCNA
  • boruta-server Vendormalach-it Affected before 0.10.0 Fixed in 0.10.0 Patch available CNA

Remediation

  • Fix · CNA boruta-server (malach-it) Fixed in 0.10.0

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-49249

References

  • TI-2026-38513 Boruta accepts expired JWT client assertions due to missing exp claim validation CVSS 4.0CRITICAL 9.1
  • TI-2026-46784 Boruta dynamic client registration allows creation of over-privileged OAuth clients CVSS 4.0HIGH 8.3
  • TI-2026-39658 Server-side request forgery in Boruta OAuth request_uri and OpenID jwks_uri fetching CVSS 4.0MEDIUM 6.9
  • TI-2026-38702 boruta-server sent sensitive session cookies without the Secure attribute CVSS 4.0HIGH 8.8
  • TI-2026-39899 Boruta: OAuth credentials exposed in Boruta business logs CVSS 3.1MEDIUM 6.5

Sources

This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences