🇰🇷 한글 설명
PJSIP 라이브러리의 SRTP/SDES 미디어 전송 처리 과정에서 스택 버퍼 오버플로우 취약점이 발견되었습니다. 공격자가 SDP 협상 중 과도한 수의 a=crypto 속성을 포함한 SIP INVITE 메시지를 보내면 스택 메모리 경계를 넘어 데이터를 쓸 수 있습니다. 이로 인해 애플리케이션이 강제 종료되거나 공격자가 제어 흐름을 탈취하여 메모리 오염을 일으킬 수 있습니다.
💡 쉬운 설명
통신 프로그램이 암호화 설정을 확인하는 과정에서 너무 많은 정보를 한꺼번에 받으면 메모리가 넘쳐버리는 문제입니다. 이를 통해 해커가 프로그램을 멈추게 하거나 컴퓨터를 마음대로 조종할 위험이 있습니다.
🇺🇸 원문 (English)
PJSIP is a free and open source multimedia communication library written in C. Prior to commit a1b707c, a stack buffer overflow exists in the SRTP/SDES media transport when processing a=crypto attributes during SDP offer/answer (sdes_encode_sdp() in transport_srtp_sdes.c). This affects applications with SRTP enabled (use_srtp optional or mandatory, using SDES keying). During media negotiation, the crypto attributes from the remote SDP are collected into a fixed-size array without bounding their number; a remote peer that includes an excessive number of a=crypto attributes in a single media description can write past the end of that array on the stack. This is reachable from an incoming SIP INVITE during offer/answer, before application-level authentication. Impact may range from unexpected application termination to control flow hijack/memory corruption. Applications that do not enable SRTP are not affected. This issue has been patched via commit a1b707c.
📍 영향받는 시스템
SRTP 및 SDES 키잉을 사용하는 PJSIP 기반 애플리케이션 (commit a1b707c 적용 전 버전)
⚔️ 공격 벡터
인증되지 않은 원격 공격자가 조작된 a=crypto 속성이 포함된 SIP INVITE 메시지를 전송
🛡️ 대응 방법
PJSIP를 최신 버전으로 업데이트하거나 수정 사항이 반영된 commit a1b707c를 적용
🔧 검증 코드
명령어 결과에 a1b707c 커밋 해시가 나타나면 취약점이 패치된 상태입니다.
git log --oneline | grep -E 'a1b707c'