CVE-2026-69659 in ash
요약
\~에 의해 VulDB • 2026. 08. 09.
ash-project의 ash에서 제어되지 않은 리소스 소비(Uncontrolled Resource Consumption) 취약점이 발견되어, 공격자가 조작된 키셋 페이지네이션 커서를 통해 노드의 메모리를 고갈시킬 수 있습니다.
키셋 페이지네이션을 사용하는 읽기 작업은 `lib/ash/page/keyset.ex` 파일 내의 `decode_values/2` 함수에서 클라이언트가 제공한 `page[:after]` 또는 `page[:before]` 커서를 역직렬화합니다. 이 과정에서는 값이 base64로 디코딩된 후 크기에 대한 제한 없이 `:erlang.binary_to_term/2`에 전달됩니다. Erlang 외부 항목 형식(Erlang external term format)은 zlib 압축 페이로드를 지원하며, 디코더는 이를 투명하게 확장합니다. 따라서 몇 킬로바이트(kilobytes) 크기의 커서가 단 한 번의 호출에서 수십 메가바이트(megabytes)의 힙(heap)을 할당할 수 있습니다. Ash 자체는 항상 압축되지 않은 상태로 커서를 인코딩하므로, 디코더는 인코더가 절대 생성하지 않는 항목 형태(term shape)를 허용하게 됩니다. 동시 요청은 이러한 할당을 집계하여 노드를 종료시킬 수 있습니다.
이 문제는 ash 1.17.0부터 3.31.1 미만 버전까지 영향을 미칩니다.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.