CVE-2026-82743 in ash
요약
\~에 의해 VulDB • 2026. 09. 01.
ash-project ash에서 비제어된 리소스 소비(Uncontrolled Resource Consumption) 취약점이 발견되어, 느린 비동기 읽기가 프레임워크가 이를 기다리는 동안 스케줄러 스레드를 최대 CPU 사용률로 계속 실행시킵니다.
Ash.Actions.Read.AsyncLimiter.await_at_least_one/1 (lib/ash/actions/read/async_limiter.ex)은 각 작업을 Task.yield(task, 0)으로 폴링하는 긴밀한 루프(tight loop)를 통해 병렬 비동기 읽기 작업들을 기다렸지, 블로킹(blocking) 방식으로 대기하지 않았습니다. 모든 미완료된 태스크가 여전히 실행 중인 동안(느린 관련 데이터 로딩 또는 계산), 이 루프는 즉시 반환되고 반복되어 busy-spinning 상태를 유지하며 느린 읽기가 완료될 때까지 BEAM 스케줄러를 최대 CPU 사용률로 점유합니다. 병렬로 발생하는 느린 읽기는 추가적인 스케줄러들을 묶어둡니다.
해결책은 Task.yield_many(비블로킹 스윕 후 timeout: :infinity 옵션으로 블로킹 대기 수행)를 사용하여, 태스크가 완료될 때까지 프로세스가 sleep 상태로 전환되도록 하여 busy-spinning을 방지합니다.
이 이슈는 ash 2.19.0 이상에서 발생하며, 3.32.2 미만 버전에서 영향을 받습니다.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.