CVE-2026-32849NetBSD系统在`cryptodev_op()`函数中存在一处有符号整数溢出漏洞。该漏洞源于局部变量`iov_len`被声明为有符号整型,却直接从无符号的`cop->dst_len`赋值。当输入的`dst_len`值超过`INT_MAX`时,会触发整数溢出及未定义行为。拥有低权限的本地攻击者若能访问`/dev/crypto`并使用压缩会话,即可通过构造特定参数触发内核恐慌,导致系统拒绝服务。
该漏洞位于NetBSD内核源码文件`sys/opencrypto/cryptodev.c`的`cryptodev_op()`函数中。核心问题在于类型不匹配:局部变量`iov_len`被声明为`signed int`(有符号整型),但在赋值操作中直接接收了结构体成员`cop->dst_len`(无符号类型)的值。当攻击者利用`/dev/crypto`设备接口并启用压缩会话类型时,若传入一个大于`INT_MAX`(即2147483647)的`dst_len`值,便会触发有符号整数溢出。这将导致后续代码执行未定义行为,具体表现为UIO指针运算损坏及NULL指针解引用。在`CONFIG_SVS`安全特性未启用的环境下,此漏洞可被利用直接触发内核恐慌,导致系统崩溃及拒绝服务。