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

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2022-48664— btrfs: fix hang during unmount when stopping a space reclaim worker

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存在安全漏洞,该漏洞源于会在卸载期间挂起。

AI Predicted 5.3 Difficulty: Moderate EPSS 0.24% · P14

Affected Version Matrix 14

VendorProduct Version RangeStatus
Linux Linux d6fd0ae25c6495674dc5a41a8d16bc8e0073276d< 6ac5b52e3f352f9cb270c89e6e1d4dadb564ddb8 affected
d6fd0ae25c6495674dc5a41a8d16bc8e0073276d< d8a76a2e514fbbb315a6dfff2d342de2de833994 affected
d6fd0ae25c6495674dc5a41a8d16bc8e0073276d< c338bea1fec5504290dc0acf026c9e7dba25004b affected
d6fd0ae25c6495674dc5a41a8d16bc8e0073276d< a362bb864b8db4861977d00bd2c3222503ccc34b affected
1ec2bf44c3770b9c3d510b1e78d50cd7fd19e8c5 affected
b4c7c826709b7d882ec9b264d5032e887e6bd720 affected
4.14.120< 4.15 affected
4.19.12< 4.20 affected
… +6 more rows
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2022-48664

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 hang during unmount when stopping a space reclaim worker
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: btrfs: fix hang during unmount when stopping a space reclaim worker Often when running generic/562 from fstests we can hang during unmount, resulting in a trace like this: Sep 07 11:52:00 debian9 unknown: run fstests generic/562 at 2022-09-07 11:52:00 Sep 07 11:55:32 debian9 kernel: INFO: task umount:49438 blocked for more than 120 seconds. Sep 07 11:55:32 debian9 kernel: Not tainted 6.0.0-rc2-btrfs-next-122 #1 Sep 07 11:55:32 debian9 kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. Sep 07 11:55:32 debian9 kernel: task:umount state:D stack: 0 pid:49438 ppid: 25683 flags:0x00004000 Sep 07 11:55:32 debian9 kernel: Call Trace: Sep 07 11:55:32 debian9 kernel: <TASK> Sep 07 11:55:32 debian9 kernel: __schedule+0x3c8/0xec0 Sep 07 11:55:32 debian9 kernel: ? rcu_read_lock_sched_held+0x12/0x70 Sep 07 11:55:32 debian9 kernel: schedule+0x5d/0xf0 Sep 07 11:55:32 debian9 kernel: schedule_timeout+0xf1/0x130 Sep 07 11:55:32 debian9 kernel: ? lock_release+0x224/0x4a0 Sep 07 11:55:32 debian9 kernel: ? lock_acquired+0x1a0/0x420 Sep 07 11:55:32 debian9 kernel: ? trace_hardirqs_on+0x2c/0xd0 Sep 07 11:55:32 debian9 kernel: __wait_for_common+0xac/0x200 Sep 07 11:55:32 debian9 kernel: ? usleep_range_state+0xb0/0xb0 Sep 07 11:55:32 debian9 kernel: __flush_work+0x26d/0x530 Sep 07 11:55:32 debian9 kernel: ? flush_workqueue_prep_pwqs+0x140/0x140 Sep 07 11:55:32 debian9 kernel: ? trace_clock_local+0xc/0x30 Sep 07 11:55:32 debian9 kernel: __cancel_work_timer+0x11f/0x1b0 Sep 07 11:55:32 debian9 kernel: ? close_ctree+0x12b/0x5b3 [btrfs] Sep 07 11:55:32 debian9 kernel: ? __trace_bputs+0x10b/0x170 Sep 07 11:55:32 debian9 kernel: close_ctree+0x152/0x5b3 [btrfs] Sep 07 11:55:32 debian9 kernel: ? evict_inodes+0x166/0x1c0 Sep 07 11:55:32 debian9 kernel: generic_shutdown_super+0x71/0x120 Sep 07 11:55:32 debian9 kernel: kill_anon_super+0x14/0x30 Sep 07 11:55:32 debian9 kernel: btrfs_kill_super+0x12/0x20 [btrfs] Sep 07 11:55:32 debian9 kernel: deactivate_locked_super+0x2e/0xa0 Sep 07 11:55:32 debian9 kernel: cleanup_mnt+0x100/0x160 Sep 07 11:55:32 debian9 kernel: task_work_run+0x59/0xa0 Sep 07 11:55:32 debian9 kernel: exit_to_user_mode_prepare+0x1a6/0x1b0 Sep 07 11:55:32 debian9 kernel: syscall_exit_to_user_mode+0x16/0x40 Sep 07 11:55:32 debian9 kernel: do_syscall_64+0x48/0x90 Sep 07 11:55:32 debian9 kernel: entry_SYSCALL_64_after_hwframe+0x63/0xcd Sep 07 11:55:32 debian9 kernel: RIP: 0033:0x7fcde59a57a7 Sep 07 11:55:32 debian9 kernel: RSP: 002b:00007ffe914217c8 EFLAGS: 00000246 ORIG_RAX: 00000000000000a6 Sep 07 11:55:32 debian9 kernel: RAX: 0000000000000000 RBX: 00007fcde5ae8264 RCX: 00007fcde59a57a7 Sep 07 11:55:32 debian9 kernel: RDX: 0000000000000000 RSI: 0000000000000000 RDI: 000055b57556cdd0 Sep 07 11:55:32 debian9 kernel: RBP: 000055b57556cba0 R08: 0000000000000000 R09: 00007ffe91420570 Sep 07 11:55:32 debian9 kernel: R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 Sep 07 11:55:32 debian9 kernel: R13: 000055b57556cdd0 R14: 000055b57556ccb8 R15: 0000000000000000 Sep 07 11:55:32 debian9 kernel: </TASK> What happens is the following: 1) The cleaner kthread tries to start a transaction to delete an unused block group, but the metadata reservation can not be satisfied right away, so a reservation ticket is created and it starts the async metadata reclaim task (fs_info->async_reclaim_work); 2) Writeback for all the filler inodes with an i_size of 2K starts (generic/562 creates a lot of 2K files with the goal of filling metadata space). We try to create an inline extent for them, but we fail when trying to insert the inline extent with -ENOSPC (at cow_file_range_inline()) - since this is not critical, we fallback to non-inline mode (back to cow_file_range()), reserve extents ---truncated---
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存在安全漏洞,该漏洞源于会在卸载期间挂起。
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 d6fd0ae25c6495674dc5a41a8d16bc8e0073276d ~ 6ac5b52e3f352f9cb270c89e6e1d4dadb564ddb8 -
Linux Linux 4.20 -

