🇰🇷 한글 설명
gRPC HTTP2 스택에서 헤더 크기 초과 오류 발생 시 HPACK 프레임의 나머지 파싱을 건너뛰는 취약점입니다. 이로 인해 송신자와 수신자 간의 HPACK 테이블 동기화가 깨지며, 프록시와 백엔드 사이에서 다른 클라이언트의 헤더가 노출되어 정보 유출이나 권한 상승으로 이어질 수 있습니다.
💡 쉬운 설명
데이터를 주고받을 때 사용하는 압축 규칙이 어긋나면서, A라는 사람의 정보가 B라는 사람에게 잘못 전달될 수 있는 문제입니다. 이를 통해 해커가 다른 사용자의 민감한 정보를 훔쳐보거나 권한을 가로챌 수 있습니다.
🇺🇸 원문 (English)
When gRPC HTTP2 stack raised a header size exceeded error, it skipped parsing the rest of the HPACK frame. This caused any HPACK table mutations to also be skipped, resulting in a desynchronization of HPACK tables between sender and receiver. If leveraged, say, between a proxy and a backend, this could lead to requests from the proxy being interpreted as containing headers from different proxy clients - leading to an information leak that can be used for privilege escalation or data exfiltration. We recommend upgrading beyond the commit contained in https://github.com/grpc/grpc/pull/33005 https://github.com/grpc/grpc/pull/33005
📍 영향받는 시스템
gRPC 라이브러리 (해당 패치가 적용되지 않은 이전 버전)
⚔️ 공격 벡터
조작된 크기의 HTTP2 헤더를 전송하여 HPACK 테이블의 동기화를 깨뜨리는 방식
🛡️ 대응 방법
gRPC 라이브러리를 https://github.com/grpc/grpc/pull/33005 패치가 포함된 최신 버전으로 업데이트
🔧 검증 코드
사용 중인 gRPC 버전이 해당 보안 패치(PR #33005)가 포함된 커밋 이후 버전인지 확인해야 합니다.
grep -r "commit" /path/to/grpc/source/directory 2>/dev/null || echo 'Check gRPC version via package manager'