Ecto 쿼리 캐시 무제한 증가로 메모리 고갈 (서비스 거부)
Elixir 데이터베이스 도구는 악의적인 요청으로 멈출 수 있습니다.
요약
Elixir용 데이터 조회 라이브러리 Ecto는 요청에 담긴 JSON 키나 목록 길이마다 메모리를 계속 쌓아 서버를 멈추게 할 수 있습니다. 인증 없이 원격에서 공격할 수 있으며, 3.4.0 이상 3.14.3 미만 버전이 해당합니다.
해당 조건
- 요청 데이터를 JSON 경로나 splice/1 목록에 넣어 쿼리하는 코드
- 기본 query_cache: true 설정으로 쿼리 실행
대처법
ecto 3.14.3으로 업데이트하세요. 당장 못 하면 요청 값을 미리 검사하거나, 쿼리 실행 시 query_cache: false 옵션을 쓰세요.
당장 못 하면:
설정 파일에 이 줄을 넣으세요:
Repo.all(query, query_cache: false)
설정을 잘못 바꾸면 서비스가 멈추거나 접속이 막힐 수 있어요. 바꾸기 전에 아래 원문 링크를 확인하세요.
대상 제품과 운영체제
CVE 번호
원문 링크
- 보안 공지: github.com (새 탭에서 열림)
- 분석 글: ecto.hexdocs.pm (새 탭에서 열림) · ecto.hexdocs.pm (새 탭에서 열림)
- CVE 기록: cve.org (새 탭에서 열림)
시각
처음 게시
처음 확인