CVE-2024-26953: net: esp: fix bad handling of pages from page_pool

Published May 1, 2024
·
Updated

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

net: esp: fix bad handling of pages from pagepool

The Linux kernel CVE team has assigned CVE-2024-26953 to this issue.

Upstream advisory: https://lore.kernel.org/linux-cve-announce/2024050128-CVE-2024-26953-8304@gregkh/T

Other sources

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

net: esp: fix bad handling of pages from pagepool

When the skb is reorganized during espoutput (!esp->inline), the pages coming from the original skb fragments are supposed to be released back to the system through putpage. But if the skb fragment pages are originating from a pagepool, calling putpage on them will trigger a pagepool leak which will eventually result in a crash.

This leak can be easily observed when using CONFIGDEBUGVM and doing ipsec + gre (non offloaded) forwarding:

BUG: Bad page state in process ksoftirqd/16 pfn:1451b6 page:00000000de2b8d32 refcount:0 mapcount:0 mapping:0000000000000000 index:0x1451b6000 pfn:0x1451b6 flags: 0x200000000000000(node=0|zone=2) pagetype: 0xffffffff() raw: 0200000000000000 dead000000000040 ffff88810d23c000 0000000000000000 raw: 00000001451b6000 0000000000000001 00000000ffffffff 0000000000000000 page dumped because: pagepool leak Modules linked in: ipgre gre mlx5ib mlx5core xtconntrack xtMASQUERADE nfconntracknetlink nfnetlink iptablenat nfnat xtaddrtype brnetfilter rpcrdma rdmaucm ibiser libiscsi scsitransportiscsi ibumad rdmacm ibipoib iwcm ibcm ibuverbs ibcore overlay zram zsmalloc fuse [last unloaded: mlx5core] CPU: 16 PID: 96 Comm: ksoftirqd/16 Not tainted 6.8.0-rc4+ #22 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.org 04/01/2014 Call Trace: <TASK> dumpstacklvl+0x36/0x50 badpage+0x70/0xf0 freeunrefpageprepare+0x27a/0x460 freeunrefpage+0x38/0x120 espssgunref.isra.0+0x15f/0x200 espoutputtail+0x66d/0x780 espxmit+0x2c5/0x360 validatexmitxfrm+0x313/0x370 ? validatexmitskb+0x1d/0x330 validatexmitskblist+0x4c/0x70 schdirectxmit+0x23e/0x350 devqueuexmit+0x337/0xba0 ? nfhookslow+0x3f/0xd0 ipfinishoutput2+0x25e/0x580 iptunnelxmit+0x19b/0x240 iptunnelxmit+0x5fb/0xb60 ipgrexmit+0x14d/0x280 [ipgre] devhardstartxmit+0xc3/0x1c0 devqueuexmit+0x208/0xba0 ? nfhookslow+0x3f/0xd0 ipfinishoutput2+0x1ca/0x580 ipsublistrcvfinish+0x32/0x40 ipsublistrcv+0x1b2/0x1f0 ? iprcvfinishcore.constprop.0+0x460/0x460 iplistrcv+0x103/0x130 netifreceiveskblistcore+0x181/0x1e0 netifreceiveskblistinternal+0x1b3/0x2c0 napigroreceive+0xc8/0x200 grocellpoll+0x52/0x90 napipoll+0x25/0x1a0 netrxaction+0x28e/0x300 dosoftirq+0xc3/0x276 ? sortrange+0x20/0x20 runksoftirqd+0x1e/0x30 smpbootthreadfn+0xa6/0x130 kthread+0xcd/0x100 ? kthreadcompleteandexit+0x20/0x20 retfromfork+0x31/0x50 ? kthreadcompleteandexit+0x20/0x20 retfromforkasm+0x11/0x20 </TASK>

The suggested fix is to introduce a new wrapper (skbpageunref) that covers page refcounting for pagepool pages as well.

NVD

Affected Software

8 affected componentsFixes available
debian/linux<=6.1.129-1, <=6.1.133-1
5.10.223-15.10.234-16.12.21-16.12.22-1
redhat/kernel<6.6.24
6.6.24
redhat/kernel<6.7.12
6.7.12
redhat/kernel<6.8.3
6.8.3
redhat/kernel<6.9
6.9
Linux Linux kernel>=5.14<6.6.24
Linux Linux kernel>=6.7<6.7.12
Linux Linux kernel>=6.8<6.8.3

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade debian/linux to a version that resolves this vulnerability.

    Fixed in 5.10.223-1Fixed in 5.10.234-1Fixed in 6.12.21-1Fixed in 6.12.22-1
  2. Upgrade

    Upgrade redhat/kernel to a version that resolves this vulnerability.

    Fixed in 6.6.24
  3. Upgrade

    Upgrade redhat/kernel to a version that resolves this vulnerability.

    Fixed in 6.7.12
  4. Upgrade

    Upgrade redhat/kernel to a version that resolves this vulnerability.

    Fixed in 6.8.3
  5. Upgrade

    Upgrade redhat/kernel to a version that resolves this vulnerability.

    Fixed in 6.9
  6. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Patch CVE-2024-26953
  7. Configuration

    Apply the upstream net: esp fix: during esp_output (!esp->inline) skb reorganization, release original skb fragment pages using the new skb_page_unref wrapper (covers page refcounting for page_pool pages); this prevents page_pool leaks that lead to a crash (CVE-2024-26953).

    Linux kernel networking (net: esp) Page refcounting behavior for skb fragment pages from page_pool = Use skb_page_unref wrapper instead of calling put_page so page_pool pages are released with correct refcounting
  8. Compensating control

    As a mitigation to observe/trigger and validate the leak condition, use CONFIG_DEBUG_VM and run ipsec + gre forwarding (non offloaded) as described; avoid this workload on affected kernels if it can reproduce the page_pool leak/crash.

Event History

May 1, 2024
CVE Published
via MITRE·05:18 AM
Data Sourced
via MITRE·05:18 AM
DescriptionSeverity
Data Sourced
via NVD·06:15 AM
Description
Data Sourced
via NVD·06:15 AM
RemedySeverityAffected Software
Data Sourced
via Red Hat·04:44 PM
DescriptionSeverityAffected Software
Jun 8, 2024
Data Sourced
via Launchpad·01:11 AM
Description
Apr 16, 2025
Data Sourced
via Ubuntu·02:19 PM
RemedyDescriptionSeverityAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2024-26953?

CVE-2024-26953 is categorized with a high severity rating due to its impact on the Linux kernel's handling of pages.

2

What versions of the Linux kernel are affected by CVE-2024-26953?

CVE-2024-26953 affects Linux kernel versions prior to 6.6.24, 6.7.12, 6.8.3, and 6.9 on Red Hat, as well as specific versions on Debian.

3

How do I fix CVE-2024-26953?

To fix CVE-2024-26953, update the Linux kernel to the remedied versions specified for your distribution.

4

Is CVE-2024-26953 being actively exploited?

As of now, there is no public indication that CVE-2024-26953 is being actively exploited in the wild.

5

What are the recommended mitigation strategies for CVE-2024-26953?

The primary mitigation strategy for CVE-2024-26953 is to ensure timely updates to the kernel to the latest secure versions.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203