GLSA-202210-37 : PJSIP:多个漏洞

critical Nessus 插件 ID 166740

语言:

描述

远程主机会受到 GLSA-202210-37 中所述漏洞的影响(PJSIP:多个漏洞)

- PJSIP 是用 C 语言编写的免费开源多媒体通信库,实现基于标准的协议,例如 SIP、SDP、RTP、STUN、TURN 和 ICE。在 PJSIP 2.11.1 之前版本的 SSL 套接字中发现一些问题。首先,callback 和 destroy 之间存在争用条件,这是因为已接受的套接字不含组锁所致。第二,SSL 套接字父级/监听器可能会在握手期间遭到破坏。据报告,这两个问题在重负载 TLS 连接中间歇性发生。它们会造成崩溃,从而导致拒绝服务。这些问题已在版本 2.11.1 中得到修复。(CVE-2021-32686)

- PJSIP 是用 C 语言编写的免费开源多媒体通信库,实现基于标准的协议,例如 SIP、SDP、RTP、STUN、TURN 和 ICE。在受影响版本中,如果传入的 STUN 消息包含 ERROR-CODE 属性,则在执行减法操作前不会检查标头长度,继而有可能导致整数下溢情形。此问题会影响所有使用 STUN 的用户。位于受害者网络内的恶意执行者可能会伪造并发送特别构建的 UDP (STUN) 消息,继而可能在受害者的计算机上远程执行任意代码。建议用户尽快升级。没有已知的变通方案。(CVE-2021-37706)

- PJSIP 是用 C 语言编写的免费开源多媒体通信库,实现基于标准的协议,例如 SIP、SDP、RTP、STUN、TURN 和 ICE。在 PJSIP 的各个部分中,当发生错误/失败时,函数未释放当前持有的锁便已经返回。
这可导致系统死锁,进而造成用户拒绝服务。尚未发布包含所链接修复提交的版本。包括 2.11.1 之前的所有版本都会受到影响。用户可能需要手动应用补丁。(CVE-2021-41141)

- PJSIP 是用 C 语言编写的免费开源多媒体通信库,实现基于标准的协议,例如 SIP、SDP、RTP、STUN、TURN 和 ICE。在受影响版本中,如果传入的 RTCP BYE 消息包含原因长度,则不会针对实际接收到的数据包大小检查此声明长度,从而可能导致越界读取访问问题。此问题会影响所有使用 PJMEDIA 和 RTCP 的用户。恶意执行者可发送包含无效原因长度的 RTCP BYE 消息。
建议用户尽快升级。没有已知的变通方案。(CVE-2021-43804)

- PJSIP 是一个免费开源多媒体通信库。在 2.11.1 及之前版本中,如果传入的 RTCP XR 消息包含区块,则不会针对接收到的数据包大小检查数据字段,继而有可能导致越界读取访问问题。此问题会影响所有使用 PJMEDIA 和 RTCP 的用户。恶意执行者可发送包含无效数据包大小的 RTCP XR 消息。(CVE-2021-43845)

- PJSIP 是用 C 语言编写的免费开源多媒体通信库,实现基于标准的协议,例如 SIP、SDP、RTP、STUN、TURN 和 ICE。在 2.11.1 版及之前版本中,某些传入的 RTP/RTCP 数据包可能会在多种情况下造成越界读取访问问题。此问题会影响所有使用 PJMEDIA 和接受传入 RTP/RTCP 的用户。可以在 `master` 分支中提交补丁。没有已知的变通方案。(CVE-2022-21722)

- PJSIP 是用 C 语言编写的免费开源多媒体通信库,实现基于标准的协议,例如 SIP、SDP、RTP、STUN、TURN 和 ICE。在 2.11.1 及之前版本中,解析包含畸形分段的传入 SIP 消息可能会造成越界读取访问问题。此问题影响接受 SIP 分段的所有 PJSIP 用户。可以在 `master` 分支中提交补丁。没有已知的变通方案。(CVE-2022-21723)

