CVE-2023-52998: Vulnerability in Linux Linux
In the Linux kernel, the following vulnerability has been resolved: net: fec: Use page_pool_put_full_page when freeing rx buffers The page_pool_release_page was used when freeing rx buffers, and this function just unmaps the page (if mapped) and does not recycle the page. So after hundreds of down/up the eth0, the system will out of memory. For more details, please refer to the following reproduce steps and bug logs. To solve this issue and refer to the doc of page pool, the page_pool_put_full_page should be used to replace page_pool_release_page. Because this API will try to recycle the page if the page refcnt equal to 1. After testing 20000 times, the issue can not be reproduced anymore (about testing 391 times the issue will occur on i.MX8MN-EVK before). Reproduce steps: Create the test script and run the script. The script content is as follows: LOOPS=20000 i=1 while [ $i -le $LOOPS ] do echo "TINFO:ENET $curface up and down test $i times" org_macaddr=$(cat /sys/class/net/eth0/address) ifconfig eth0 down ifconfig eth0 hw ether $org_macaddr up i=$(expr $i + 1) done sleep 5 if cat /sys/class/net/eth0/operstate | grep 'up';then echo "TEST PASS" else echo "TEST FAIL" fi Bug detail logs: TINFO:ENET up and down test 391 times [ 850.471205] Qualcomm Atheros AR8031/AR8033 30be0000.ethernet-1:00: attached PHY driver (mii_bus:phy_addr=30be0000.ethernet-1:00, irq=POLL) [ 853.535318] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 853.541694] fec 30be0000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx [ 870.590531] page_pool_release_retry() stalled pool shutdown 199 inflight 60 sec [ 931.006557] page_pool_release_retry() stalled pool shutdown 199 inflight 120 sec TINFO:ENET up and down test 392 times [ 991.426544] page_pool_release_retry() stalled pool shutdown 192 inflight 181 sec [ 1051.838531] page_pool_release_retry() stalled pool shutdown 170 inflight 241 sec [ 1093.751217] Qualcomm Atheros AR8031/AR8033 30be0000.ethernet-1:00: attached PHY driver (mii_bus:phy_addr=30be0000.ethernet-1:00, irq=POLL) [ 1096.446520] page_pool_release_retry() stalled pool shutdown 308 inflight 60 sec [ 1096.831245] fec 30be0000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx [ 1096.839092] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 1112.254526] page_pool_release_retry() stalled pool shutdown 103 inflight 302 sec [ 1156.862533] page_pool_release_retry() stalled pool shutdown 308 inflight 120 sec [ 1172.674516] page_pool_release_retry() stalled pool shutdown 103 inflight 362 sec [ 1217.278532] page_pool_release_retry() stalled pool shutdown 308 inflight 181 sec TINFO:ENET up and down test 393 times [ 1233.086535] page_pool_release_retry() stalled pool shutdown 103 inflight 422 sec [ 1277.698513] page_pool_release_retry() stalled pool shutdown 308 inflight 241 sec [ 1293.502525] page_pool_release_retry() stalled pool shutdown 86 inflight 483 sec [ 1338.110518] page_pool_release_retry() stalled pool shutdown 308 inflight 302 sec [ 1353.918540] page_pool_release_retry() stalled pool shutdown 32 inflight 543 sec [ 1361.179205] Qualcomm Atheros AR8031/AR8033 30be0000.ethernet-1:00: attached PHY driver (mii_bus:phy_addr=30be0000.ethernet-1:00, irq=POLL) [ 1364.255298] fec 30be0000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx [ 1364.263189] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 1371.998532] page_pool_release_retry() stalled pool shutdown 310 inflight 60 sec [ 1398.530542] page_pool_release_retry() stalled pool shutdown 308 inflight 362 sec [ 1414.334539] page_pool_release_retry() stalled pool shutdown 16 inflight 604 sec [ 1432.414520] page_pool_release_retry() stalled pool shutdown 310 inflight 120 sec [ 1458.942523] page_pool_release_retry() stalled pool shutdown 308 inflight 422 sec [ 1474.750521] page_pool_release_retry() stalled pool shutdown 16 inflight 664 sec TINFO:ENET up and down test 394 times [ 1492.8305 ---truncated---
AI Analysis
Technical Summary
CVE-2023-52998 is a vulnerability identified in the Linux kernel's network driver subsystem, specifically affecting the 'fec' (Fast Ethernet Controller) driver. The issue arises from improper memory management when freeing receive (rx) buffers. The vulnerable code uses the function page_pool_release_page to free rx buffers, which only unmaps the page if it is mapped but does not recycle the page back to the page pool. This leads to a gradual memory leak as pages are not returned to the pool for reuse. The problem manifests after repeatedly bringing the network interface (eth0) down and up hundreds or thousands of times, eventually causing the system to run out of memory (OOM). The root cause is that page_pool_release_page does not decrement the page reference count or recycle the page, whereas the correct function to use is page_pool_put_full_page, which recycles the page if its reference count is one. Testing showed that after approximately 391 cycles of down/up on an affected device (i.MX8MN-EVK), the memory leak and pool stall occur, but after applying the fix, the issue could not be reproduced even after 20,000 cycles. The vulnerability is specific to the Linux kernel's network driver implementation and affects systems using the fec driver, commonly found in embedded devices and certain SoCs (System on Chips). The bug logs indicate stalled page pool shutdowns and inflight pages accumulating over time, confirming the memory leak and resource exhaustion. No CVSS score is assigned yet, and no known exploits are reported in the wild. The vulnerability was published on March 27, 2025, and the fix involves replacing page_pool_release_page with page_pool_put_full_page in the driver code to ensure proper page recycling and prevent memory exhaustion.
Potential Impact
For European organizations, the impact of CVE-2023-52998 depends largely on their use of Linux systems running the affected kernel versions with the fec network driver. This vulnerability primarily affects embedded Linux devices and certain network interface controllers, which may be present in industrial control systems, IoT devices, telecommunications equipment, and specialized networking hardware. The memory leak caused by repeated network interface resets can lead to system instability, degraded performance, or complete denial of service due to out-of-memory conditions. In critical infrastructure sectors such as manufacturing, energy, transportation, and telecommunications, this could disrupt operations and cause downtime. Although exploitation requires repeated interface cycling, which might be triggered by an attacker with local access or through automated scripts, the lack of user interaction or authentication requirements lowers the barrier for exploitation in some scenarios. European organizations relying on embedded Linux devices with the affected drivers should be aware of potential service interruptions and plan for timely patching. The vulnerability does not directly expose data confidentiality or integrity but impacts availability, which is critical for operational continuity. Given the widespread use of Linux in European IT and OT environments, the threat is relevant but more acute for sectors using embedded Linux hardware with the fec driver.
Mitigation Recommendations
To mitigate CVE-2023-52998, organizations should: 1) Identify all Linux systems and embedded devices using the fec network driver, especially those running kernel versions prior to the patch. 2) Apply the official Linux kernel patches that replace page_pool_release_page with page_pool_put_full_page in the fec driver code to ensure proper memory management. 3) For devices where kernel patching is not immediately feasible, implement monitoring of memory usage and page pool metrics to detect early signs of memory leaks or stalled pools. 4) Limit unnecessary network interface down/up cycles, especially automated scripts or management tools that might trigger repeated resets. 5) Employ network segmentation and access controls to restrict local access to devices vulnerable to this issue, reducing the risk of exploitation by unauthorized users. 6) Coordinate with device vendors and embedded system manufacturers to obtain updated firmware or kernel versions addressing this vulnerability. 7) Incorporate this vulnerability into vulnerability management and patching workflows to ensure timely remediation. 8) Consider fallback or redundancy mechanisms for critical systems to maintain availability during patch deployment or in case of exploitation.
Affected Countries
Germany, France, United Kingdom, Netherlands, Italy, Spain, Poland, Sweden, Finland, Belgium
CVE-2023-52998: Vulnerability in Linux Linux
Description
In the Linux kernel, the following vulnerability has been resolved: net: fec: Use page_pool_put_full_page when freeing rx buffers The page_pool_release_page was used when freeing rx buffers, and this function just unmaps the page (if mapped) and does not recycle the page. So after hundreds of down/up the eth0, the system will out of memory. For more details, please refer to the following reproduce steps and bug logs. To solve this issue and refer to the doc of page pool, the page_pool_put_full_page should be used to replace page_pool_release_page. Because this API will try to recycle the page if the page refcnt equal to 1. After testing 20000 times, the issue can not be reproduced anymore (about testing 391 times the issue will occur on i.MX8MN-EVK before). Reproduce steps: Create the test script and run the script. The script content is as follows: LOOPS=20000 i=1 while [ $i -le $LOOPS ] do echo "TINFO:ENET $curface up and down test $i times" org_macaddr=$(cat /sys/class/net/eth0/address) ifconfig eth0 down ifconfig eth0 hw ether $org_macaddr up i=$(expr $i + 1) done sleep 5 if cat /sys/class/net/eth0/operstate | grep 'up';then echo "TEST PASS" else echo "TEST FAIL" fi Bug detail logs: TINFO:ENET up and down test 391 times [ 850.471205] Qualcomm Atheros AR8031/AR8033 30be0000.ethernet-1:00: attached PHY driver (mii_bus:phy_addr=30be0000.ethernet-1:00, irq=POLL) [ 853.535318] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 853.541694] fec 30be0000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx [ 870.590531] page_pool_release_retry() stalled pool shutdown 199 inflight 60 sec [ 931.006557] page_pool_release_retry() stalled pool shutdown 199 inflight 120 sec TINFO:ENET up and down test 392 times [ 991.426544] page_pool_release_retry() stalled pool shutdown 192 inflight 181 sec [ 1051.838531] page_pool_release_retry() stalled pool shutdown 170 inflight 241 sec [ 1093.751217] Qualcomm Atheros AR8031/AR8033 30be0000.ethernet-1:00: attached PHY driver (mii_bus:phy_addr=30be0000.ethernet-1:00, irq=POLL) [ 1096.446520] page_pool_release_retry() stalled pool shutdown 308 inflight 60 sec [ 1096.831245] fec 30be0000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx [ 1096.839092] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 1112.254526] page_pool_release_retry() stalled pool shutdown 103 inflight 302 sec [ 1156.862533] page_pool_release_retry() stalled pool shutdown 308 inflight 120 sec [ 1172.674516] page_pool_release_retry() stalled pool shutdown 103 inflight 362 sec [ 1217.278532] page_pool_release_retry() stalled pool shutdown 308 inflight 181 sec TINFO:ENET up and down test 393 times [ 1233.086535] page_pool_release_retry() stalled pool shutdown 103 inflight 422 sec [ 1277.698513] page_pool_release_retry() stalled pool shutdown 308 inflight 241 sec [ 1293.502525] page_pool_release_retry() stalled pool shutdown 86 inflight 483 sec [ 1338.110518] page_pool_release_retry() stalled pool shutdown 308 inflight 302 sec [ 1353.918540] page_pool_release_retry() stalled pool shutdown 32 inflight 543 sec [ 1361.179205] Qualcomm Atheros AR8031/AR8033 30be0000.ethernet-1:00: attached PHY driver (mii_bus:phy_addr=30be0000.ethernet-1:00, irq=POLL) [ 1364.255298] fec 30be0000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx [ 1364.263189] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 1371.998532] page_pool_release_retry() stalled pool shutdown 310 inflight 60 sec [ 1398.530542] page_pool_release_retry() stalled pool shutdown 308 inflight 362 sec [ 1414.334539] page_pool_release_retry() stalled pool shutdown 16 inflight 604 sec [ 1432.414520] page_pool_release_retry() stalled pool shutdown 310 inflight 120 sec [ 1458.942523] page_pool_release_retry() stalled pool shutdown 308 inflight 422 sec [ 1474.750521] page_pool_release_retry() stalled pool shutdown 16 inflight 664 sec TINFO:ENET up and down test 394 times [ 1492.8305 ---truncated---
AI-Powered Analysis
Technical Analysis
CVE-2023-52998 is a vulnerability identified in the Linux kernel's network driver subsystem, specifically affecting the 'fec' (Fast Ethernet Controller) driver. The issue arises from improper memory management when freeing receive (rx) buffers. The vulnerable code uses the function page_pool_release_page to free rx buffers, which only unmaps the page if it is mapped but does not recycle the page back to the page pool. This leads to a gradual memory leak as pages are not returned to the pool for reuse. The problem manifests after repeatedly bringing the network interface (eth0) down and up hundreds or thousands of times, eventually causing the system to run out of memory (OOM). The root cause is that page_pool_release_page does not decrement the page reference count or recycle the page, whereas the correct function to use is page_pool_put_full_page, which recycles the page if its reference count is one. Testing showed that after approximately 391 cycles of down/up on an affected device (i.MX8MN-EVK), the memory leak and pool stall occur, but after applying the fix, the issue could not be reproduced even after 20,000 cycles. The vulnerability is specific to the Linux kernel's network driver implementation and affects systems using the fec driver, commonly found in embedded devices and certain SoCs (System on Chips). The bug logs indicate stalled page pool shutdowns and inflight pages accumulating over time, confirming the memory leak and resource exhaustion. No CVSS score is assigned yet, and no known exploits are reported in the wild. The vulnerability was published on March 27, 2025, and the fix involves replacing page_pool_release_page with page_pool_put_full_page in the driver code to ensure proper page recycling and prevent memory exhaustion.
Potential Impact
For European organizations, the impact of CVE-2023-52998 depends largely on their use of Linux systems running the affected kernel versions with the fec network driver. This vulnerability primarily affects embedded Linux devices and certain network interface controllers, which may be present in industrial control systems, IoT devices, telecommunications equipment, and specialized networking hardware. The memory leak caused by repeated network interface resets can lead to system instability, degraded performance, or complete denial of service due to out-of-memory conditions. In critical infrastructure sectors such as manufacturing, energy, transportation, and telecommunications, this could disrupt operations and cause downtime. Although exploitation requires repeated interface cycling, which might be triggered by an attacker with local access or through automated scripts, the lack of user interaction or authentication requirements lowers the barrier for exploitation in some scenarios. European organizations relying on embedded Linux devices with the affected drivers should be aware of potential service interruptions and plan for timely patching. The vulnerability does not directly expose data confidentiality or integrity but impacts availability, which is critical for operational continuity. Given the widespread use of Linux in European IT and OT environments, the threat is relevant but more acute for sectors using embedded Linux hardware with the fec driver.
Mitigation Recommendations
To mitigate CVE-2023-52998, organizations should: 1) Identify all Linux systems and embedded devices using the fec network driver, especially those running kernel versions prior to the patch. 2) Apply the official Linux kernel patches that replace page_pool_release_page with page_pool_put_full_page in the fec driver code to ensure proper memory management. 3) For devices where kernel patching is not immediately feasible, implement monitoring of memory usage and page pool metrics to detect early signs of memory leaks or stalled pools. 4) Limit unnecessary network interface down/up cycles, especially automated scripts or management tools that might trigger repeated resets. 5) Employ network segmentation and access controls to restrict local access to devices vulnerable to this issue, reducing the risk of exploitation by unauthorized users. 6) Coordinate with device vendors and embedded system manufacturers to obtain updated firmware or kernel versions addressing this vulnerability. 7) Incorporate this vulnerability into vulnerability management and patching workflows to ensure timely remediation. 8) Consider fallback or redundancy mechanisms for critical systems to maintain availability during patch deployment or in case of exploitation.
For access to advanced analysis and higher rate limits, contact root@offseq.com
Technical Details
- Data Version
- 5.1
- Assigner Short Name
- Linux
- Date Reserved
- 2025-03-27T16:40:15.742Z
- Cisa Enriched
- false
- Cvss Version
- null
- State
- PUBLISHED
Threat ID: 682d982fc4522896dcbe6ca0
Added to database: 5/21/2025, 9:09:03 AM
Last enriched: 7/1/2025, 2:57:31 AM
Last updated: 8/5/2025, 4:19:27 PM
Views: 19
Related Threats
CVE-2025-36088: CWE-79 Improper Neutralization of Input During Web Page Generation (XSS or 'Cross-site Scripting') in IBM Storage TS4500 Library
MediumCVE-2025-43490: CWE-59 Improper Link Resolution Before File Access ('Link Following') in HP, Inc. HP Hotkey Support Software
MediumCVE-2025-9060: CWE-20 Improper Input Validation in MSoft MFlash
CriticalCVE-2025-8675: CWE-918 Server-Side Request Forgery (SSRF) in Drupal AI SEO Link Advisor
MediumCVE-2025-8362: CWE-79 Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') in Drupal GoogleTag Manager
MediumActions
Updates to AI analysis are available only with a Pro account. Contact root@offseq.com for access.
External Links
Need enhanced features?
Contact root@offseq.com for Pro access with improved analysis and higher rate limits.