🇰🇷 한글 설명
@grpc/grpc-js는 C++ 애드온 없이 순수 JavaScript로 gRPC의 핵심 기능을 구현한 라이브러리입니다. 1.9.16, 1.10.12, 1.11.4, 1.12.7, 1.13.5, 1.14.4 이전 버전에서는 잘못된 압축 메시지를 수신하면 해당 라이브러리를 사용하는 클라이언트 또는 서버 프로세스가 크래시될 수 있습니다. 해당 취약점은 위 패치 버전에서 수정되었습니다.
💡 쉬운 설명
gRPC 통신을 처리하는 자바스크립트 라이브러리에 결함이 있어, 잘못된 형식의 압축 데이터를 받으면 프로그램이 멈출 수 있습니다. 패치된 최신 버전으로 업데이트하면 문제가 해결됩니다.
🇺🇸 원문 (English)
@grpc/grps-js implements the core functionality of gRPC purely in JavaScript, without a C++ addon. Prior to 1.9.16, 1.10.12, 1.11.4, 1.12.7, 1.13.5, and 1.14.4, an invalid incoming compressed message can cause a client or server process that uses @grpc/grpc-js to crash. This issue is fixed in versions 1.9.16, 1.10.12, 1.11.4, 1.12.7, 1.13.5, and 1.14.4.
📍 영향받는 시스템
@grpc/grpc-js 1.9.16 미만, 1.10.12 미만, 1.11.4 미만, 1.12.7 미만, 1.13.5 미만, 1.14.4 미만을 사용하는 Node.js 클라이언트 및 서버
⚔️ 공격 벡터
공격자가 조작된 잘못된 압축 gRPC 메시지를 대상 클라이언트 또는 서버에 전송하여 프로세스 충돌(서비스 거부)을 유발
🛡️ 대응 방법
@grpc/grpc-js를 1.9.16, 1.10.12, 1.11.4, 1.12.7, 1.13.5, 1.14.4 이상 해당 브랜치의 패치 버전으로 업데이트
🔧 검증 코드
출력된 @grpc/grpc-js 버전이 해당 브랜치의 패치 버전(예: 1.14.4 이상) 이상이면 취약하지 않으며, 그보다 낮으면 업데이트가 필요합니다.
npm ls @grpc/grpc-js 2>/dev/null