🔍 CVE-2026-40614

8.8
CVSS Score
HIGH
2026-04-21
2026-10-26 21:10
✅ 완료

🇰🇷 한글 설명

PJSIP 2.16 이하 버전의 Opus 오디오 디코딩 경로에서 버퍼 크기 검증이 부족하여 힙 버퍼 오버플로우가 발생합니다. FEC 디코드 버퍼는 PCM 기반 공식으로 할당되어, 인코딩된 프레임이 이를 초과하면 입력 크기만큼 무검증으로 복사되어 메모리가 손상됩니다.

💡 쉬운 설명

음성 통신 프로그램이 특정 오디오 데이터를 처리할 때 메모리 공간을 넘어서 데이터를 쓰게 되는 문제입니다. 이를 악용하면 프로그램이 비정상 종료되거나 공격자가 임의의 코드를 실행할 수 있습니다.

🇺🇸 원문 (English)

PJSIP is a free and open source multimedia communication library written in C. In 2.16 and earlier, there is a buffer overflow when decoding Opus audio frames due to insufficient buffer size validation in the Opus codec decode path. The FEC decode buffers (dec_frame[].buf) were allocated based on a PCM-derived formula: (sample_rate/1000) * 60 * channel_cnt * 2. At 8 kHz mono this yields only 960 bytes, but codec_parse() can output encoded frames up to MAX_ENCODED_PACKET_SIZE (1280) bytes via opus_repacketizer_out_range(). The three pj_memcpy() calls in codec_decode() copied input->size bytes without bounds checking, causing a heap buffer overflow.

📍 영향받는 시스템

PJSIP 2.16 이하 버전을 사용하는 VoIP/SIP 애플리케이션 및 시스템

⚔️ 공격 벡터

악의적으로 조작된 Opus 인코딩 오디오 패킷을 SIP/RTP 통신을 통해 대상 시스템에 전송

🛡️ 대응 방법

PJSIP를 2.16보다 높은 패치 버전으로 업데이트하고 의존 애플리케이션을 재빌드하여 배포

🔧 검증 코드

출력된 버전이 2.16 이하이면 취약하며, 2.16보다 높은 버전이 표시되면 패치된 상태이고 버전 정보가 없으면 설치 경로를 수동으로 확인해야 합니다.

Shell / Script
pkg-config --modversion libpjproject 2>/dev/null || (find / -name 'pjsip*' -o -name 'libpjproject*' 2>/dev/null | head -5)

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Magento Open Source