CVE-2024-46687

HIGHNVD 7.87.8
EchelonGraph scoreMEDIUM confidence

Score 7.8 from GitHub Security Advisory (severity: HIGH) published 2024-09-13. NVD baseline CVSS 7.8; sources differ by 0.0.

Triggered by: GitHub Security Advisory CVSS
Sources: epss, ghsa, nvd
7.8
EchelonGraph verdictPlan a fixSerious severity, but no confirmed exploitation yet.
  • High severity, but no confirmed exploitation yet
CISA-KEV: Not listedEPSS: 0%CVSS: 7.8Exploit: NoneExposed: 0

A fix is available — apply it.

In the Linux kernel, the following vulnerability has been resolved:

btrfs: fix a use-after-free when hitting errors inside btrfs_submit_chunk()

[BUG] There is an internal report that KASAN is reporting use-after-free, with the following backtrace:

BUG: KASAN: slab-use-after-free in btrfs_check_read_bio+0xa68/0xb70 [btrfs] Read of size 4 at addr ffff8881117cec28 by task kworker/u16:2/45 CPU: 1 UID: 0 PID: 45 Comm: kworker/u16:2 Not tainted 6.11.0-rc2-next-20240805-default+ #76 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.2-3-gd478f380-rebuilt.opensuse.org 04/01/2014 Workqueue: btrfs-endio btrfs_end_bio_work [btrfs] Call Trace: dump_stack_lvl+0x61/0x80 print_address_description.constprop.0+0x5e/0x2f0 print_report+0x118/0x216 kasan_report+0x11d/0x1f0 btrfs_check_read_bio+0xa68/0xb70 [btrfs] process_one_work+0xce0/0x12a0 worker_thread+0x717/0x1250 kthread+0x2e3/0x3c0 ret_from_fork+0x2d/0x70 ret_from_fork_asm+0x11/0x20

Allocated by task 20917: kasan_save_stack+0x37/0x60 kasan_save_track+0x10/0x30 __kasan_slab_alloc+0x7d/0x80 kmem_cache_alloc_noprof+0x16e/0x3e0 mempool_alloc_noprof+0x12e/0x310 bio_alloc_bioset+0x3f0/0x7a0 btrfs_bio_alloc+0x2e/0x50 [btrfs] submit_extent_page+0x4d1/0xdb0 [btrfs] btrfs_do_readpage+0x8b4/0x12a0 [btrfs] btrfs_readahead+0x29a/0x430 [btrfs] read_pages+0x1a7/0xc60 page_cache_ra_unbounded+0x2ad/0x560 filemap_get_pages+0x629/0xa20 filemap_read+0x335/0xbf0 vfs_read+0x790/0xcb0 ksys_read+0xfd/0x1d0 do_syscall_64+0x6d/0x140 entry_SYSCALL_64_after_hwframe+0x4b/0x53

Freed by task 20917: kasan_save_stack+0x37/0x60 kasan_save_track+0x10/0x30 kasan_save_free_info+0x37/0x50 __kasan_slab_free+0x4b/0x60 kmem_cache_free+0x214/0x5d0 bio_free+0xed/0x180 end_bbio_data_read+0x1cc/0x580 [btrfs] btrfs_submit_chunk+0x98d/0x1880 [btrfs] btrfs_submit_bio+0x33/0x70 [btrfs] submit_one_bio+0xd4/0x130 [btrfs] submit_extent_page+0x3ea/0xdb0 [btrfs] btrfs_do_readpage+0x8b4/0x12a0 [btrfs] btrfs_readahead+0x29a/0x430 [btrfs] read_pages+0x1a7/0xc60 page_cache_ra_unbounded+0x2ad/0x560 filemap_get_pages+0x629/0xa20 filemap_read+0x335/0xbf0 vfs_read+0x790/0xcb0 ksys_read+0xfd/0x1d0 do_syscall_64+0x6d/0x140 entry_SYSCALL_64_after_hwframe+0x4b/0x53

