{"id":"CVE-2026-40614","aliases":["ALPINE-CVE-2026-40614","DEBIAN-CVE-2026-40614","EUVD-2026-24229","GHSA-j59p-4xrr-fp8g","UBUNTU-CVE-2026-40614"],"status":"published","title":"PJSIP: Heap buffer overflow in Opus codec decoding","description":"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-\u003esize bytes without bounds checking, causing a heap buffer overflow.","severity":{"version":"4.0","score":8.5,"vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-11","score":0.00224,"percentile":0.13198,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-122"],"published":"2026-04-21T18:04:15Z","modified":"2026-10-28T11:13:13Z","fixes":[{"ecosystem":"Alpine:v3.24","package":"pjproject","fixed_in":["2.17-r0"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"asterisk","fixed_in":["1:22.10.0+dfsg+~cs6.17.60671434-1"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Alpine:v3.24","package":"pjproject","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.17-r0"}]}]},{"source":"osv","ecosystem":"Debian:14","package":"asterisk","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1:22.10.0+dfsg+~cs6.17.60671434-1"}]}],"versions":["0.1.11-3","0.1.11-3woody1","1:1.0.5-2","1:1.0.5-4","1:1.0.6-1","1:1.0.6-2","1:1.0.7-1","1:1.0.7.dfsg.1-1","1:1.0.7.dfsg.1-2","1:1.0.7.dfsg.1-2sarge1","1:1.0.7.dfsg.1-2sarge2","1:1.0.7.dfsg.1-2sarge3","1:1.0.7.dfsg.1-2sarge4","1:1.0.7.dfsg.1-2sarge5","1:1.0.7.dfsg.1-2sarge6","1:1.0.9.dfsg-1","1:1.0.9.dfsg-3","1:1.0.9.dfsg-4","1:1.0.9.dfsg-5","1:1.0.9.dfsg-6","1:1.2.0-beta1.dfsg-1","1:1.2.0-beta2.dfsg-1","1:1.2.0-beta2.dfsg-2","1:1.2.0-beta2.dfsg-3","1:1.2.0-rc1.dfsg-1","1:1.2.0-rc2.dfsg-1","1:1.2.0.dfsg-1","1:1.2.0.dfsg-2","1:1.2.0.dfsg-3","1:1.2.0.dfsg-4","1:1.2.0.dfsg-5","1:1.2.0.dfsg-6","1:1.2.1.dfsg-1","1:1.2.1.dfsg-2","1:1.2.1.dfsg-3","1:1.2.10.dfsg-1","1:1.2.10.dfsg-1bpo1","1:1.2.10.dfsg-2","1:1.2.10.dfsg-3","1:1.2.11.dfsg-1","1:1.2.12.1.dfsg-1","1:1.2.13~dfsg-1","1:1.2.13~dfsg-2","1:1.2.13~dfsg-2etch1","1:1.2.13~dfsg-2etch2","1:1.2.13~dfsg-2etch3","1:1.2.13~dfsg-2etch4","1:1.2.14~dfsg-1","1:1.2.14~dfsg-2","1:1.2.14~dfsg-3","1:1.2.14~dfsg-4","1:1.2.15~dfsg-1","1:1.2.16~dfsg-1","1:1.2.17~dfsg-1","1:1.2.4.dfsg-1","1:1.2.4.dfsg-2","1:1.2.4.dfsg-3","1:1.2.4.dfsg-4","1:1.2.4.dfsg-5","1:1.2.4.dfsg-6","1:1.2.4.dfsg-6+b1","1:1.2.4.dfsg-7","1:1.2.7.1.dfsg-1","1:1.2.7.1.dfsg-2","1:1.2.7.1.dfsg-3","1:1.2.9.1.dfsg-1","1:1.4.10~dfsg-1","1:1.4.11~dfsg-1","1:1.4.11~dfsg-2","1:1.4.11~dfsg-3","1:1.4.11~dfsg-4","1:1.4.13~dfsg-1","1:1.4.15~dfsg-1","1:1.4.16.2~dfsg-1","1:1.4.16.2~dfsg-2","1:1.4.17~dfsg-1","1:1.4.17~dfsg-2","1:1.4.18.1~dfsg-1","1:1.4.18~dfsg-1","1:1.4.19.1~dfsg-1","1:1.4.20~dfsg-1","1:1.4.21.1~dfsg-1","1:1.4.21.2~dfsg-1","1:1.4.21.2~dfsg-2","1:1.4.21.2~dfsg-3","1:1.4.21.2~dfsg-3+lenny1","1:1.4.21.2~dfsg-3+lenny2","1:1.4.21.2~dfsg-3+lenny2.1","1:1.4.21.2~dfsg-3+lenny3","1:1.4.21.2~dfsg-3+lenny5","1:1.4.21.2~dfsg-3+lenny6","1:1.4.21.2~dfsg-3.1","1:1.4.2~dfsg-1","1:1.4.2~dfsg-2","1:1.4.2~dfsg-3","1:1.4.2~dfsg-4","1:1.4.2~dfsg-5","1:1.4.3~dfsg-1","1:1.4.4~dfsg-1","1:1.4.4~dfsg-2","1:1.4.4~dfsg-3","1:1.4.5~dfsg-1","1:1.4.6~dfsg-1","1:1.4.8~dfsg-1","1:1.4.8~dfsg-2","1:1.4.9~dfsg-1","1:1.6.1.0~dfsg-1","1:1.6.1.0~dfsg~rc3-1","1:1.6.2.0-1","1:1.6.2.0~dfsg~beta3-1","1:1.6.2.0~dfsg~rc1-1","1:1.6.2.0~rc3-1","1:1.6.2.0~rc3-2","1:1.6.2.0~rc6-1","1:1.6.2.0~rc7-1","1:1.6.2.2-1","1:1.6.2.6-1","1:1.6.2.7-1","1:1.6.2.9-1","1:1.6.2.9-1~bpo50+1","1:1.6.2.9-1~bpo50+2","1:1.6.2.9-1~bpo50+3","1:1.6.2.9-2","1:1.6.2.9-2+squeeze1","1:1.6.2.9-2+squeeze10","1:1.6.2.9-2+squeeze11","1:1.6.2.9-2+squeeze12","1:1.6.2.9-2+squeeze2","1:1.6.2.9-2+squeeze3","1:1.6.2.9-2+squeeze4","1:1.6.2.9-2+squeeze5","1:1.6.2.9-2+squeeze6","1:1.6.2.9-2+squeeze7","1:1.6.2.9-2+squeeze8","1:1.6.2.9-2+squeeze9","1:1.8.10.0~dfsg-1","1:1.8.10.1~dfsg-1","1:1.8.11.1~dfsg-1","1:1.8.13.0~dfsg-1","1:1.8.13.0~dfsg-1~bpo60+1","1:1.8.13.1~dfsg-1","1:1.8.13.1~dfsg-1+powerpcspe1","1:1.8.13.1~dfsg-1~bpo60+1","1:1.8.13.1~dfsg-2","1:1.8.13.1~dfsg-3","1:1.8.3.3-1","1:1.8.4-1","1:1.8.4.2-1","1:1.8.4.3-1","1:1.8.4.4~dfsg-1","1:1.8.4.4~dfsg-2","1:1.8.7.1~dfsg-1","1:1.8.7.1~dfsg-2","1:1.8.7.1~dfsg-3","1:1.8.8.0~dfsg-1","1:1.8.8.2~dfsg-1","1:11.10.0~dfsg-1","1:11.10.0~dfsg-1~bpo70+1","1:11.10.2~dfsg-1","1:11.10.2~dfsg-1~bpo70+1","1:11.11.0~dfsg-1","1:11.11.0~dfsg-1~bpo70+1","1:11.11.0~dfsg-2","1:11.12.0~dfsg-1","1:11.12.0~dfsg-1~bpo70+1","1:11.12.1~dfsg-1","1:11.13.0~dfsg-1","1:11.13.0~dfsg-1~bpo70+1","1:11.13.1~dfsg-1","1:11.13.1~dfsg-2","1:11.13.1~dfsg-2~bpo70+1","1:11.5.1~dfsg-1","1:11.5.1~dfsg-2","1:11.5.1~dfsg1-1","1:11.5.1~dfsg1-1~bpo70+1","1:11.6.0~dfsg-1","1:11.6.0~dfsg-2","1:11.6.0~dfsg-3","1:11.7.0~dfsg-1","1:11.7.0~dfsg-1+e1","1:11.7.0~dfsg-1~bpo70+1","1:11.8.0~dfsg-1","1:11.8.0~dfsg-2","1:11.8.1~dfsg-1","1:11.8.1~dfsg-1~bpo70+1","1:11.9.0~dfsg-1","1:11.9.0~dfsg-2","1:11.9.0~dfsg-2~bpo70+1","1:13.0.0~dfsg-1","1:13.0.0~dfsg-2","1:13.1.0~dfsg-1","1:13.1.0~dfsg-1.1","1:13.10.0~dfsg-1","1:13.11.2~dfsg-1","1:13.12.1~dfsg-1","1:13.12.2~dfsg-1","1:13.12.2~dfsg-2","1:13.13.1~dfsg-1","1:13.13.1~dfsg-2","1:13.13.1~dfsg-3","1:13.13.1~dfsg-3~exp1","1:13.13.1~dfsg-4","1:13.14.0~dfsg-1","1:13.14.0~dfsg-1~exp1","1:13.14.1~dfsg-1","1:13.14.1~dfsg-2","1:13.17.0~dfsg-1","1:13.17.0~dfsg-2","1:13.17.1~dfsg-1","1:13.17.2~dfsg-1","1:13.17.2~dfsg-2","1:13.18.1~dfsg-1","1:13.18.3~dfsg-1","1:13.18.5~dfsg-1","1:13.20.0~dfsg-1","1:13.22.0~dfsg-1","1:13.22.0~dfsg-2","1:13.23.1~dfsg-1","1:13.23.1~dfsg-2","1:13.7.2~dfsg-1","1:13.8.0~dfsg-1","1:13.8.2~dfsg-1","1:13.9.1~dfsg-1","1:13.9.1~dfsg-2","1:16.1.0~dfsg-1","1:16.1.0~dfsg-2","1:16.1.0~dfsg-3","1:16.1.0~dfsg-4","1:16.1.1~dfsg-1","1:16.10.0~dfsg-1","1:16.12.0~dfsg-1","1:16.15.0~dfsg-1","1:16.15.1~dfsg-1","1:16.16.1~dfsg+~2.10-1","1:16.16.1~dfsg+~2.10-2","1:16.16.1~dfsg-1","1:16.16.1~dfsg-1~bpo10+1","1:16.16.1~dfsg-2","1:16.16.1~dfsg-3","1:16.16.1~dfsg-4","1:16.2.0~dfsg-1","1:16.2.1~dfsg-1","1:16.2.1~dfsg-2","1:16.23.0~dfsg+~2.10-1","1:16.23.0~dfsg+~cs6.10.20220309-1","1:16.23.0~dfsg+~cs6.10.20220309-2","1:16.23.0~dfsg+~cs6.10.40431411-1","1:18.10.0~dfsg+~cs6.10.40431411-1","1:18.10.0~dfsg+~cs6.10.40431411-2","1:18.10.1~dfsg+~cs6.10.40431411-1","1:18.11.1~dfsg+~cs6.10.40431413-1","1:18.11.2~dfsg+~cs6.10.40431413-1","1:18.12.0~dfsg+~cs6.12.40431413-1","1:18.14.0~dfsg+~cs6.12.40431414-1","1:18.14.0~~rc1~dfsg+~cs6.12.40431414-1","1:18.9.0~dfsg+~cs6.10.40431411-1","1:20.0.0~dfsg+~cs6.12.40431414-1","1:20.0.0~dfsg+~cs6.12.40431414-2","1:20.0.0~~rc1~dfsg+~cs6.12.40431414-1","1:20.0.0~~rc2~dfsg+~cs6.12.40431414-1","1:20.0.1~dfsg+~cs6.12.40431414-1","1:20.1.0~dfsg+~cs6.12.40431414-1","1:20.1.0~~rc2~dfsg+~cs6.12.40431414-1","1:20.2.1~dfsg+~cs6.13.40431413-1","1:20.3.0~dfsg+~cs6.13.40431413-1","1:20.4.0~dfsg+~cs6.13.40431414-1","1:20.4.0~dfsg+~cs6.13.40431414-2","1:20.5.0~dfsg+~cs6.13.40431414-1","1:20.5.1~dfsg+~cs6.13.40431414-1","1:20.5.2~dfsg+~cs6.13.40431414-1","1:20.6.0~dfsg+~cs6.13.40431414-1","1:20.6.0~dfsg+~cs6.13.40431414-2","1:20.8.1~dfsg+~cs6.14.40431414-1","1:20.9.3~dfsg+~cs6.14.60671435-1","1:22.0.0~dfsg+~cs6.14.60671435-1","1:22.0.0~~rc2~dfsg+~cs6.14.60671435-1","1:22.1.0~dfsg+~cs6.14.60671435-1","1:22.1.1~dfsg+~cs6.14.60671435-1","1:22.2.0~dfsg+~cs6.15.60671435-1","1:22.2.0~dfsg+~cs6.15.60671435-2","1:22.3.0~dfsg+~cs6.15.60671435-1","1:22.3.0~~rc1~dfsg+~cs6.15.60671435-1","1:22.4.1~dfsg+~cs6.15.60671435-1","1:22.4.1~dfsg+~cs6.15.60671435-2","1:22.5.1~dfsg+~cs6.15.60671435-1","1:22.5.2~dfsg+~cs6.15.60671435-1","1:22.6.0~dfsg+~cs6.15.60671435-1","1:22.7.0~dfsg+~cs6.15.60671435-1","1:22.8.0+dfsg+~cs6.15.60671435-1","1:22.8.2+dfsg+~cs6.15.60671435-1","1:22.9.0+dfsg+~cs6.16.60671434-1"]},{"source":"osv","ecosystem":"Ubuntu:Pro:16.04:LTS","package":"asterisk","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1:13.1.0~dfsg-1.1ubuntu3","1:13.1.0~dfsg-1.1ubuntu4","1:13.1.0~dfsg-1.1ubuntu4.1","1:13.1.0~dfsg-1.1ubuntu4.1+esm1"]},{"source":"osv","ecosystem":"Ubuntu:Pro:16.04:LTS","package":"pjproject","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.1.0.0.ast20130823-1","2.1.0.0.ast20130823-1+deb8u1build0.16.04.1","2.1.0.0.ast20130823-1+deb8u1ubuntu0.1~esm1"]},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"asterisk","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1:13.17.2~dfsg-1ubuntu1","1:13.17.2~dfsg-2ubuntu1","1:13.18.1~dfsg-1ubuntu1","1:13.18.3~dfsg-1ubuntu1","1:13.18.3~dfsg-1ubuntu2","1:13.18.3~dfsg-1ubuntu3","1:13.18.3~dfsg-1ubuntu4"]},{"source":"osv","ecosystem":"Ubuntu:Pro:18.04:LTS","package":"pjproject","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.6~dfsg-2","2.7~dfsg-1","2.7.1~dfsg-1","2.7.1~dfsg-1build1","2.7.2~dfsg-1","2.7.2~dfsg-1ubuntu0.1~esm1"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"asterisk","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1:16.2.1~dfsg-2build2","1:16.2.1~dfsg-2build3","1:16.2.1~dfsg-2ubuntu1"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"asterisk","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1:16.16.1~dfsg-2","1:16.16.1~dfsg-4","1:16.16.1~dfsg-4build1","1:16.16.1~dfsg+~2.10-1","1:18.10.0~dfsg+~cs6.10.40431411-2"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"asterisk","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1:20.4.0~dfsg+~cs6.13.40431414-2","1:20.5.0~dfsg+~cs6.13.40431414-1","1:20.5.1~dfsg+~cs6.13.40431414-1","1:20.5.2~dfsg+~cs6.13.40431414-1","1:20.6.0~dfsg+~cs6.13.40431414-1","1:20.6.0~dfsg+~cs6.13.40431414-2","1:20.6.0~dfsg+~cs6.13.40431414-2build3","1:20.6.0~dfsg+~cs6.13.40431414-2build4","1:20.6.0~dfsg+~cs6.13.40431414-2build5"]},{"source":"osv","ecosystem":"Ubuntu:25.10","package":"asterisk","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1:22.2.0~dfsg+~cs6.15.60671435-2","1:22.3.0~dfsg+~cs6.15.60671435-1","1:22.4.1~dfsg+~cs6.15.60671435-1","1:22.4.1~dfsg+~cs6.15.60671435-2","1:22.5.1~dfsg+~cs6.15.60671435-1","1:22.5.2~dfsg+~cs6.15.60671435-1"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"asterisk","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1:22.5.2~dfsg+~cs6.15.60671435-1","1:22.10.0+dfsg+~cs6.17.60671434-1ubuntu2","1:22.10.0+dfsg+~cs6.17.60671434-1ubuntu3"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"asterisk","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1:22.5.2~dfsg+~cs6.15.60671435-1"]}],"products":[{"vendor":"pjsip","product":"pjproject"},{"vendor":"pjsip","product":"pjsip"}],"references":[{"url":"https://github.com/pjsip/pjproject/security/advisories/GHSA-j59p-4xrr-fp8g","tags":["x_refsource_CONFIRM","Patch","Vendor Advisory","advisory","report"]},{"url":"https://github.com/pjsip/pjproject/commit/17897e835818f8ee03b1806ddcd7b95ea16d2c0e","tags":["x_refsource_MISC","Patch","fix","report"]},{"url":"https://security.alpinelinux.org/vuln/CVE-2026-40614","tags":["advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/40xxx/CVE-2026-40614.json","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-40614","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-40614","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2026-40614","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-40614","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2026-40614","title":"PJSIP: Heap buffer overflow in Opus codec decoding","description":"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-\u003esize bytes without bounds checking, causing a heap buffer overflow.","status":"published","published":"2026-04-21T18:04:15.159Z","modified":"2026-04-22T13:33:23.816Z","cvss":[{"version":"4.0","score":8.5,"vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high","assessor":"cna"}],"cwes":["CWE-122"],"updated_at":"2026-11-02T13:43:11.445168Z"}],"euvd":[{"id":"EUVD-2026-24229","description":"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-\u003esize bytes without bounds checking, causing a heap buffer overflow.","status":"published","published":"2026-04-21T18:04:15Z","modified":"2026-04-22T13:33:23Z","cvss":[{"version":"4.0","score":8.5,"vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high"}],"updated_at":"2026-11-02T19:24:20.71791Z"}],"nvd":[{"id":"CVE-2026-40614","description":"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-\u003esize bytes without bounds checking, causing a heap buffer overflow.","status":"published","published":"2026-04-21T19:16:17.88Z","modified":"2026-10-26T21:10:00.17Z","cvss":[{"version":"4.0","score":8.5,"vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","level":"high","assessor":"secondary"},{"version":"3.1","score":8.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","level":"high","assessor":"primary"}],"cwes":["CWE-122"],"updated_at":"2026-11-02T14:12:15.493943Z"}],"osv":[{"id":"ALPINE-CVE-2026-40614","description":"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-\u003esize bytes without bounds checking, causing a heap buffer overflow.","status":"published","published":"2026-04-21T19:16:17.88Z","modified":"2026-10-01T02:17:49.279214954Z","cvss":[{"version":"3.1","score":8.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T15:27:50.764331Z"},{"id":"CVE-2026-40614","title":"PJSIP: Heap buffer overflow in Opus codec decoding","description":"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-\u003esize bytes without bounds checking, causing a heap buffer overflow.","status":"published","published":"2026-04-21T18:04:15.159Z","modified":"2026-10-28T11:13:13.802451022Z","cvss":[{"version":"4.0","score":8.5,"vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high"}],"cwes":["CWE-122"],"updated_at":"2026-11-02T15:45:03.424067Z"},{"id":"DEBIAN-CVE-2026-40614","description":"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-\u003esize bytes without bounds checking, causing a heap buffer overflow.","status":"published","published":"2026-04-21T19:16:17.88Z","modified":"2026-10-27T09:47:30.669996234Z","cvss":[{"version":"3.1","score":8.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T15:45:54.892385Z"},{"id":"UBUNTU-CVE-2026-40614","description":"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-\u003esize bytes without bounds checking, causing a heap buffer overflow.","status":"published","published":"2026-04-21T19:16:00Z","modified":"2026-10-17T12:58:14.200057325Z","cvss":[{"version":"4.0","score":8.5,"vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high"},{"version":"3.1","score":8.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T16:56:16.686388Z"}]}}
