CVE-2026-0719CVE-2026-0719是libsoup HTTP库中的一个高危安全漏洞。该漏洞存在于NTLM(NT LAN Manager)身份认证处理机制中。当libsoup处理包含极长密码的NTLM认证请求时,由于内部大小计算使用了不当的有符号整数类型,导致整数溢出问题。这一溢出使得库在栈上分配了错误大小的内存缓冲区,随后进行不安全的内存复制操作,最终可能触发栈缓冲区溢出或内存损坏。攻击者无需任何认证或用户交互,即可通过网络远程触发此漏洞,导致使用libsoup的GNOME桌面环境及其他应用程序意外崩溃,造成拒绝服务(DoS)风险。该漏洞CVSS评分8.6,属于高危级别,对系统可用性造成严重影响。
漏洞根源在于libsoup库在处理NTLM认证时,对密码长度的计算使用了有符号整数(int)而非无符号整数(size_t)。当密码长度超过有符号整数的最大值(INT_MAX,约2GB)时,会发生整数溢出,导致计算结果变成负数。这个负数随后被用作内存分配大小参数,由于malloc等内存分配函数接受无符号参数,负数会被解释为一个巨大的正数,导致分配过小的缓冲区。随后进行memcpy或类似内存复制操作时,会向这个过小的缓冲区写入大量数据,造成栈缓冲区溢出。攻击者只需构造一个包含超长密码字段的恶意NTLM认证请求,并通过网络发送给使用libsoup的客户端应用即可触发漏洞。成功利用后可导致目标应用崩溃、执行流被破坏或执行任意代码(理论上)。