🇰🇷 한글 설명
libp2p의 JavaScript 구현체에서 @libp2p/gossipsub의 기본 디코딩 RPC 제한 설정이 무한대로 설정되어 발생하는 취약점입니다. 공격자가 거대한 IHAVE 및 IWANT 제어 메시지 배열을 전송할 경우, Node.js 이벤트 루프가 동기적으로 메시지 ID를 반복 처리하느라 차단될 수 있습니다.
💡 쉬운 설명
네트워크 메시지에 너무 많은 정보를 담아 보내면 프로그램이 이를 처리하느라 멈춰버리는 문제입니다. 이로 인해 서비스가 응답하지 않는 상태가 될 수 있습니다.
🇺🇸 원문 (English)
libp2p is a JavaScript Implementation of libp2p networking stack. Prior to 16.0.0, @libp2p/gossipsub defaultDecodeRpcLimits set maxIhaveMessageIDs and maxIwantMessageIDs to Infinity, allowing oversized IHAVE and IWANT control message arrays in message/decodeRpc.ts and gossipsub.ts to synchronously iterate roughly 180,000 message IDs per 4 MB frame and block the Node.js event loop. This issue is fixed in version 16.0.0.
📍 영향받는 시스템
libp2p JavaScript Implementation (version 16.0.0 미만)
⚔️ 공격 벡터
조작된 대용량 IHAVE 또는 IWANT 제어 메시지를 전송하여 Node.js 이벤트 루프를 차단
🛡️ 대응 방법
libp2p를 16.0.0 버전 이상으로 업데이트
🔧 검증 코드
출력된 버전이 16.0.0 미만인지 확인하여 취약 여부를 판단합니다.
npm list @libp2p/gossipsub