🇰🇷 한글 설명
re2의 Node.js 바인딩에서 빈 문자열을 매칭할 수 있는 전역 RE2 패턴을 사용할 경우, 네이티브 매칭 커서가 전진하지 못하는 결함이 있습니다. 이로 인해 무한 루프가 발생하고 네이티브 메모리가 무제한으로 증가하여 이벤트 루프가 차단되고 호스트 메모리가 고갈될 수 있습니다.
💡 쉬운 설명
특정한 규칙을 가진 검색어를 사용할 때 프로그램이 멈추지 않고 계속 돌아가는 문제가 있습니다. 이 과정에서 컴퓨터의 메모리를 모두 써버려 시스템이 느려지거나 멈출 수 있습니다.
🇺🇸 원문 (English)
re2 provides Node.js bindings for Google's RE2 regular expression engine. Prior to 1.25.2, re2's String.prototype.match implementation with a global RE2 pattern that can match the empty string fails to advance its native matching cursor in lib/match.cc, causing an infinite loop and unbounded native memory growth that blocks the event loop and can exhaust host memory. This issue is fixed in 1.25.2.
📍 영향받는 시스템
re2 Node.js bindings version 1.25.2 미만
⚔️ 공격 벡터
빈 문자열을 매칭할 수 있는 전역 정규 표현식 패턴을 포함한 입력값 전달
🛡️ 대응 방법
re2 패키지를 1.25.2 버전 이상으로 업데이트
🔧 검증 코드
출력된 re2의 버전이 1.25.2보다 낮은지 확인