目标达成 感谢每一位支持者 — 我们达成了 100% 目标!

目标: 1000 元 · 已筹: 1359 元

100%

CVE-2024-37354— Linux kernel安全漏洞

一分钟漏洞结论

影响对象
Linux Linux
利用判断
尚无明确在野利用证据,仍需结合暴露面评估
建议动作
优先检查厂商安全公告和参考链接中的修复版本;无法立即升级时,限制受影响服务暴露并加强监测。

Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于btrfs_set_item_key_safe函数发现重复密钥,从而导致崩溃。

CVSS 7.8 · High EPSS 0.17% · P6

影响版本矩阵 14

厂商产品 版本范围状态
Linux Linux 31d11b83b96faaee4bb514d375a09489117c3e8d< c993fd02ba471e296ca1996f13626fc917120158 affected
31d11b83b96faaee4bb514d375a09489117c3e8d< 1ff2bd566fbcefcb892be85c493bdb92b911c428 affected
31d11b83b96faaee4bb514d375a09489117c3e8d< 3d08c52ba1887a1ff9c179d4b6a18b427bcb2097 affected
31d11b83b96faaee4bb514d375a09489117c3e8d< f4e5ed974876c14d3623e04dc43d3e3281bc6011 affected
31d11b83b96faaee4bb514d375a09489117c3e8d< 9d274c19a71b3a276949933859610721a453946b affected
61a9f6b7fe0ca9706b49a23cecf5f9a9c802b6ce affected
4.14.57< 4.15 affected
4.17 affected
… +6 条更多
获取后续新漏洞提醒 登录后订阅

一、 漏洞 CVE-2024-37354 基础信息

漏洞信息

对漏洞内容有疑问?看看神龙的深度分析是否有帮助!
查看神龙十问 ↗

尽管我们使用了先进的大模型技术,但其输出仍可能包含不准确或过时的信息。神龙努力确保数据的准确性,但请您根据实际情况进行核实和判断。

