Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2024-49868— btrfs: fix a NULL pointer dereference when failed to start a new trasacntion

Quick assessment

Affected
Linux Linux
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于btrfs文件系统在事务启动失败时会导致空指针取消引用。

AI Predicted 6.5 Difficulty: Moderate EPSS 0.29% · P20

Affected Version Matrix 18

VendorProduct Version RangeStatus
Linux Linux 3fd0a5585eb98e074fb9934549c8d85c49756c0d< 1282f001cbf56e5dd6e90a18e205a566793f4be0 affected
3fd0a5585eb98e074fb9934549c8d85c49756c0d< d73d48acf36f57362df7e4f9d76568168bf5e944 affected
3fd0a5585eb98e074fb9934549c8d85c49756c0d< 37fee9c220b92c3b7bf22b51c51dde5364e7590b affected
3fd0a5585eb98e074fb9934549c8d85c49756c0d< d13249c0df7aab885acb149695f82c54c0822a70 affected
3fd0a5585eb98e074fb9934549c8d85c49756c0d< 7ad0c5868f2f0418619089513d95230c66cb7eb4 affected
3fd0a5585eb98e074fb9934549c8d85c49756c0d< dc02c1440705e3451abd1c2c8114a5c1bb188e9f affected
3fd0a5585eb98e074fb9934549c8d85c49756c0d< 39356ec0e319ed07627b3a0f402d0608546509e6 affected
3fd0a5585eb98e074fb9934549c8d85c49756c0d< c3b47f49e83197e8dffd023ec568403bcdbb774b affected
… +10 more rows
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2024-49868

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
btrfs: fix a NULL pointer dereference when failed to start a new trasacntion
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: btrfs: fix a NULL pointer dereference when failed to start a new trasacntion [BUG] Syzbot reported a NULL pointer dereference with the following crash: FAULT_INJECTION: forcing a failure. start_transaction+0x830/0x1670 fs/btrfs/transaction.c:676 prepare_to_relocate+0x31f/0x4c0 fs/btrfs/relocation.c:3642 relocate_block_group+0x169/0xd20 fs/btrfs/relocation.c:3678 ... BTRFS info (device loop0): balance: ended with status: -12 Oops: general protection fault, probably for non-canonical address 0xdffffc00000000cc: 0000 [#1] PREEMPT SMP KASAN NOPTI KASAN: null-ptr-deref in range [0x0000000000000660-0x0000000000000667] RIP: 0010:btrfs_update_reloc_root+0x362/0xa80 fs/btrfs/relocation.c:926 Call Trace: <TASK> commit_fs_roots+0x2ee/0x720 fs/btrfs/transaction.c:1496 btrfs_commit_transaction+0xfaf/0x3740 fs/btrfs/transaction.c:2430 del_balance_item fs/btrfs/volumes.c:3678 [inline] reset_balance_state+0x25e/0x3c0 fs/btrfs/volumes.c:3742 btrfs_balance+0xead/0x10c0 fs/btrfs/volumes.c:4574 btrfs_ioctl_balance+0x493/0x7c0 fs/btrfs/ioctl.c:3673 vfs_ioctl fs/ioctl.c:51 [inline] __do_sys_ioctl fs/ioctl.c:907 [inline] __se_sys_ioctl+0xf9/0x170 fs/ioctl.c:893 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x77/0x7f [CAUSE] The allocation failure happens at the start_transaction() inside prepare_to_relocate(), and during the error handling we call unset_reloc_control(), which makes fs_info->balance_ctl to be NULL. Then we continue the error path cleanup in btrfs_balance() by calling reset_balance_state() which will call del_balance_item() to fully delete the balance item in the root tree. However during the small window between set_reloc_contrl() and unset_reloc_control(), we can have a subvolume tree update and created a reloc_root for that subvolume. Then we go into the final btrfs_commit_transaction() of del_balance_item(), and into btrfs_update_reloc_root() inside commit_fs_roots(). That function checks if fs_info->reloc_ctl is in the merge_reloc_tree stage, but since fs_info->reloc_ctl is NULL, it results a NULL pointer dereference. [FIX] Just add extra check on fs_info->reloc_ctl inside btrfs_update_reloc_root(), before checking fs_info->reloc_ctl->merge_reloc_tree. That DEAD_RELOC_TREE handling is to prevent further modification to the reloc tree during merge stage, but since there is no reloc_ctl at all, we do not need to bother that.
Source: CVE Program / CVE List V5
CVSS Information
N/A
Source: CVE Program / CVE List V5
Vulnerability Type
N/A
Source: CVE Program / CVE List V5
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于btrfs文件系统在事务启动失败时会导致空指针取消引用。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

Vendor Product Affected Versions CPE Subscribe
Linux Linux 3fd0a5585eb98e074fb9934549c8d85c49756c0d ~ 1282f001cbf56e5dd6e90a18e205a566793f4be0 -
Linux Linux 2.6.35 -

II. Public POCs for CVE-2024-49868

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2024-49868

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

Patches & Fixes for CVE-2024-49868 (3)

Same Patch Batch · Linux · 2024-10-21 · 372 CVEs total

CVE-2024-50043 9.8 CRITICAL nfsd: fix possible badness in FREE_STATEID
CVE-2022-48985 9.8 CRITICAL net: mana: Fix race on per-CQ variable napi work_done
CVE-2024-47695 9.8 CRITICAL RDMA/rtrs-clt: Reset cid to con_num - 1 to stay in bounds
CVE-2024-50033 9.8 CRITICAL slip: make slhc_remember() more robust against malicious packets
CVE-2024-49855 9.8 CRITICAL nbd: fix race between timeout and normal completion
CVE-2024-50047 9.8 CRITICAL smb: client: fix UAF in async decryption
CVE-2024-50046 9.8 CRITICAL NFSv4: Prevent NULL-pointer dereference in nfs42_complete_copies()
CVE-2022-49003 9.8 CRITICAL nvme: fix SRCU protection of nvme_ns_head list
CVE-2024-49996 9.4 CRITICAL cifs: Fix buffer overflow when parsing NFS reparse points
CVE-2024-47678 9.4 CRITICAL icmp: change the order of rate limits
CVE-2022-49017 8.8 HIGH tipc: re-fetch skb cb after tipc_msg_validate
CVE-2024-50029 8.8 HIGH Bluetooth: hci_conn: Fix UAF in hci_enhanced_setup_sync
CVE-2024-50041 8.8 HIGH i40e: Fix macvlan leak by synchronizing access to mac_filter_hash
CVE-2024-49939 8.8 HIGH wifi: rtw89: avoid to add interface to list twice when SER
CVE-2022-48960 8.8 HIGH net: hisilicon: Fix potential use-after-free in hix5hd2_rx()
CVE-2022-48962 8.8 HIGH net: hisilicon: Fix potential use-after-free in hisi_femac_rx()
CVE-2022-48964 8.8 HIGH ravb: Fix potential use-after-free in ravb_rx_gbeth()
CVE-2022-49015 8.8 HIGH net: hsr: Fix potential use-after-free
CVE-2022-48967 8.8 HIGH NFC: nci: Bounds check struct nfc_target arrays
CVE-2024-49930 8.8 HIGH wifi: ath11k: fix array out-of-bound access in SoC stats

Showing top 20 of 372 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2024-49868

No comments yet


Leave a comment