Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1336 CNY

100%

CVE-2026-49249— Boruta: Authenticated atom-exhaustion DoS in BorutaIdentityWeb.UserSettingsController.update/2

Quick assessment

Affected
malach-it boruta-server
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Boruta 是一个独立的授权服务器,旨在实现 OAuth 2.0 和 OpenID Connect 的分散式身份规范。在 0.10.0 版本之前,Boruta 的 函数会在任何验证之前,使用 对用户在请求体中提供的每一个键进行原子化。由于 会在 BEAM 的原子表中永久地注册原子(默认上限为 1,048,576 个原子,即 ),因此任何经过身份验证的终端用户都可以通过发送带有全新键的 请求(每次请求使用不同的新键)来耗尽全局 VM 的原子表。一旦原子表被占满,BEAM 将因原子表中没有更多可用索引条目而中止,导致

CVSS 7.1 · High EPSS 0.09% · P25

Possible ATT&CK Techniques 1 AI

T1298
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-49249

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
Boruta: Authenticated atom-exhaustion DoS in BorutaIdentityWeb.UserSettingsController.update/2
Source: CVE Program / CVE List V5
Vulnerability Description
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.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Source: CVE Program / CVE List V5
Vulnerability Type
未加控制的资源消耗(资源穷尽)
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
malach-it boruta-server < 0.10.0 -

II. Public POCs for CVE-2026-49249

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-49249

登录查看更多情报信息。

Vendor Advisories for CVE-2026-49249 (1)

Vendor Pages for CVE-2026-49249 (1)

IV. Related Vulnerabilities

V. Comments for CVE-2026-49249

No comments yet


Leave a comment