btrfs:修复分割 bios 的错误传播(CVE-2024-50225)
CVE编号
CVE-2024-50225利用情况
暂无补丁情况
N/A披露时间
2024-11-09漏洞描述
该漏洞描述是关于Linux内核中的btrfs文件系统在处理分裂的bio(基本输入输出)时的错误传播问题。具体描述如下:在btrfs中,`btrfs_bbio_propagate_error()`函数的目的应该是将分裂的bio的错误传播到其原始的btrfs_bio,并告诉上层这个错误。但在某些情况下,这个功能不能正常工作。案例1:当立即(或快速)结束带有错误的bio时,问题会出现。当btrfs向镜像设备发送btrfs_bio时,在所有镜像bio完成后,它会调用`btrfs_bio_end_io()`。如果那个btrfs_bio被分裂,它的bio是通过`btrfs_clone_bioset`创建的,并且其结束io函数是`btrfs_orig_write_end_io`。对于这个案例,`btrfs_bbio_propagate_error()`尝试访问原始bbio的bio上下文以增加错误计数。在大多数情况下,这可以正常工作。但是,如果end_io被快速调用,原始bbio(剩余部分在分裂之后)的bio上下文可能还没有被正确设置。因为原始bbio(最后一个btrfs_bio)是在发送到设备时才设置bio上下文的,所以对于较早分裂的btrfs_bio的完成来说,这可能太晚了,从而导致空指针解引用错误。这个问题可以通过运行特定的测试案例(如btrfs/146)在分区设备上重现。当这个问题发生时,会产生一个内核错误报告,显示一个空指针解引用错误。总的来说,这个漏洞是关于Linux内核在处理分裂的bio的错误传播时的空指针解引用问题,可能导致系统崩溃或数据损坏。解决建议
"将组件 Linux 升级至 6.3 及以上版本"
参考链接 |
|
---|---|
https://git.kernel.org/stable/c/22833d89b780ba0f9f66e19c477e7decf638edce | |
https://git.kernel.org/stable/c/d48e1dea3931de64c26717adc2b89743c7ab6594 |
受影响软件情况
# | 类型 | 厂商 | 产品 | 版本 | 影响面 | ||||
1 | |||||||||
---|---|---|---|---|---|---|---|---|---|
运行在以下环境 | |||||||||
系统 | debian_11 | linux | * | Up to (excluding) 5.10.226-1 | |||||
运行在以下环境 | |||||||||
系统 | debian_12 | linux | * | Up to (excluding) 6.1.115-1 |
- 攻击路径 N/A
- 攻击复杂度 N/A
- 权限要求 N/A
- 影响范围 N/A
- 用户交互 N/A
- 可用性 N/A
- 保密性 N/A
- 完整性 N/A
CWE-ID | 漏洞类型 |
Exp相关链接

版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!
评论