[CAUSE] Although I cannot reproduce the error, the report itself is good enough to pin down the cause.

The call trace is the regular endio workqueue context, but the free-by-task trace is showing that during btrfs_submit_chunk() we already hit a critical error, and is calling btrfs_bio_end_io() to error out. And the original endio function called bio_put() to free the whole bio.

This means a double freeing thus causing use-after-free, e.g.:

  • Enter btrfs_submit_bio() with a read bio
The read bio length is 128K, crossing two 64K stripes.
  • The first run of btrfs_submit_chunk()

2.1 Call btrfs_map_block(), which returns 64K 2.2 Call btrfs_split_bio() Now there are two bios, one referring to the first 64K, the other referring to the second 64K. 2.3 The first half is submitted.

  • The second run of btrfs_submit_chunk()

3.1 Call btrfs_map_block(), which by somehow failed Now we call btrfs_bio_end_io() to handle the error

3.2 btrfs_bio_end_io() calls the original endio function Which is end_bbio_data_read(), and it calls bio_put() for the original bio.

Now the original bio is freed.

  • The submitted first 64K bio finished
Now we call into btrfs_check_read_bio() and tries to advance the bio iter. But since the original bio (thus its iter) is already freed, we trigger the above use-after free.

And even if the memory is not poisoned/corrupted, we will later call the original endio function, causing a double freeing.

[FIX] Instead of calling btrfs_bio_end_io(), call btrfs_orig_bbio_end_io(), which has the extra check on split bios and do the pr ---truncated---

CVSS v3
7.8
EG Score
7.8(medium)
EG Risk
35(Track)
EG Risk 35/100SSVC: Track

EG Risk is EchelonGraph's 0–100 priority score: it fuses intrinsic severity with real-world exploitation and automatability so you can rank equal-severity CVEs and fix the most dangerous first. Higher = act sooner. Distinct from the 0–10 EG Score (severity).

How it’s computed
Severity78% × 45%
Exploitation0% × 40%
Automatability0% × 15%
Action: Routine — remediate on your standard cadence.
EPSS
11.5%
KEV
Not listed

Published

September 13, 2024

Last Modified

September 14, 2024

Vendor Advisories for CVE-2024-46687(1)

These vendors published their own advisory mentioning this CVE — often with vendor-specific remediation steps + affected product lists not in NVD.

Patch Availability(6)

Vendor / EcosystemFixed in / PatchReleasedSource
ubuntulinux-virtual-hwe-24.04 (6.8.0-50.51) @ noble2026-05-23ubuntu
ubuntulinux-tools-gkeop-6.8 (6.8.0-1002.4) @ noble2026-05-23ubuntu
ubuntulinux-tools-nvidia-lowlatency-64k (6.8.0-1019.21.1) @ noble2026-05-23ubuntu
ubuntulinux-virtual-hwe-22.04-edge (6.8.0-50.51~22.04.1) @ jammy2026-05-23ubuntu
ubuntulinux-tools-azure (6.8.0-1020.23) @ noble2026-05-23ubuntu
linuxKernel @ 6.6.49osv

Patches are aggregated from vendor advisories (Red Hat, Microsoft, Cisco, GitHub) and package ecosystems (OSV, GHSA). Multiple rows for the same upstream release have been deduplicated.

Weakness Classification(2)

MITRE Common Weakness Enumeration — the root-cause categories this CVE belongs to.

Additional Vendor Advisories

(5)

Data Freshness Timeline

(refreshed 13× in last 7d / 44× in last 30d)

Each row is a source pipeline that fetched or updated this CVE on that date, with what changed. For example, "NVD update" means NVD published or revised its analysis for this CVE; "MITRE cvelistV5" means we ingested or refreshed it from the CNA feed. Most recent first.

