CVE & CISA-KEV Catalog

CVE-2024-56758

MEDIUM
5.5
CVSS v3
NVD

Description

In the Linux kernel, the following vulnerability has been resolved: btrfs: check folio mapping after unlock in relocate_one_folio() When we call btrfs_read_folio() to bring a folio uptodate, we unlock the folio. The result of that is that a different thread can modify the mapping (like remove it with invalidate) before we call folio_lock(). This results in an invalid page and we need to try again. In particular, if we are relocating concurrently with aborting a transaction, this can result in a crash like the following: BUG: kernel NULL pointer dereference, address: 0000000000000000 PGD 0 P4D 0 Oops: 0000 [#1] SMP CPU: 76 PID: 1411631 Comm: kworker/u322:5 Workqueue: events_unbound btrfs_reclaim_bgs_work RIP: 0010:set_page_extent_mapped+0x20/0xb0 RSP: 0018:ffffc900516a7be8 EFLAGS: 00010246 RAX: ffffea009e851d08 RBX: ffffea009e0b1880 RCX: 0000000000000000 RDX: 0000000000000000 RSI: ffffc900516a7b90 RDI: ffffea009e0b1880 RBP: 0000000003573000 R08: 0000000000000001 R09: ffff88c07fd2f3f0 R10: 0000000000000000 R11: 0000194754b575be R12: 0000000003572000 R13: 0000000003572fff R14: 0000000000100cca R15: 0000000005582fff FS: 0000000000000000(0000) GS:ffff88c07fd00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000000 CR3: 000000407d00f002 CR4: 00000000007706f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 PKRU: 55555554 Call Trace: <TASK> ? __die+0x78/0xc0 ? page_fault_oops+0x2a8/0x3a0 ? __switch_to+0x133/0x530 ? wq_worker_running+0xa/0x40 ? exc_page_fault+0x63/0x130 ? asm_exc_page_fault+0x22/0x30 ? set_page_extent_mapped+0x20/0xb0 relocate_file_extent_cluster+0x1a7/0x940 relocate_data_extent+0xaf/0x120 relocate_block_group+0x20f/0x480 btrfs_relocate_block_group+0x152/0x320 btrfs_relocate_chunk+0x3d/0x120 btrfs_reclaim_bgs_work+0x2ae/0x4e0 process_scheduled_works+0x184/0x370 worker_thread+0xc6/0x3e0 ? blk_add_timer+0xb0/0xb0 kthread+0xae/0xe0 ? flush_tlb_kernel_range+0x90/0x90 ret_from_fork+0x2f/0x40 ? flush_tlb_kernel_range+0x90/0x90 ret_from_fork_asm+0x11/0x20 </TASK> This occurs because cleanup_one_transaction() calls destroy_delalloc_inodes() which calls invalidate_inode_pages2() which takes the folio_lock before setting mapping to NULL. We fail to check this, and subsequently call set_extent_mapping(), which assumes that mapping != NULL (in fact it asserts that in debug mode) Note that the "fixes" patch here is not the one that introduced the race (the very first iteration of this code from 2009) but a more recent change that made this particular crash happen in practice.

How to fix

Remediation Available
linuxDebian
Fixed in:6.1.147-1CVE-2024-56758
Fixed in:6.12.8-1CVE-2024-56758
Fixed in:6.12.8-1CVE-2024-56758
linuxUbuntu
Fixed in:6.8.0-60.63USN-7513-1
linux-awsUbuntu
Fixed in:6.8.0-1029.31USN-7513-1
linux-aws-6.8Ubuntu
Fixed in:6.8.0-1029.31~22.04.1USN-7513-1
linux-azureUbuntu
Fixed in:6.8.0-1029.34USN-7513-3
linux-azure-6.8Ubuntu
Fixed in:6.8.0-1029.34~22.04.1USN-7513-3
linux-azure-nvidiaUbuntu
Fixed in:6.8.0-1016.17USN-7522-1
linux-gcpUbuntu
Fixed in:6.8.0-1030.32USN-7515-2
linux-gcp-6.8Ubuntu
Fixed in:6.8.0-1030.32~22.04.1USN-7515-2
linux-gkeUbuntu
Fixed in:6.8.0-1025.29USN-7515-1
linux-gkeopUbuntu
Fixed in:6.8.0-1012.14USN-7515-2
linux-hwe-6.11Ubuntu
Fixed in:6.11.0-21.21~24.04.1USN-7379-1
linux-hwe-6.8Ubuntu
Fixed in:6.8.0-60.63~22.04.1USN-7513-4
linux-ibmUbuntu
Fixed in:6.8.0-1026.26USN-7513-1
linux-image-6.11.0-1011-lowlatencyUbuntu
Fixed in:6.11.0-1011.12~24.04.1USN-7381-1
linux-image-6.11.0-1011-lowlatency-64kUbuntu
Fixed in:6.11.0-1011.12~24.04.1USN-7381-1
linux-image-6.11.0-1017-oemUbuntu
Fixed in:6.11.0-1017.17USN-7382-1
linux-image-6.11.0-21-genericUbuntu
Fixed in:6.11.0-21.21~24.04.1+1USN-7379-1
linux-image-6.11.0-21-generic-64kUbuntu
Fixed in:6.11.0-21.21~24.04.1+1USN-7379-1
linux-image-6.8.0-1012-gkeopUbuntu
Fixed in:6.8.0-1012.14USN-7515-2
linux-image-6.8.0-1016-azure-nvidiaUbuntu
Fixed in:6.8.0-1016.17USN-7522-1
linux-image-6.8.0-1025-gkeUbuntu
Fixed in:6.8.0-1025.29USN-7515-1
linux-image-6.8.0-1026-ibmUbuntu
Fixed in:6.8.0-1026.26USN-7513-1
linux-image-6.8.0-1026-oracleUbuntu
Fixed in:6.8.0-1026.27~22.04.1USN-7513-5
Fixed in:6.8.0-1026.27USN-7513-1
linux-image-6.8.0-1026-oracle-64kUbuntu
Fixed in:6.8.0-1026.27~22.04.1USN-7513-5
Fixed in:6.8.0-1026.27USN-7513-1
linux-image-6.8.0-1028-nvidiaUbuntu
Fixed in:6.8.0-1028.31~22.04.1USN-7514-1
Fixed in:6.8.0-1028.31USN-7514-1
linux-image-6.8.0-1028-nvidia-64kUbuntu
Fixed in:6.8.0-1028.31~22.04.1USN-7514-1
Fixed in:6.8.0-1028.31USN-7514-1
linux-image-6.8.0-1028-nvidia-lowlatencyUbuntu
Fixed in:6.8.0-1028.31.1USN-7514-1
linux-image-6.8.0-1028-nvidia-lowlatency-64kUbuntu
Fixed in:6.8.0-1028.31.1USN-7514-1
linux-image-6.8.0-1028-oemUbuntu
Fixed in:6.8.0-1028.28USN-7513-3
linux-image-6.8.0-1028-raspiUbuntu
Fixed in:6.8.0-1028.32USN-7524-1
linux-image-6.8.0-1029-awsUbuntu
Fixed in:6.8.0-1029.31~22.04.1USN-7513-1
Fixed in:6.8.0-1029.31USN-7513-1
linux-image-6.8.0-1029-azureUbuntu
Fixed in:6.8.0-1029.34~22.04.1USN-7513-3
Fixed in:6.8.0-1029.34USN-7513-3
linux-image-6.8.0-1029-azure-fdeUbuntu
Fixed in:6.8.0-1029.34~22.04.1USN-7513-3
Fixed in:6.8.0-1029.34USN-7513-3
linux-image-6.8.0-1030-gcpUbuntu
Fixed in:6.8.0-1030.32~22.04.1USN-7515-2
Fixed in:6.8.0-1030.32USN-7515-2
linux-image-6.8.0-1030-gcp-64kUbuntu
Fixed in:6.8.0-1030.32~22.04.1USN-7515-2
Fixed in:6.8.0-1030.32USN-7515-2
linux-image-6.8.0-2023-raspi-realtimeUbuntu
Fixed in:6.8.0-2023.24USN-7523-1
linux-image-6.8.0-60-genericUbuntu
Fixed in:6.8.0-60.63~22.04.1USN-7513-4
Fixed in:6.8.0-60.63USN-7513-1
linux-image-6.8.0-60-generic-64kUbuntu
Fixed in:6.8.0-60.63~22.04.1USN-7513-4
Fixed in:6.8.0-60.63USN-7513-1
linux-image-6.8.0-60-lowlatencyUbuntu
Fixed in:6.8.0-60.63.1~22.04.1USN-7513-1
Fixed in:6.8.0-60.63.1USN-7513-1
linux-image-6.8.0-60-lowlatency-64kUbuntu
Fixed in:6.8.0-60.63.1~22.04.1USN-7513-1
Fixed in:6.8.0-60.63.1USN-7513-1
linux-image-6.8.1-1022-realtimeUbuntu
Fixed in:6.8.1-1022.23USN-7513-2
linux-image-awsUbuntu
Fixed in:6.8.0-1029.31~22.04.1USN-7513-1
Fixed in:6.8.0-1029.31USN-7513-1
linux-image-aws-lts-24.04Ubuntu
Fixed in:6.8.0-1029.31USN-7513-1
linux-image-azureUbuntu
Fixed in:6.8.0-1029.34~22.04.1USN-7513-3
linux-image-azure-fdeUbuntu
Fixed in:6.8.0-1029.34~22.04.1USN-7513-3
linux-image-azure-fde-lts-24.04Ubuntu
Fixed in:6.8.0-1029.34USN-7513-3
linux-image-azure-lts-24.04Ubuntu
Fixed in:6.8.0-1029.34USN-7513-3
linux-image-azure-nvidiaUbuntu
Fixed in:6.8.0-1016.17USN-7522-1
linux-image-gcpUbuntu
Fixed in:6.8.0-1030.32~22.04.1USN-7515-2
linux-image-gcp-64kUbuntu
Fixed in:6.8.0-1030.32~22.04.1USN-7515-2
linux-image-gcp-64k-lts-24.04Ubuntu
Fixed in:6.8.0-1030.32USN-7515-2
linux-image-gcp-lts-24.04Ubuntu
Fixed in:6.8.0-1030.32USN-7515-2
linux-image-genericUbuntu
Fixed in:6.8.0-60.63USN-7513-1
linux-image-generic-64kUbuntu
Fixed in:6.8.0-60.63USN-7513-1
linux-image-generic-64k-hwe-22.04Ubuntu
Fixed in:6.8.0-60.63~22.04.1USN-7513-4
linux-image-generic-64k-hwe-24.04Ubuntu
Fixed in:6.11.0-21.21~24.04.1USN-7379-1
linux-image-generic-hwe-22.04Ubuntu
Fixed in:6.8.0-60.63~22.04.1USN-7513-4
linux-image-generic-hwe-24.04Ubuntu
Fixed in:6.11.0-21.21~24.04.1USN-7379-1
linux-image-generic-lpaeUbuntu
Fixed in:6.8.0-60.63USN-7513-1
linux-image-gkeUbuntu
Fixed in:6.8.0-1025.29USN-7515-1
linux-image-gkeopUbuntu
Fixed in:6.8.0-1012.14USN-7515-2
linux-image-gkeop-6.8Ubuntu
Fixed in:6.8.0-1012.14USN-7515-2
linux-image-ibmUbuntu
Fixed in:6.8.0-1026.26USN-7513-1
linux-image-ibm-classicUbuntu
Fixed in:6.8.0-1026.26USN-7513-1
linux-image-ibm-lts-24.04Ubuntu
Fixed in:6.8.0-1026.26USN-7513-1
linux-image-kvmUbuntu
Fixed in:6.8.0-60.63USN-7513-1
linux-image-lowlatencyUbuntu
Fixed in:6.8.0-60.63.1USN-7513-1
linux-image-lowlatency-64kUbuntu
Fixed in:6.8.0-60.63.1USN-7513-1
linux-image-lowlatency-64k-hwe-22.04Ubuntu
Fixed in:6.8.0-60.63.1~22.04.1USN-7513-1
linux-image-lowlatency-64k-hwe-24.04Ubuntu
Fixed in:6.11.0-1011.12~24.04.1USN-7381-1
linux-image-lowlatency-hwe-22.04Ubuntu
Fixed in:6.8.0-60.63.1~22.04.1USN-7513-1
linux-image-lowlatency-hwe-24.04Ubuntu
Fixed in:6.11.0-1011.12~24.04.1USN-7381-1
linux-image-nvidiaUbuntu
Fixed in:6.8.0-1028.31USN-7514-1
linux-image-nvidia-6.8Ubuntu
Fixed in:6.8.0-1028.31~22.04.1USN-7514-1
linux-image-nvidia-64kUbuntu
Fixed in:6.8.0-1028.31USN-7514-1
linux-image-nvidia-64k-6.8Ubuntu
Fixed in:6.8.0-1028.31~22.04.1USN-7514-1
linux-image-nvidia-64k-hwe-22.04Ubuntu
Fixed in:6.8.0-1028.31~22.04.1USN-7514-1
linux-image-nvidia-hwe-22.04Ubuntu
Fixed in:6.8.0-1028.31~22.04.1USN-7514-1
linux-image-nvidia-lowlatencyUbuntu
Fixed in:6.8.0-1028.31.1USN-7514-1
linux-image-nvidia-lowlatency-64kUbuntu
Fixed in:6.8.0-1028.31.1USN-7514-1
linux-image-oem-22.04Ubuntu
Fixed in:6.8.0-60.63~22.04.1USN-7513-4
linux-image-oem-22.04aUbuntu
Fixed in:6.8.0-60.63~22.04.1USN-7513-4
linux-image-oem-22.04bUbuntu
Fixed in:6.8.0-60.63~22.04.1USN-7513-4
linux-image-oem-22.04cUbuntu
Fixed in:6.8.0-60.63~22.04.1USN-7513-4
linux-image-oem-22.04dUbuntu
Fixed in:6.8.0-60.63~22.04.1USN-7513-4
linux-image-oem-24.04Ubuntu
Fixed in:6.8.0-1028.28USN-7513-3
linux-image-oem-24.04aUbuntu
Fixed in:6.8.0-1028.28USN-7513-3
linux-image-oem-24.04bUbuntu
Fixed in:6.11.0-1017.17USN-7382-1
linux-image-oracleUbuntu
Fixed in:6.8.0-1026.27~22.04.1USN-7513-5
Fixed in:6.8.0-1026.27USN-7513-1
linux-image-oracle-64kUbuntu
Fixed in:6.8.0-1026.27~22.04.1USN-7513-5
Fixed in:6.8.0-1026.27USN-7513-1
linux-image-oracle-64k-lts-24.04Ubuntu
Fixed in:6.8.0-1026.27USN-7513-1
linux-image-oracle-lts-24.04Ubuntu
Fixed in:6.8.0-1026.27USN-7513-1
linux-image-raspiUbuntu
Fixed in:6.8.0-1028.32USN-7524-1
linux-image-raspi-realtimeUbuntu
Fixed in:6.8.0-2023.24USN-7523-1
linux-image-realtimeUbuntu
Fixed in:6.8.1-1022.23USN-7513-2
linux-image-virtualUbuntu
Fixed in:6.8.0-60.63USN-7513-1
linux-image-virtual-hwe-22.04Ubuntu
Fixed in:6.8.0-60.63~22.04.1USN-7513-4
linux-image-virtual-hwe-24.04Ubuntu
Fixed in:6.11.0-21.21~24.04.1USN-7379-1
linux-lowlatencyUbuntu
Fixed in:6.8.0-60.63.1USN-7513-1
linux-lowlatency-hwe-6.11Ubuntu
Fixed in:6.11.0-1011.12~24.04.1USN-7381-1
linux-lowlatency-hwe-6.8Ubuntu
Fixed in:6.8.0-60.63.1~22.04.1USN-7513-1
linux-nvidiaUbuntu
Fixed in:6.8.0-1028.31USN-7514-1
linux-nvidia-6.8Ubuntu
Fixed in:6.8.0-1028.31~22.04.1USN-7514-1
linux-nvidia-lowlatencyUbuntu
Fixed in:6.8.0-1028.31.1USN-7514-1
linux-oem-6.11Ubuntu
Fixed in:6.11.0-1017.17USN-7382-1
linux-oem-6.8Ubuntu
Fixed in:6.8.0-1028.28USN-7513-3
linux-oracleUbuntu
Fixed in:6.8.0-1026.27USN-7513-1
linux-oracle-6.8Ubuntu
Fixed in:6.8.0-1026.27~22.04.1USN-7513-5
linux-raspiUbuntu
Fixed in:6.8.0-1028.32USN-7524-1
linux-raspi-realtimeUbuntu
Fixed in:6.8.0-2023.24USN-7523-1
linux-realtimeUbuntu
Fixed in:6.8.1-1022.23USN-7513-2

Remediation is compiled from vendor and distribution security advisories. Always confirm against the linked source for your exact version and platform.

CVSS v3 Vector

Exploitability

Attack VectorLocal
Attack ComplexityLow
Privileges RequiredLow
User InteractionNone
ScopeUnchanged

Impact

ConfidentialityNone
IntegrityNone
AvailabilityHigh

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Exploit Intelligence

0.24%probability of exploitation in 30 days
15thpercentile

Low risk: more likely to be exploited than 15% of all known CVEs.

References

Related Vulnerabilities

Other CWE-476 (NULL Pointer Dereference) vulnerabilities, ordered by exploit likelihood. View all

CVESeverityCVSSEPSSExploitedFix
CVE-2023-21758High7.592%-Fix
CVE-2023-21547High7.588%-Fix
CVE-2014-3470Medium4.386%-Fix
CVE-2021-44224High8.282%-Fix
CVE-2016-0742High7.582%-Fix
CVE-2009-1386Medium5.080%-Fix
Embed a live status badge for CVE-2024-56758
CVE-2024-56758 severity badge

Markdown

[![CVE-2024-56758](https://tridentstack.com/cve/badge/CVE-2024-56758.svg)](https://tridentstack.com/cve/CVE-2024-56758)

HTML

<a href="https://tridentstack.com/cve/CVE-2024-56758"><img src="https://tridentstack.com/cve/badge/CVE-2024-56758.svg" alt="CVE-2024-56758"></a>

Find and fix vulnerabilities across your fleet

TridentStack Control continuously scans your Windows, macOS, and Linux fleet for known vulnerabilities, prioritizes them by severity and active exploitation, and patches them automatically.

Start free

This product uses NVD data but is not endorsed or certified by the NVD. EPSS scores courtesy of FIRST.org (https://www.first.org/epss). Source: CISA KEV Catalog. Data as of 2025-11-03.