🇰🇷 한글 설명
Forge(node-forge)는 JavaScript로 구현된 TLS 라이브러리입니다. 1.4.1 이전 버전에서는 단편화된 핸드셰이크 메시지 처리 중 다른 콘텐츠 타입의 TLS 레코드가 끼어들어도 처리를 계속하여, 원격 피어가 process() 함수에서 처리되지 않은 TypeError를 유발해 연결 또는 호스팅 프로세스를 중단시킬 수 있습니다. 이 문제는 1.4.1 버전에서 수정되었습니다.
💡 쉬운 설명
node-forge를 사용하는 서버나 앱에 악의적인 상대가 특수한 암호화 통신 데이터를 보내면 프로그램이 비정상 종료될 수 있습니다. 최신 버전으로 업데이트하면 이 문제가 해결됩니다.
🇺🇸 원문 (English)
Forge (also called node-forge) is a native implementation of Transport Layer Security in JavaScript. Prior to 1.4.1, the affected implementation used forge.tls.createConnection(), fragmented handshake message, interleaved record to process the relevant input or security decision. node-forge continued processing after a TLS record of another content type interrupted a fragmented handshake message. A remote peer could trigger an uncaught TypeError in process(), causing the connection or hosting process to fail. This issue is fixed in version 1.4.1.
📍 영향받는 시스템
node-forge 1.4.1 미만 버전을 사용하는 Node.js 기반 애플리케이션 및 TLS 연결 처리 서비스
⚔️ 공격 벡터
원격 공격자가 단편화된 TLS 핸드셰이크 중간에 다른 콘텐츠 타입의 레코드를 끼워 넣어 서비스 거부(DoS)를 유발
🛡️ 대응 방법
node-forge를 1.4.1 이상 버전으로 업그레이드 (npm update node-forge 또는 package.json 수정 후 재설치)
🔧 검증 코드
출력된 node-forge 버전이 1.4.1 미만이면 취약하므로 업데이트가 필요하고, 1.4.1 이상이면 패치된 상태입니다.
npm ls node-forge 2>/dev/null | grep -E 'node-forge@[0-9]+\.[0-9]+\.[0-9]+'