🇰🇷 한글 설명
PJSIP은 C로 작성된 오픈소스 멀티미디어 통신 라이브러리입니다. 2.17 이전 버전의 GnuTLS 빌드에서 SIP TLS 전송 모듈(sip_transport_tls)은 애플리케이션이 verify_server 또는 verify_client를 PJ_TRUE로 설정하여 인증서 검증을 명시적으로 활성화했더라도 유효하지 않거나 신뢰할 수 없는 인증서를 가진 연결을 수락할 수 있습니다. 이 문제는 2.17 버전에서 패치되었습니다.
💡 쉬운 설명
보안 연결을 맺을 때 상대방의 신원을 확인하는 기능이 일부 환경에서 제대로 동작하지 않습니다. 이로 인해 가짜 서버나 클라이언트가 중간에 끼어들 가능성이 있습니다.
🇺🇸 원문 (English)
PJSIP is a free and open source multimedia communication library written in C. Prior to version 2.17, on GnuTLS builds, the SIP TLS transport (sip_transport_tls) can accept connections with invalid or untrusted certificates even when the application explicitly enables certificate verification via verify_server = PJ_TRUE or verify_client = PJ_TRUE. This issue has been patched in version 2.17.
📍 영향받는 시스템
GnuTLS로 빌드된 PJSIP 2.17 이전 버전을 사용하는 SIP 기반 VoIP/통신 애플리케이션
⚔️ 공격 벡터
공격자가 신뢰되지 않은 인증서를 제시하는 중간자(MITM) 위치에서 SIP TLS 연결을 가로채 통화 및 시그널링 데이터를 도청하거나 변조
🛡️ 대응 방법
PJSIP을 2.17 이상 버전으로 업데이트하고 애플리케이션을 재빌드하여 배포
🔧 검증 코드
출력된 버전 번호가 2.17 미만이면 취약하며, 2.17 이상이면 패치된 버전입니다. 명령어 결과가 없으면 PJSIP이 설치되어 있지 않은 것입니다.
pjsip-config --version 2>/dev/null || grep -rE 'PJ_VERSION_NUM_STR|PJ_VERSION' $(find / -name 'pj/config.h' 2>/dev/null | head -1) 2>/dev/null