🔍 CVE-2026-49249

0.0
CVSS Score
UNKNOWN
2026-09-02
2026-09-09 21:04
✅ 완료

🇰🇷 한글 설명

Boruta 버전 0.10.0 미만에서 발생하는 취약점으로, 인증된 사용자가 요청 본문의 키를 원자(atom)로 변환하는 과정에서 BEAM VM의 원자 테이블을 고갈시킬 수 있습니다. 이로 인해 시스템의 원자 테이블이 가득 차면 전체 OIDC 서버가 중단되는 서비스 거부(DoS) 상태에 빠지게 됩니다.

💡 쉬운 설명

로그인한 사용자가 특수하게 조작된 데이터를 계속 보내면 서버의 메모리 공간 중 하나인 '이름표 목록'을 가득 채울 수 있습니다. 이름표 목록이 꽉 차면 서버가 더 이상 작동하지 못하고 완전히 멈춰버립니다.

🇺🇸 원문 (English)

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.

📍 영향받는 시스템

Boruta (version < 0.10.0)

⚔️ 공격 벡터

인증된 사용자가 PUT /users/settings 요청 시 매번 새로운 키를 포함한 본문을 전송하여 원자 테이블 고갈 유도

🛡️ 대응 방법

Boruta를 버전 0.10.0 이상으로 업데이트하십시오.

🔧 검증 코드

명령어 결과로 버전 번호가 출력되면 취약한 버전이 설치되어 있는 상태입니다.

Shell / Script
mix release.version 2>/dev/null | grep -E '0\.[0-9]+' | awk '$1 < "0.10.0"'

💻 영향받는 소프트웨어

Spring Cloud Gateway Server