Executive Summary
Informations | |||
---|---|---|---|
Name | CVE-2022-49547 | First vendor Publication | 2025-02-26 |
Vendor | Cve | Last vendor Modification | 2025-03-10 |
Security-Database Scoring CVSS v3
Cvss vector : CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H | |||
---|---|---|---|
Overall CVSS Score | 5.5 | ||
Base Score | 5.5 | Environmental Score | 5.5 |
impact SubScore | 3.6 | Temporal Score | 5.5 |
Exploitabality Sub Score | 1.8 | ||
Attack Vector | Local | Attack Complexity | Low |
Privileges Required | Low | User Interaction | None |
Scope | Unchanged | Confidentiality Impact | None |
Integrity Impact | None | Availability Impact | High |
Calculate full CVSS 3.0 Vectors scores |
Security-Database Scoring CVSS v2
Cvss vector : | |||
---|---|---|---|
Cvss Base Score | N/A | Attack Range | N/A |
Cvss Impact Score | N/A | Attack Complexity | N/A |
Cvss Expoit Score | N/A | Authentication | N/A |
Calculate full CVSS 2.0 Vectors scores |
Detail
In the Linux kernel, the following vulnerability has been resolved: btrfs: fix deadlock between concurrent dio writes when low on free data space When reserving data space for a direct IO write we can end up deadlocking if we have multiple tasks attempting a write to the same file range, there are multiple extents covered by that file range, we are low on available space for data and the writes don't expand the inode's i_size. The deadlock can happen like this: 1) We have a file with an i_size of 1M, at offset 0 it has an extent with 2) Task A does a direct IO write against file range [0, 256K), and because 3) Task A locks the file range [0, 256K) at btrfs_dio_iomap_begin(), and 4) Before returning from btrfs_dio_iomap_begin(), it unlocks the file 5) Task A executes btrfs_dio_iomap_begin() again, this time for the file 6) Task B starts a direct IO write against file range [0, 256K) as well. 7) Task A enters btrfs_get_blocks_direct_write() and tries to reserve data 8) The async reclaim task decides to wait for all existing ordered extents 9) The ordered extent for the file range [0, 128K) can not complete This results in a deadlock, because: - task B is holding the file range [0, 128K) locked, waiting for the - task A is holding the file range [128K, 256K) locked and it's waiting - the async data reclaim task is waiting for ordered extent [0, 128K) This results in a deadlock between 4 task: task A, task B, the async This type of deadlock can sporadically be triggered by the test case generic/300 from fstests, and results in a stack trace like the following: [12084.033689] INFO: task kworker/u16:7:123749 blocked for more than 241 seconds. [12084.034877] Not tainted 5.18.0-rc2-btrfs-next-115 #1 [12084.035562] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. [12084.036548] task:kworker/u16:7 state:D stack: 0 pid:123749 ppid: 2 flags:0x00004000 [12084.036554] Workqueue: btrfs-flush_delalloc btrfs_work_helper [btrfs] [12084.036599] Call Trace: [12084.036601] |
Original Source
Url : http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-49547 |
CWE : Common Weakness Enumeration
% | Id | Name |
---|---|---|
100 % | CWE-667 | Insufficient Locking |
CPE : Common Platform Enumeration
Sources (Detail)
Source | Url |
---|
Alert History
Date | Informations |
---|---|
2025-06-26 02:09:55 |
|
2025-06-25 12:22:46 |
|
2025-06-24 02:14:31 |
|
2025-05-27 02:11:17 |
|
2025-03-29 03:14:50 |
|
2025-03-28 13:35:09 |
|
2025-03-28 02:57:14 |
|
2025-03-19 00:20:56 |
|
2025-03-18 00:20:59 |
|
2025-03-14 00:21:27 |
|
2025-03-13 21:21:20 |
|
2025-03-11 00:21:25 |
|
2025-02-26 17:20:30 |
|