🔍 CVE-2024-28101

7.5
CVSS Score
HIGH
2024-03-21
2026-06-17 07:20
✅ 완료

🇰🇷 한글 설명

Apollo Router의 0.9.5 버전부터 1.40.2 버전까지 압축된 HTTP 페이로드를 처리할 때 서비스 거부(DoS) 취약점이 발생합니다. 압축 해제 후 크기 제한을 확인하기 때문에, 고도로 압축된 페이로드를 받을 경우 메모리 사용량이 급증하여 시스템이 중단될 수 있습니다.

💡 쉬운 설명

압축된 데이터를 풀 때 데이터가 얼마나 커질지 미리 확인하지 않아 발생하는 문제입니다. 공격자가 아주 작은 파일로 엄청나게 큰 데이터를 만들어 보내면 컴퓨터의 메모리가 가득 차서 멈출 수 있습니다.

🇺🇸 원문 (English)

The Apollo Router is a graph router written in Rust to run a federated supergraph that uses Apollo Federation. Versions 0.9.5 until 1.40.2 are subject to a Denial-of-Service (DoS) type vulnerability. When receiving compressed HTTP payloads, affected versions of the Router evaluate the `limits.http_max_request_bytes` configuration option after the entirety of the compressed payload is decompressed. If affected versions of the Router receive highly compressed payloads, this could result in significant memory consumption while the compressed payload is expanded. Router version 1.40.2 has a fix for the vulnerability. Those who are unable to upgrade may be able to implement mitigations at proxies or load balancers positioned in front of their Router fleet (e.g. Nginx, HAProxy, or cloud-native WAF services) by creating limits on HTTP body upload size.

📍 영향받는 시스템

Apollo Router versions 0.9.5 through 1.40.2

⚔️ 공격 벡터

고도로 압축된 HTTP 페이로드를 전송하여 서버의 메모리 자원을 고갈시키는 방식

🛡️ 대응 방법

Apollo Router를 1.40.2 버전 이상으로 업데이트하거나, 프록시/WAF에서 HTTP 바디 업로드 크기 제한을 설정하십시오.

🔧 검증 코드

출력된 버전이 0.9.5에서 1.40.2 사이라면 취약한 상태이며, 1.40.2보다 높으면 안전합니다.

Shell / Script
apollo-router --version 2>/dev/null || echo 'Check installed version manually'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H