- PJSIP 是用 C 语言编写的免费开源多媒体通信库,实现基于标准的协议,例如 SIP、SDP、RTP、STUN、TURN 和 ICE。在 2.11.1 及之前版本中,当处于对话集(或分支)情况下,由多个 UAC 对话共享的哈希密钥可能会因其中一个对话遭到破坏而被过早释放。该问题可能导致在哈希表中多次注册对话框集(使用不同的哈希密钥),从而导致未定义的行为,例如最终将导致死循环的对话框列表冲突。db3235953baa56d2fb0e276ca510fefca751643f 提交中包含一个将在下个版本中引入的补丁。目前尚无针对此问题的解决方案。(CVE-2022-23608)

- PJSIP 是一个以 C 语言编写的免费开源多媒体通信库。PJSIP 2.12 及之前版本中存在一个堆栈缓冲区溢出漏洞,但此漏洞仅会影响接受哈希摘要凭据(具有 data_type `PJSIP_CRED_DATA_DIGEST`)的 PJSIP 用户。此问题已在 PJSIP 存储库的主分支中进行修补,并将包含在下个版本中。
无法升级的用户需要先检查哈希摘要数据长度是否必须等于“PJSIP_MD5STRLEN”,然后再将其传递到 PJSIP。(CVE-2022-24754)

- PJSIP 是一个以 C 语言编写的免费开源多媒体通信库。 2.12 和之前版本中包含的一个漏洞会影响在其应用程序中使用 PJSIP XML 解析的 PJSIP 用户。因此,建议用户进行更新。没有已知的变通方案。(CVE-2022-24763)

- PJSIP 是以 C 语言编写的免费开源多媒体通信库。2.12 及之前版本中包含一个堆栈缓冲区溢出漏洞,该漏洞会影响 PJSUA2 用户或者调用 API `pjmedia_sdp_print()、pjmedia_sdp_media_print()` 的用户。不使用 PJSUA2 且不直接调用 `pjmedia_sdp_print()` 或 `pjmedia_sdp_media_print()` 的应用程序不应受到影响。“pjsip/pjproject”GitHub 存储库的“master”分支上提供补丁。目前没有任何已知的解决方法。
(CVE-2022-24764)

- PJSIP 是用 C 语言编写的免费开源多媒体通信库。PJSIP 版本 2.12 及更早版本不解析传入的 RTCP 反馈 RPSI(参考图片选择指示),但任何直接使用 pjmedia_rtcp_fb_parse_rpsi() 的应用程序都将受到影响。“pjsip/pjproject”GitHub 存储库的“master”分支上提供补丁。目前没有任何已知的变通方案。
(CVE-2022-24786)

- PJSIP 是一个以 C 语言编写的免费开源多媒体通信库。拒绝服务漏洞会影响在 32 位系统上使用 PJSIP 2.12 和之前版本的应用程序,从而播放/读取无效的 WAV 文件。读取长度大于 31 位整数的 WAV 文件数据区块时会发生此漏洞。该漏洞不影响 64 位应用程序,也不应影响仅播放受信任 WAV 文件的应用程序。“pjsip/pjproject”GitHub 存储库的“master”分支上提供补丁。
有一种变通方案是,应用程序可以拒绝从未知来源接收的 WAV 文件,或一开始就验证此类文件。
(CVE-2022-24792)

- PJSIP 是一个以 C 语言编写的免费开源多媒体通信库。2.12 和之前版本中的缓冲区溢出漏洞会影响使用 PJSIP DNS 解析的应用程序。它不会影响使用外部解析器的 PJSIP 用户。“pjsip/pjproject”GitHub 存储库的“master”分支上提供补丁。有一种变通方案是,禁用 PJSIP 配置中的 DNS 解析(通过将“nameserver_count”设置为零)或使用外部解析器。(CVE-2022-24793)

