🇰🇷 한글 설명
PJSIP 라이브러리의 SDP 협상 과정에서 원격 범위 외 읽기 및 쓰기 취약점이 발견되었습니다. PJMEDIA_SDP_NEG_MAINTAIN_REMOTE_PT_MAP 기능이 활성화된 경우, 조작된 SDP 페이로드를 통해 메모리 손상이나 서비스 거부(DoS)가 발생할 수 있습니다.
💡 쉬운 설명
통신 프로그램이 상대방이 보낸 잘못된 정보를 처리하는 과정에서 메모리 영역을 벗어나 데이터를 읽거나 쓰는 오류가 발생합니다. 이로 인해 프로그램이 갑자기 꺼지거나 시스템에 오류가 생길 수 있습니다.
🇺🇸 원문 (English)
PJSIP is a free and open source multimedia communication library written in C. Prior to commit 673b978, a remote out-of-bounds read and write can occur in the SDP negotiator when the remote payload-type map maintenance feature is enabled. assign_pt_and_update_map() in pjmedia/src/pjmedia/sdp_neg.c uses payload-type numbers taken from a remote SDP offer or answer to index fixed-size internal tables without sufficient bounds validation, so a crafted remote SDP can cause memory access outside those tables. The practical impact is memory corruption and denial of service; code execution is not demonstrated. This path is only reached when PJMEDIA_SDP_NEG_MAINTAIN_REMOTE_PT_MAP is enabled. The default is disabled, so default builds are not affected; the feature is an interoperability option that integrating products may enable. This issue has been patched via commit 673b978.
📍 영향받는 시스템
PJSIP (commit 673b978 이전 버전 중 PJMEDIA_SDP_NEG_MAINTAIN_REMOTE_PT_MAP 옵션이 활성화된 빌드)
⚔️ 공격 벡터
조작된 SDP(Session Description Protocol) 오퍼 또는 응답을 전송하여 원격에서 공격
🛡️ 대응 방법
PJSIP를 최신 패치(commit 673b978 포함 버전)로 업데이트하거나, 해당 기능(PJMEDIA_SDP_NEG_MAINTAIN_REMOTE_PT_MAP)을 비활성화합니다.
🔧 검증 코드
명령어 결과에 673b978 커밋 해시가 포함되어 있으면 패치된 상태이며, 그렇지 않으면 취약할 수 있습니다.
git log -1 --format=%H | grep 673b978 || echo 'Vulnerable or Patch not applied'