🇰🇷 한글 설명
elixir-tesla 라이브러리의 Tesla.Adapter.Mint.open_conn/2 함수에서 URL 스킴을 검증 없이 BEAM 아톰으로 변환하여 발생하는 자원 할당 제한 미비 취약점입니다. 공격자가 URL 스킴을 조작하여 요청을 보낼 경우, 가비지 컬렉션이 되지 않는 아톰 테이블을 점유하여 시스템을 중단시킬 수 있습니다.
💡 쉬운 설명
공격자가 특수한 주소를 계속 보내면 컴퓨터의 메모리 공간 중 하나인 '아톰 테이블'을 가득 채워 프로그램을 강제로 종료시킬 수 있습니다. 이는 마치 빈 그릇에 계속해서 버릴 수 없는 쓰레기를 채워 결국 시스템을 마비시키는 것과 같습니다.
🇺🇸 원문 (English)
Allocation of Resources Without Limits or Throttling vulnerability in elixir-tesla tesla allows denial of service via atom table exhaustion in Tesla.Adapter.Mint.
Tesla.Adapter.Mint.open_conn/2 converts the URL scheme of every outgoing request to a BEAM atom via String.to_atom(uri.scheme) with no allow-list validation. BEAM atoms are never garbage-collected and the atom table is bounded (approximately 1,048,576 entries by default). An attacker who can influence the URL of a Tesla request — either via an application-level URL-forwarding feature (webhook, proxy, importer) or via a Location header returned by a server when Tesla.Middleware.FollowRedirects is in the pipeline — can mint one fresh permanent atom per request by varying the scheme string. After enough requests the atom table fills and the VM crashes, taking down the entire application.
This issue affects tesla: from 1.3.0 before 1.18.3.
📍 영향받는 시스템
tesla: 1.3.0 버전부터 1.18.3 미만 버전
⚔️ 공격 벡터
웹훅, 프록시 또는 리다이렉트 기능을 통해 조작된 URL 스킴을 포함한 요청을 지속적으로 전송
🛡️ 대응 방법
tesla 라이브러리를 1.18.3 이상의 최신 버전으로 업데이트
🔧 검증 코드
출력된 tesla의 버전이 1.18.3 미만인지 확인하여 취약 여부를 판단합니다.
mix deps info tesla | grep -E 'tesla \([0-9]+\.[0-9]+\.[0-9]+\)'
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
💻 영향받는 소프트웨어
IBM WebSphere Application Server