II. Public POCs for CVE-2022-48664

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

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2022-48664

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

Other References for CVE-2022-48664 (4)

Same Patch Batch · Linux · 2024-04-28 · 40 CVEs total

CVE-2022-48666 9.8 CRITICAL scsi: core: Fix a use-after-free
CVE-2022-48652 8.8 HIGH ice: Fix crash by keep old cfg when update TCs more than queues
CVE-2022-48632 7.8 HIGH i2c: mlxbf: prevent stack overflow in mlxbf_i2c_smbus_start_transaction()
CVE-2022-48636 7.8 HIGH s390/dasd: fix Oops in dasd_alias_get_start_dev due to missing pavgroup
CVE-2022-48637 7.8 HIGH bnxt: prevent skb UAF after handing over to PTP worker
CVE-2022-48658 7.5 HIGH mm: slub: fix flush_cpu_slab()/__free_slab() invocations in task context.
CVE-2022-48665 7.1 HIGH exfat: fix overflow for large capacity partition
CVE-2022-48654 7.1 HIGH netfilter: nfnetlink_osf: fix possible bogus match in nf_osf_find()
CVE-2022-48644 net/sched: taprio: avoid disabling offload when it was never enabled
CVE-2022-48648 sfc: fix null pointer dereference in efx_hard_start_xmit
CVE-2022-48643 netfilter: nf_tables: fix nft_counters_enabled underflow at nf_tables_addchain()
CVE-2022-48642 netfilter: nf_tables: fix percpu memory leak at nf_tables_addchain()
CVE-2022-48641 netfilter: ebtables: fix memory leak when blob is malformed
CVE-2022-48640 bonding: fix NULL deref in bond_rr_gen_slave_id
CVE-2022-48639 net: sched: fix possible refcount leak in tc_new_tfilter()
CVE-2022-48638 cgroup: cgroup_get_from_id() must check the looked-up kn is a directory
CVE-2022-48635 fsdax: Fix infinite loop in dax_iomap_rw()
CVE-2022-48634 drm/gma500: Fix BUG: sleeping function called from invalid context errors
CVE-2022-48633 drm/gma500: Fix WARN_ON(lock->magic != lock) error
CVE-2022-48631 ext4: fix bug in extents parsing when eh_entries == 0 and eh_depth > 0

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

IV. Related Vulnerabilities

V. Comments for CVE-2022-48664

No comments yet


Leave a comment