中危 bpf:修复 32 位架构上的 DEVMAP_HASH 溢出检查 (CVE-2024-26885)

CVE编号

CVE-2024-26885

利用情况

暂无

补丁情况

官方补丁

披露时间

2024-04-17
漏洞描述
In the Linux kernel, the following vulnerability has been resolved:

bpf: Fix DEVMAP_HASH overflow check on 32-bit arches

The devmap code allocates a number hash buckets equal to the next power
of two of the max_entries value provided when creating the map. When
rounding up to the next power of two, the 32-bit variable storing the
number of buckets can overflow, and the code checks for overflow by
checking if the truncated 32-bit value is equal to 0. However, on 32-bit
arches the rounding up itself can overflow mid-way through, because it
ends up doing a left-shift of 32 bits on an unsigned long value. If the
size of an unsigned long is four bytes, this is undefined behaviour, so
there is no guarantee that we'll end up with a nice and tidy 0-value at
the end.

Syzbot managed to turn this into a crash on arm32 by creating a
DEVMAP_HASH with max_entries > 0x80000000 and then trying to update it.
Fix this by moving the overflow check to before the rounding up
operation.
解决建议
建议您更新当前系统或软件至最新版,完成漏洞的修复。
受影响软件情况
# 类型 厂商 产品 版本 影响面
1
运行在以下环境
系统 debian_10 linux * Up to
(excluding)
4.19.304-1
运行在以下环境
系统 debian_12 linux * Up to
(excluding)
6.1.85-1
运行在以下环境
系统 linux linux_kernel * From
(including)
5.11
Up to
(excluding)
5.15.153
运行在以下环境
系统 linux linux_kernel * From
(including)
5.16
Up to
(excluding)
6.1.83
运行在以下环境
系统 linux linux_kernel * From
(including)
5.4
Up to
(excluding)
5.10.214
运行在以下环境
系统 linux linux_kernel * From
(including)
6.2
Up to
(excluding)
6.6.23
运行在以下环境
系统 linux linux_kernel * From
(including)
6.7
Up to
(excluding)
6.7.11
运行在以下环境
系统 linux linux_kernel * From
(including)
6.8
Up to
(excluding)
6.8.2
阿里云评分
6.5
  • 攻击路径
    本地
  • 攻击复杂度
    复杂
  • 权限要求
    普通权限
  • 影响范围
    越权影响
  • EXP成熟度
    未验证
  • 补丁情况
    官方补丁
  • 数据保密性
    无影响
  • 数据完整性
    无影响
  • 服务器危害
    无影响
  • 全网数量
    N/A
CWE-ID 漏洞类型
CWE-119 内存缓冲区边界内操作的限制不恰当
阿里云安全产品覆盖情况