CVE-2026-31677Linux内核中的crypto/af_alg组件存在资源管理漏洞。af_alg_get_rsgl()函数在提取RX分散列表(SG)数据时,未根据剩余的接收缓冲区预算进行限制,仅使用af_alg_readable()作为门控。这导致接收端计费与实际附加到请求的数据量不匹配。当skcipher无法获取足够的RX空间处理数据块时,系统可能拒绝recvmsg调用,影响系统可用性。
该漏洞位于Linux内核的crypto子系统,具体涉及af_alg模块的接收逻辑。正常情况下,af_alg_get_rsgl()应确保提取的数据量不超过af_alg_rcvbuf(sk)定义的接收缓冲区预算。然而,由于缺少对剩余预算的严格限制,攻击者可以通过精心构造的数据流利用此缺陷。当skcipher(对称密钥密码接口)在处理数据时,如果无法为至少一个数据块获取足够的RX空间,旧逻辑会尝试将请求长度向下舍入为零,而不是正确处理错误。这种逻辑缺陷可能导致内存计费混乱,进而被利用造成拒绝服务攻击。