CVE-2024-40979

MEDIUMNVD 5.55.5
EchelonGraph scoreMEDIUM confidence

Score 5.5 from GitHub Security Advisory published 2024-07-12. NVD baseline CVSS 5.5; sources differ by 0.0.

Triggered by: GitHub Security Advisory CVSS
Sources: epss, ghsa, nvd
5.5
EchelonGraph verdictMonitorLow exploitation likelihood right now — keep watching.
  • Lower severity and no public exploit yet
CISA-KEV: Not listedEPSS: 0%CVSS: 5.5Exploit: NoneExposed: 0

A fix is available — apply it.

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

wifi: ath12k: fix kernel crash during resume

Currently during resume, QMI target memory is not properly handled, resulting in kernel crash in case DMA remap is not supported:

BUG: Bad page state in process kworker/u16:54 pfn:36e80 page: refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x36e80 page dumped because: nonzero _refcount Call Trace: bad_page free_page_is_bad_report __free_pages_ok __free_pages dma_direct_free dma_free_attrs ath12k_qmi_free_target_mem_chunk ath12k_qmi_msg_mem_request_cb

The reason is: Once ath12k module is loaded, firmware sends memory request to host. In case DMA remap not supported, ath12k refuses the first request due to failure in allocating with large segment size:

ath12k_pci 0000:04:00.0: qmi firmware request memory request ath12k_pci 0000:04:00.0: qmi mem seg type 1 size 7077888 ath12k_pci 0000:04:00.0: qmi mem seg type 4 size 8454144 ath12k_pci 0000:04:00.0: qmi dma allocation failed (7077888 B type 1), will try later with small size ath12k_pci 0000:04:00.0: qmi delays mem_request 2 ath12k_pci 0000:04:00.0: qmi firmware request memory request

Later firmware comes back with more but small segments and allocation succeeds:

ath12k_pci 0000:04:00.0: qmi mem seg type 1 size 524288 ath12k_pci 0000:04:00.0: qmi mem seg type 1 size 524288 ath12k_pci 0000:04:00.0: qmi mem seg type 1 size 524288 ath12k_pci 0000:04:00.0: qmi mem seg type 1 size 524288 ath12k_pci 0000:04:00.0: qmi mem seg type 1 size 524288 ath12k_pci 0000:04:00.0: qmi mem seg type 1 size 524288 ath12k_pci 0000:04:00.0: qmi mem seg type 1 size 524288 ath12k_pci 0000:04:00.0: qmi mem seg type 1 size 262144 ath12k_pci 0000:04:00.0: qmi mem seg type 1 size 524288 ath12k_pci 0000:04:00.0: qmi mem seg type 1 size 524288 ath12k_pci 0000:04:00.0: qmi mem seg type 1 size 524288 ath12k_pci 0000:04:00.0: qmi mem seg type 1 size 524288 ath12k_pci 0000:04:00.0: qmi mem seg type 1 size 524288 ath12k_pci 0000:04:00.0: qmi mem seg type 4 size 524288 ath12k_pci 0000:04:00.0: qmi mem seg type 4 size 524288 ath12k_pci 0000:04:00.0: qmi mem seg type 4 size 524288 ath12k_pci 0000:04:00.0: qmi mem seg type 4 size 524288 ath12k_pci 0000:04:00.0: qmi mem seg type 4 size 524288 ath12k_pci 0000:04:00.0: qmi mem seg type 4 size 524288 ath12k_pci 0000:04:00.0: qmi mem seg type 4 size 524288 ath12k_pci 0000:04:00.0: qmi mem seg type 4 size 524288 ath12k_pci 0000:04:00.0: qmi mem seg type 4 size 524288 ath12k_pci 0000:04:00.0: qmi mem seg type 4 size 524288 ath12k_pci 0000:04:00.0: qmi mem seg type 4 size 524288 ath12k_pci 0000:04:00.0: qmi mem seg type 4 size 524288 ath12k_pci 0000:04:00.0: qmi mem seg type 4 size 524288 ath12k_pci 0000:04:00.0: qmi mem seg type 4 size 524288 ath12k_pci 0000:04:00.0: qmi mem seg type 4 size 524288 ath12k_pci 0000:04:00.0: qmi mem seg type 4 size 524288 ath12k_pci 0000:04:00.0: qmi mem seg type 4 size 65536 ath12k_pci 0000:04:00.0: qmi mem seg type 1 size 524288

Now ath12k is working. If suspend is triggered, firmware will be reloaded during resume. As same as before, firmware requests two large segments at first. In ath12k_qmi_msg_mem_request_cb() segment count and size are assigned:

ab->qmi.mem_seg_count == 2 ab->qmi.target_mem[0].size == 7077888 ab->qmi.target_mem[1].size == 8454144

Then allocation failed like before and ath12k_qmi_free_target_mem_chunk() is called to free all allocated segments. Note the first segment is skipped because its v.addr is cleared due to allocation failure:

chunk->v.addr = dma_alloc_coherent()

Also note that this leaks that segment because it has not been freed.

While freeing the second segment, a size of 8454144 is passed to dma_free_coherent(). However remember that this segment is allocated at the first time firmware is loaded, before suspend. So its real size is 524288, much smaller than 8454144. As a result kernel found we are freeing some memory which is in use and thus cras ---truncated---

CVSS v3
5.5
EG Score
5.5(medium)
EPSS
17.1%
KEV
Not listed

Published

July 12, 2024

Last Modified

September 17, 2025

Vendor Advisories for CVE-2024-40979(1)

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

Patch Availability(8)

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

(7)

Data Freshness Timeline

(refreshed 9× in last 7d / 43× 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.

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

Frequently asked(5)

What is CVE-2024-40979?
CVE-2024-40979 is a medium vulnerability published on July 12, 2024. In the Linux kernel, the following vulnerability has been resolved: wifi: ath12k: fix kernel crash during resume Currently during resume, QMI target memory is not properly handled, resulting in kernel crash in case DMA remap is not supported: BUG: Bad page state in process kworker/u16:54 pfn:36e80…
When was CVE-2024-40979 disclosed?
CVE-2024-40979 was first published in the National Vulnerability Database on July 12, 2024, with the most recent update on September 17, 2025. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2024-40979 actively exploited?
CVE-2024-40979 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 17.1% percentile likelihood of exploitation in the next 30 days — higher percentiles indicate greater predicted risk.
What is the CVSS score of CVE-2024-40979?
CVE-2024-40979 has a CVSS v3 base score of 5.5 (NVD).
How do I remediate CVE-2024-40979?
Patch to the fixed version published by the affected vendor. Where vendor advisories exist for CVE-2024-40979, 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-40979

Explore →

Is Your Infrastructure Affected by CVE-2024-40979?

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