IPBUF安全漏洞报告
English
CVE-2025-71085 CVSS 5.5 中危

Linux内核calipso_skbuff_setattr整数溢出导致本地拒绝服务漏洞 (CVE-2025-71085)

披露日期: 2026-01-13
来源: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

漏洞信息

漏洞编号
CVE-2025-71085
漏洞类型
整数溢出/缓冲区错误
CVSS评分
5.5 中危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Linux Kernel

相关标签

Linux Kernel整数溢出CALIPSO拒绝服务本地攻击IPv6

漏洞概述

Linux内核中存在一个本地拒绝服务漏洞,该漏洞源于calipso_skbuff_setattr()函数中的整数溢出问题。当处理IPv6数据包的CALIPSO选项时,函数可能向skb_cow()传递超过INT_MAX的头部空间值,导致__skb_cow()中的隐式整数转换产生负数delta值,最终在pskb_expand_head()中触发BUG_ON断言,造成内核崩溃。本地攻击者可通过构造特制的IPv6数据包利用此漏洞,导致系统拒绝服务。

技术细节

漏洞位于net/core/skbuff.c的pskb_expand_head()函数第2232行,BUG_ON(nhead < 0)检查失败。根本原因在于__skb_cow()中的隐式整数转换:当headroom参数超过INT_MAX时,比较操作(headroom > skb_headroom(skb))虽然通过,但delta = headroom - skb_headroom(skb)计算结果为负数。这个负值被传递给pskb_expand_head(),导致内存分配失败并触发内核bug。攻击者可通过netlabelctl工具配置CALIPSO映射,然后发送包含特制CMSG头部选项的IPv6数据包来触发漏洞,导致系统崩溃。

攻击链分析

STEP 1
步骤1
使用netlabelctl工具配置CALIPSO映射,添加passdoi:7和地址映射
STEP 2
步骤2
构造包含特制CMSG头部选项的IPv6数据包,设置IPV6_HOPOPTS选项类型
STEP 3
步骤3
通过sendmsg()发送数据包,触发calipso_skbuff_setattr()中的整数溢出
STEP 4
步骤4
pskb_expand_head()接收到负数nhead值,触发BUG_ON导致内核崩溃

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
...

影响范围

Linux Kernel < 修复版本

防御指南

临时缓解措施
在生产环境中,如果不需要CALIPSO支持,可以通过内核配置禁用CALIPSO选项。同时,限制非特权用户对网络配置工具的访问可以减少攻击面。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表