post
Atom 고갈은 실수가 아니다. 우리 CVE의 3분의 1이다
EEF CNA가 공개한 CVE의 35.8%는 제어되지 않은 리소스 소비이며, BEAM 생태계에서는 반복적인 atom 고갈이 큰 비중을 차지함 Atom 고갈은 서비스 거부 취약점으로, atom은 가비지 컬렉션되지 않고 전역 테이블에 쌓이며 테이블이 가득 차면 VM이 크래시됨
한 줄 요약
EEF CNA가 공개한 CVE의 35.8%는 제어되지 않은 리소스 소비이며, BEAM 생태계에서는 반복적인 atom 고갈이 큰 비중을 차지함
핵심 내용
EEF CNA가 공개한 CVE의 35.8%는 제어되지 않은 리소스 소비이며, BEAM 생태계에서는 반복적인 atom 고갈이 큰 비중을 차지함
Atom 고갈은 서비스 거부 취약점으로, atom은 가비지 컬렉션되지 않고 전역 테이블에 쌓이며 테이블이 가득 차면 VM이 크래시됨
사용자 입력처럼 가능한 값의 집합이 유한하다고 보장되지 않는 데이터에서 atom을 만들면 DoS 위험이 생기며, URI scheme도 예외가 아님
위험은 binarytoatom/1, String.to_atom/1 같은 명시적 호출뿐 아니라 JSON 키 atom 디코딩과 문자열 보간 기반 동적 생성에도 존재함
안전한 처리는 런타임 새 atom 생성을 피하고, 알려진 값은 명시적 조회 테이블이나 toexistingatom 계열로 제한하며 린터로 점검해야함
왜 중요한가
Atom 고갈은 서비스 거부 취약점으로, atom은 가비지 컬렉션되지 않고 전역 테이블에 쌓이며 테이블이 가득 차면 VM이 크래시됨 사용자 입력처럼 가능한 값의 집합이 유한하다고 보장되지 않는 데이터에서 atom을 만들면 DoS 위험이 생기며, URI scheme도 예외가 아님 위험은 binarytoatom/1, String.to_atom/1 같은 명시적 호출뿐 아니라 JSON 키 atom 디코딩과 문자열 보간 기반 동적 생성에도 존재함
참조한 것 · 가져온 것
원문: https://erlef.org/blog/security/atom-exhaustion
GeekNews: https://news.hada.io/topic?id=29948