Showing the most recent 100 of 104 total refreshes for this CVE.

  1. 2026-07-24 14:16 UTCEPSS rescore
  2. 2026-07-23 14:17 UTCEPSS rescore
  3. 2026-07-23 02:41 UTCEG score recompute
  4. 2026-07-22 14:07 UTCEPSS rescore
  5. 2026-07-21 15:23 UTCEPSS rescore
  6. 2026-07-21 15:23 UTCEPSS rescore
  7. 2026-07-20 17:06 UTCEPSS rescore
  8. 2026-07-19 14:30 UTCEPSS rescore
  9. 2026-07-19 14:30 UTCEPSS rescore
  10. 2026-07-19 02:28 UTCEPSS rescore
  11. 2026-07-19 02:28 UTCEPSS rescore
  12. 2026-07-18 10:03 UTCEPSS rescore
  13. 2026-07-18 10:03 UTCEPSS rescore
  14. 2026-07-16 17:02 UTCEPSS rescore
  15. 2026-07-15 16:56 UTCEPSS rescore
  16. 2026-07-15 16:56 UTCEPSS rescore
  17. 2026-07-15 01:59 UTCEPSS rescore
  18. 2026-07-15 01:59 UTCEPSS rescore
  19. 2026-07-13 22:29 UTCEPSS rescore
  20. 2026-07-13 08:07 UTCOSV refresh
  21. 2026-07-13 06:12 UTCEPSS rescore
  22. 2026-07-12 05:45 UTCEPSS rescore
  23. 2026-07-12 05:45 UTCEPSS rescore
  24. 2026-07-11 08:26 UTCEPSS rescore
  25. 2026-07-09 19:09 UTCEPSS rescore