- PJSIP 是用 C 语言编写的免费开源多媒体通信库,实现基于标准的协议,例如 SIP、SDP、RTP、STUN、TURN 和 ICE。在不高于 2.12.1 的版本中,一个堆栈缓冲区溢出漏洞会通过以下方式影响在其应用程序中使用 STUN 的 PJSIP 用户:在其 PJSUA/PJSUA2 级别的帐户/媒体配置中设置 STUN 服务器,或直接使用 `pjlib-util/stun_simple` API。commit 450baca 中有一个应该包含在下一版本中的修补程序。目前尚无针对此问题的解决方案。(CVE-2022-31031)

- PJSIP 是用 C 语言编写的免费开源多媒体通信库。在低于 2.13 的 PJSIP 版本中,PJSIP 解析器、PJMEDIA RTP 解码器和 PJMEDIA SDP 解析器受到缓冲区溢出漏洞的影响。连接到不受信任客户端的用户存在风险。此问题已修补,可作为主控分支中的 commit c4d3498,并将包含在版本 2.13 及更高版本中。建议用户升级。目前尚无针对此问题的解决方案。(CVE-2022-39244)

- PJSIP 是用 C 语言编写的免费开源多媒体通信库。处理某些数据包时,PJSIP 可能会在 SRTP 重新启动时错误地从使用 SRTP 媒体传输切换为使用基本 RTP,从而导致以不安全的方式发送媒体。该漏洞影响所有使用 SRTP 的 PJSIP 用户。
该修补程序在项目的主分支中以 commit d2acb9a 的形式呈现,并将包含在版本 2.13中。建议用户手动打补丁或升级。目前尚无针对此漏洞的变通方案。(CVE-2022-39269)

请注意,Nessus 尚未测试这些问题,而是只依据应用程序自我报告的版本号进行判断。

解决方案

所有 PJSIP 用户都应当升级到最新版本:

# emerge --sync # emerge --ask --oneshot --verbose >=net-libs/pjproject-2.12.1

另见

https://security.gentoo.org/glsa/202210-37

https://bugs.gentoo.org/show_bug.cgi?id=803614

https://bugs.gentoo.org/show_bug.cgi?id=829894

https://bugs.gentoo.org/show_bug.cgi?id=875863

插件详情

严重性: Critical

ID: 166740

文件名: gentoo_GLSA-202210-37.nasl

版本: 1.3

类型: local

发布时间: 2022/10/31

最近更新时间: 2023/10/6

支持的传感器: Nessus

风险信息

VPR

风险因素: Medium

分数: 6.7

CVSS v2

风险因素: High

基本分数: 9.3

时间分数: 7.3

矢量: CVSS2#AV:N/AC:M/Au:N/C:C/I:C/A:C

CVSS 分数来源: CVE-2021-37706

CVSS v3

风险因素: Critical

基本分数: 9.8

时间分数: 8.8

矢量: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

时间矢量: CVSS:3.0/E:P/RL:O/RC:C

CVSS 分数来源: CVE-2022-39244

漏洞信息

CPE: p-cpe:/a:gentoo:linux:pjproject, cpe:/o:gentoo:linux

必需的 KB 项: Host/local_checks_enabled, Host/Gentoo/release, Host/Gentoo/qpkg-list

可利用: true

易利用性: Exploits are available

补丁发布日期: 2022/10/31

漏洞发布日期: 2021/7/23

参考资料信息

CVE: CVE-2021-32686, CVE-2021-37706, CVE-2021-41141, CVE-2021-43804, CVE-2021-43845, CVE-2022-21722, CVE-2022-21723, CVE-2022-23608, CVE-2022-24754, CVE-2022-24763, CVE-2022-24764, CVE-2022-24786, CVE-2022-24792, CVE-2022-24793, CVE-2022-31031, CVE-2022-39244, CVE-2022-39269