Vulnerability Title
btrfs: fix crash on racing fsync and size-extending write into prealloc
来源: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: btrfs: fix crash on racing fsync and size-extending write into prealloc We have been seeing crashes on duplicate keys in btrfs_set_item_key_safe(): BTRFS critical (device vdb): slot 4 key (450 108 8192) new key (450 108 8192) ------------[ cut here ]------------ kernel BUG at fs/btrfs/ctree.c:2620! invalid opcode: 0000 [#1] PREEMPT SMP PTI CPU: 0 PID: 3139 Comm: xfs_io Kdump: loaded Not tainted 6.9.0 #6 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-2.fc40 04/01/2014 RIP: 0010:btrfs_set_item_key_safe+0x11f/0x290 [btrfs] With the following stack trace: #0 btrfs_set_item_key_safe (fs/btrfs/ctree.c:2620:4) #1 btrfs_drop_extents (fs/btrfs/file.c:411:4) #2 log_one_extent (fs/btrfs/tree-log.c:4732:9) #3 btrfs_log_changed_extents (fs/btrfs/tree-log.c:4955:9) #4 btrfs_log_inode (fs/btrfs/tree-log.c:6626:9) #5 btrfs_log_inode_parent (fs/btrfs/tree-log.c:7070:8) #6 btrfs_log_dentry_safe (fs/btrfs/tree-log.c:7171:8) #7 btrfs_sync_file (fs/btrfs/file.c:1933:8) #8 vfs_fsync_range (fs/sync.c:188:9) #9 vfs_fsync (fs/sync.c:202:9) #10 do_fsync (fs/sync.c:212:9) #11 __do_sys_fdatasync (fs/sync.c:225:9) #12 __se_sys_fdatasync (fs/sync.c:223:1) #13 __x64_sys_fdatasync (fs/sync.c:223:1) #14 do_syscall_x64 (arch/x86/entry/common.c:52:14) #15 do_syscall_64 (arch/x86/entry/common.c:83:7) #16 entry_SYSCALL_64+0xaf/0x14c (arch/x86/entry/entry_64.S:121) So we're logging a changed extent from fsync, which is splitting an extent in the log tree. But this split part already exists in the tree, triggering the BUG(). This is the state of the log tree at the time of the crash, dumped with drgn (https://github.com/osandov/drgn/blob/main/contrib/btrfs_tree.py) to get more details than btrfs_print_leaf() gives us: >>> print_extent_buffer(prog.crashed_thread().stack_trace()[0]["eb"]) leaf 33439744 level 0 items 72 generation 9 owner 18446744073709551610 leaf 33439744 flags 0x100000000000000 fs uuid e5bd3946-400c-4223-8923-190ef1f18677 chunk uuid d58cb17e-6d02-494a-829a-18b7d8a399da item 0 key (450 INODE_ITEM 0) itemoff 16123 itemsize 160 generation 7 transid 9 size 8192 nbytes 8473563889606862198 block group 0 mode 100600 links 1 uid 0 gid 0 rdev 0 sequence 204 flags 0x10(PREALLOC) atime 1716417703.220000000 (2024-05-22 15:41:43) ctime 1716417704.983333333 (2024-05-22 15:41:44) mtime 1716417704.983333333 (2024-05-22 15:41:44) otime 17592186044416.000000000 (559444-03-08 01:40:16) item 1 key (450 INODE_REF 256) itemoff 16110 itemsize 13 index 195 namelen 3 name: 193 item 2 key (450 XATTR_ITEM 1640047104) itemoff 16073 itemsize 37 location key (0 UNKNOWN.0 0) type XATTR transid 7 data_len 1 name_len 6 name: user.a data a item 3 key (450 EXTENT_DATA 0) itemoff 16020 itemsize 53 generation 9 type 1 (regular) extent data disk byte 303144960 nr 12288 extent data offset 0 nr 4096 ram 12288 extent compression 0 (none) item 4 key (450 EXTENT_DATA 4096) itemoff 15967 itemsize 53 generation 9 type 2 (prealloc) prealloc data disk byte 303144960 nr 12288 prealloc data offset 4096 nr 8192 item 5 key (450 EXTENT_DATA 8192) itemoff 15914 itemsize 53 generation 9 type 2 (prealloc) prealloc data disk byte 303144960 nr 12288 prealloc data offset 8192 nr 4096 ... So the real problem happened earlier: notice that items 4 (4k-12k) and 5 (8k-12k) overlap. Both are prealloc extents. Item 4 straddles i_size and item 5 starts at i_size. Here is the state of ---truncated---
来源: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
来源: CVE Program / CVE List V5
Vulnerability Type
N/A
来源: CVE Program / CVE List V5
Vulnerability Title
Linux kernel安全漏洞
来源: 中国国家信息安全漏洞库 CNNVD
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于btrfs_set_item_key_safe函数发现重复密钥,从而导致崩溃。
来源: 中国国家信息安全漏洞库 CNNVD
CVSS Information
N/A
来源: 中国国家信息安全漏洞库 CNNVD
Vulnerability Type
N/A
来源: 中国国家信息安全漏洞库 CNNVD

受影响产品

厂商 产品 影响版本 CPE 订阅
Linux Linux 31d11b83b96faaee4bb514d375a09489117c3e8d ~ c993fd02ba471e296ca1996f13626fc917120158 -
Linux Linux 4.17 -

二、漏洞 CVE-2024-37354 的公开POC

# POC 描述 源链接 神龙链接
AI 生成 POC 高级

未找到公开 POC。

登录以生成 AI POC

三、漏洞 CVE-2024-37354 的情报信息

请登录查看更多情报信息。

CVE-2024-37354 其他参考 (3)

同批安全公告 · Linux · 2024-06-25 · 共 24 条

CVE-2024-39293 9.8 CRITICAL Linux kernel 安全漏洞
CVE-2024-39471 7.8 HIGH Linux kernel 安全漏洞
CVE-2024-37078 7.8 HIGH Linux kernel 安全漏洞
CVE-2024-38306 7.8 HIGH Linux kernel安全漏洞
CVE-2024-38385 7.8 HIGH Linux kernel 安全漏洞
CVE-2024-39467 7.8 HIGH Linux kernel 安全漏洞
CVE-2024-39463 7.8 HIGH Linux kernel 安全漏洞
CVE-2024-39468 7.5 HIGH Linux kernel 安全漏洞
CVE-2024-39469 7.1 HIGH Linux kernel 安全漏洞
CVE-2024-39371 Linux kernel安全漏洞
CVE-2024-39470 Linux kernel 安全漏洞
CVE-2024-39466 Linux kernel 安全漏洞
CVE-2024-39464 Linux kernel 安全漏洞
CVE-2024-39465 Linux kernel 安全漏洞
CVE-2024-39462 Linux kernel 安全漏洞
CVE-2024-39461 Linux kernel安全漏洞
CVE-2021-4440 Linux kernel安全漏洞
CVE-2024-39301 Linux kernel 安全漏洞
CVE-2024-39298 Linux kernel安全漏洞
CVE-2024-39296 Linux kernel安全漏洞

显示前 20 条,共 24 条。 查看全部 &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2024-37354

暂无评论


发表评论