🇰🇷 한글 설명
Envoy 프록시의 JsonEscaper::escapeString() 함수에서 오프바이원(off-by-one) 쓰기 오류가 발생합니다. 이로 인해 std::string의 널 종료 문자가 손상되어 정의되지 않은 동작이 발생하며, 시스템 충돌이나 경계 외 읽기(out-of-bounds read)로 이어질 수 있습니다.
💡 쉬운 설명
데이터를 안전하게 변환하는 과정에서 글자 수를 하나 잘못 계산하여 메모리 끝부분을 건드리는 오류입니다. 이로 인해 프로그램이 갑자기 꺼지거나, 허용되지 않은 메모리 영역의 정보를 읽어올 위험이 있습니다.
🇺🇸 원문 (English)
Envoy is a high-performance edge/middle/service proxy. Prior to 1.37.1, 1.36.5, 1.35.8, and 1.34.13, an off-by-one write in Envoy::JsonEscaper::escapeString() can corrupt std::string null-termination, causing undefined behavior and potentially leading to crashes or out-of-bounds reads when the resulting string is later treated as a C-string. This vulnerability is fixed in 1.37.1, 1.36.5, 1.35.8, and 1.34.13.
📍 영향받는 시스템
Envoy versions prior to 1.37.1, 1.36.5, 1.35.8, and 1.34.13
⚔️ 공격 벡터
특수하게 조작된 JSON 문자열을 Envoy 프록시로 전송하여 메모리 손상을 유도
🛡️ 대응 방법
Envoy를 최신 패치 버전(1.37.1, 1.36.5, 1.35.8, 1.34.13 이상)으로 업데이트
🔧 검증 코드
출력된 Envoy 버전을 확인하여 취약점이 해결된 패치 버전 이상인지 대조
envoy --version 2>/dev/null || dpkg -l | grep envoy