🇰🇷 한글 설명
PJSIP 라이브러리의 PJSUA에서 Service-Route 헤더를 처리할 때 스택 버퍼 오버플로가 발생합니다. 등록 응답(2xx response)에 포함된 과도한 수의 Service-Route URI가 고정 크기 배열의 경계를 넘어 저장되어 메모리 오염이나 서비스 거부(DoS)를 유발할 수 있습니다.
💡 쉬운 설명
통신 라이브러리가 서버로부터 너무 많은 정보를 받았을 때, 이를 담을 그릇이 부족하여 프로그램이 멈추거나 오류가 발생하는 문제입니다. 악의적인 서버가 가짜 정보를 대량으로 보내 프로그램의 작동을 방해할 수 있습니다.
🇺🇸 원문 (English)
PJSIP is a free and open source multimedia communication library written in C. Prior to commit acc03b5, a stack buffer overflow exists in PJSUA when processing Service-Route headers in a registration response (update_service_route() in pjsua_acc.c). This affects applications that register using the PJSUA/PJSUA2 account API (the default registration path). The Service-Route URIs from a 2xx response to REGISTER are stored into a fixed-size array without bounding the number of headers; a registrar that returns an excessive number of Service-Route headers can write past the end of the array on the stack. The values written are internal pointers rather than arbitrary data, so the most likely impact is unexpected application termination (denial of service), though memory corruption cannot be excluded. The malicious response may come from a compromised or malicious registrar, or — over unprotected transports — a spoofed response. This issue has been patched via commit acc03b5.
📍 영향받는 시스템
PJSIP 라이브러리 (commit acc03b5 이전 버전의 PJSUA/PJSUA2 API 사용 애플리케이션)
⚔️ 공격 벡터
악의적인 또는 탈취된 레지스트라(Registrar)가 과도한 Service-Route 헤더를 포함한 등록 응답을 전송
🛡️ 대응 방법
PJSIP 라이브러리를 commit acc03b5가 적용된 최신 버전으로 업데이트
🔧 검증 코드
명령어 결과가 'Patched'이면 수정된 버전이며, 'Vulnerable'이면 취약한 버전입니다.
git log -1 --format=%H | grep -q 'acc03b5' && echo 'Patched' || echo 'Vulnerable'