Show 75 more
  1. 2026-07-09 19:09 UTCEPSS rescore
  2. 2026-07-08 15:14 UTCEPSS rescore
  3. 2026-07-07 13:45 UTCEPSS rescore
  4. 2026-07-06 16:26 UTCEPSS rescore
  5. 2026-07-06 02:22 UTCEPSS rescore
  6. 2026-07-06 02:22 UTCEPSS rescore
  7. 2026-07-04 06:30 UTCEPSS rescore
  8. 2026-07-01 15:05 UTCEPSS rescore
  9. 2026-06-30 23:21 UTCEPSS rescore
  10. 2026-06-30 23:21 UTCEPSS rescore
  11. 2026-06-29 14:05 UTCEPSS rescore
  12. 2026-06-28 14:07 UTCEPSS rescore
  13. 2026-06-28 14:06 UTCEPSS rescore
  14. 2026-06-28 04:55 UTCEPSS rescore
  15. 2026-06-28 04:55 UTCEPSS rescore
  16. 2026-06-27 03:07 UTCEPSS rescore
  17. 2026-06-27 03:07 UTCEPSS rescore
  18. 2026-06-25 13:49 UTCEPSS rescore
  19. 2026-06-24 22:01 UTCOSV refresh
  20. 2026-06-24 14:04 UTCEPSS rescore
  21. 2026-06-24 14:04 UTCEPSS rescore
  22. 2026-06-23 21:32 UTCEPSS rescore
  23. 2026-06-23 21:32 UTCEPSS rescore
  24. 2026-06-22 14:25 UTCEPSS rescore
  25. 2026-06-22 14:25 UTCEPSS rescore
  26. 2026-06-21 14:55 UTCEPSS rescore
  27. 2026-06-21 01:58 UTCEPSS rescore
  28. 2026-06-21 01:58 UTCEPSS rescore
  29. 2026-06-19 19:25 UTCEPSS rescore
  30. 2026-06-19 19:25 UTCEPSS rescore
  31. 2026-06-18 17:52 UTCEPSS rescore
  32. 2026-06-18 17:52 UTCEPSS rescore
  33. 2026-06-17 17:52 UTCEPSS rescore
  34. 2026-06-16 17:52 UTCEPSS rescore
  35. 2026-06-16 17:52 UTCEPSS rescore
  36. 2026-06-15 17:47 UTCEPSS rescore
  37. 2026-06-14 23:17 UTCEPSS rescore
  38. 2026-06-13 22:59 UTCEPSS rescore
  39. 2026-06-13 22:59 UTCEPSS rescore
  40. 2026-06-13 22:59 UTCEPSS rescore
  41. 2026-06-12 23:11 UTCEPSS rescore
  42. 2026-06-12 23:11 UTCEPSS rescore
  43. 2026-06-11 13:59 UTCEPSS rescore
  44. 2026-06-10 22:18 UTCEPSS rescore
  45. 2026-06-10 13:21 UTCEPSS rescore
  46. 2026-06-08 14:16 UTCEPSS rescore
  47. 2026-06-08 14:16 UTCEPSS rescore
  48. 2026-06-07 21:20 UTCOSV refresh
  49. 2026-06-07 15:24 UTCEPSS rescore
  50. 2026-06-07 15:24 UTCEPSS rescore
  51. 2026-06-06 13:46 UTCEPSS rescore
  52. 2026-06-06 13:46 UTCEPSS rescore
  53. 2026-06-05 22:46 UTCEPSS rescore
  54. 2026-06-05 22:46 UTCEPSS rescore
  55. 2026-06-05 06:09 UTCEPSS rescore
  56. 2026-06-05 06:09 UTCEPSS rescore
  57. 2026-06-04 13:11 UTCEPSS rescore
  58. 2026-06-04 13:11 UTCEPSS rescore
  59. 2026-06-02 20:12 UTCEPSS rescore
  60. 2026-06-02 20:12 UTCEPSS rescore
  61. 2026-06-01 13:51 UTCEPSS rescore
  62. 2026-06-01 13:51 UTCEPSS rescore
  63. 2026-05-31 22:30 UTCEPSS rescore
  64. 2026-05-31 22:30 UTCEPSS rescore
  65. 2026-05-31 00:16 UTCEPSS rescore
  66. 2026-05-31 00:15 UTCEPSS rescore
  67. 2026-05-29 13:43 UTCEPSS rescore
  68. 2026-05-28 13:44 UTCEPSS rescore
  69. 2026-05-28 13:44 UTCEPSS rescore
  70. 2026-05-27 13:40 UTCEPSS rescore
  71. 2026-05-27 13:40 UTCEPSS rescore
  72. 2026-05-26 13:43 UTCEPSS rescore
  73. 2026-05-26 13:43 UTCEPSS rescore
  74. 2026-05-26 07:18 UTCEPSS rescore
  75. 2026-05-26 07:18 UTCEPSS rescore

Frequently asked(5)

What is CVE-2024-46687?
CVE-2024-46687 is a high vulnerability published on September 13, 2024. In the Linux kernel, the following vulnerability has been resolved: btrfs: fix a use-after-free when hitting errors inside btrfssubmitchunk() [BUG] There is an internal report that KASAN is reporting use-after-free, with the following backtrace: BUG: KASAN: slab-use-after-free in…
When was CVE-2024-46687 disclosed?
CVE-2024-46687 was first published in the National Vulnerability Database on September 13, 2024, with the most recent update on September 14, 2024. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2024-46687 actively exploited?
CVE-2024-46687 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 11.5% percentile likelihood of exploitation in the next 30 days — higher percentiles indicate greater predicted risk.
What is the CVSS score of CVE-2024-46687?
CVE-2024-46687 has a CVSS v3 base score of 7.8 (NVD).
How do I remediate CVE-2024-46687?
Patch to the fixed version published by the affected vendor. Where vendor advisories exist for CVE-2024-46687, EchelonGraph cross-links them in the Vendor Advisories panel below — those typically contain the canonical remediation steps, fixed version numbers, and any vendor-specific mitigations.

Dependency Blast Radius

Explore the affected products and dependency analysis for CVE-2024-46687

Explore →

Is Your Infrastructure Affected by CVE-2024-46687?

EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.