CVE-2026-40892PJSIP是一个开源多媒体通信库。在其2.16及更早版本中,存在一个严重的栈缓冲区溢出漏洞。该漏洞触发于`pjsip_auth_create_digest2()`函数处理预计算摘要凭证时。由于未对输入长度进行校验,攻击者可通过发送特制的数据包导致缓冲区溢出。由于此漏洞无需认证且利用难度低,攻击者可借此远程执行任意代码或导致服务拒绝,对系统安全构成极高威胁。
漏洞根源在于PJSIP库中`pjsip_auth_create_digest2()`函数处理预计算摘要凭证时的逻辑缺陷。当系统配置使用`PJSIP_CRED_DATA_DIGEST`时,该函数被调用以验证身份。代码直接引用`cred_info->data.slen`作为长度参数,将用户提供的凭证数据拷贝至固定大小为128字节的栈缓冲区`ha1`中。由于缺乏必要的边界检查,一旦输入数据的长度超过128字节,就会引发栈缓冲区溢出。攻击者可以通过精心构造恶意SIP消息或响应数据,利用此溢出覆盖栈上的返回地址或关键函数指针。鉴于CVSS评分为9.8,该漏洞允许未经身份验证的远程攻击者通过发起特制的网络请求,轻易导致目标服务崩溃,甚至可能劫持程序执行流以获取系统最高权限,造成严重的信息泄露和数据破坏。