CVE-2021-47090: Vulnerability in Linux Linux
In the Linux kernel, the following vulnerability has been resolved: mm/hwpoison: clear MF_COUNT_INCREASED before retrying get_any_page() Hulk Robot reported a panic in put_page_testzero() when testing madvise() with MADV_SOFT_OFFLINE. The BUG() is triggered when retrying get_any_page(). This is because we keep MF_COUNT_INCREASED flag in second try but the refcnt is not increased. page dumped because: VM_BUG_ON_PAGE(page_ref_count(page) == 0) ------------[ cut here ]------------ kernel BUG at include/linux/mm.h:737! invalid opcode: 0000 [#1] PREEMPT SMP CPU: 5 PID: 2135 Comm: sshd Tainted: G B 5.16.0-rc6-dirty #373 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1.1 04/01/2014 RIP: release_pages+0x53f/0x840 Call Trace: free_pages_and_swap_cache+0x64/0x80 tlb_flush_mmu+0x6f/0x220 unmap_page_range+0xe6c/0x12c0 unmap_single_vma+0x90/0x170 unmap_vmas+0xc4/0x180 exit_mmap+0xde/0x3a0 mmput+0xa3/0x250 do_exit+0x564/0x1470 do_group_exit+0x3b/0x100 __do_sys_exit_group+0x13/0x20 __x64_sys_exit_group+0x16/0x20 do_syscall_64+0x34/0x80 entry_SYSCALL_64_after_hwframe+0x44/0xae Modules linked in: ---[ end trace e99579b570fe0649 ]--- RIP: 0010:release_pages+0x53f/0x840
AI Analysis
Technical Summary
CVE-2021-47090 is a vulnerability identified in the Linux kernel's memory management subsystem, specifically within the hardware poison handling code (mm/hwpoison). The issue arises in the function get_any_page() when it is retried after a failure. The vulnerability was reported by Hulk Robot, who observed a kernel panic triggered in put_page_testzero() during tests involving the madvise() system call with the MADV_SOFT_OFFLINE flag. The root cause is that the MF_COUNT_INCREASED flag, which indicates an increased reference count on a memory page, is not cleared before retrying get_any_page(). Consequently, the reference count is not properly incremented on the second attempt, leading to a mismatch between the flag state and the actual reference count. This inconsistency causes a VM_BUG_ON_PAGE assertion failure when the page reference count is zero, resulting in a kernel BUG and system panic. The panic trace shows the failure occurring in release_pages(), which is part of the page freeing and memory unmapping process. This bug can cause system instability and crashes when applications invoke madvise() with MADV_SOFT_OFFLINE, a feature used to mark pages as offline for hardware error handling. The vulnerability affects Linux kernel versions prior to the patch that clears MF_COUNT_INCREASED before retrying get_any_page(). No known exploits are reported in the wild, and no CVSS score has been assigned yet. The vulnerability is technical and low-level, impacting kernel memory management and page reference counting mechanisms.
Potential Impact
For European organizations, the impact of CVE-2021-47090 primarily involves system stability and availability risks. Servers and infrastructure running vulnerable Linux kernel versions may experience unexpected kernel panics and crashes when workloads or applications use madvise() with MADV_SOFT_OFFLINE, potentially leading to downtime and service interruptions. This can affect critical systems such as cloud infrastructure, data centers, and enterprise servers that rely on Linux for stability and performance. Although the vulnerability does not directly expose confidentiality or integrity risks, the denial of service caused by kernel panics can disrupt business operations, especially in environments requiring high availability. Organizations using Linux kernels with hardware error handling features or memory poisoning mechanisms are more likely to encounter this issue. The lack of known exploits reduces immediate risk, but unpatched systems remain vulnerable to accidental or triggered crashes. In regulated industries or sectors with strict uptime requirements, such as finance, healthcare, and telecommunications, this vulnerability could have operational and compliance implications if not addressed promptly.
Mitigation Recommendations
To mitigate CVE-2021-47090, European organizations should: 1) Apply the official Linux kernel patches that clear the MF_COUNT_INCREASED flag before retrying get_any_page(), ensuring the reference count handling is correct. This patch is critical and should be prioritized in kernel updates. 2) Identify and inventory all systems running affected Linux kernel versions, especially those using memory poisoning or madvise() with MADV_SOFT_OFFLINE. 3) Test kernel updates in staging environments to verify stability and compatibility before production deployment. 4) Monitor system logs for kernel panics or BUG_ON_PAGE errors related to memory management, which may indicate attempts to trigger this vulnerability. 5) Limit or audit the use of madvise() with MADV_SOFT_OFFLINE in applications if possible, as a temporary workaround to reduce exposure. 6) Maintain robust backup and recovery procedures to minimize downtime impact from potential crashes. 7) Engage with Linux distribution vendors for timely security updates and advisories related to this vulnerability. These steps go beyond generic advice by focusing on kernel patching, targeted monitoring, and operational controls specific to the vulnerability's triggering conditions.
Affected Countries
Germany, France, United Kingdom, Netherlands, Sweden, Finland, Italy, Spain
CVE-2021-47090: Vulnerability in Linux Linux
Description
In the Linux kernel, the following vulnerability has been resolved: mm/hwpoison: clear MF_COUNT_INCREASED before retrying get_any_page() Hulk Robot reported a panic in put_page_testzero() when testing madvise() with MADV_SOFT_OFFLINE. The BUG() is triggered when retrying get_any_page(). This is because we keep MF_COUNT_INCREASED flag in second try but the refcnt is not increased. page dumped because: VM_BUG_ON_PAGE(page_ref_count(page) == 0) ------------[ cut here ]------------ kernel BUG at include/linux/mm.h:737! invalid opcode: 0000 [#1] PREEMPT SMP CPU: 5 PID: 2135 Comm: sshd Tainted: G B 5.16.0-rc6-dirty #373 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1.1 04/01/2014 RIP: release_pages+0x53f/0x840 Call Trace: free_pages_and_swap_cache+0x64/0x80 tlb_flush_mmu+0x6f/0x220 unmap_page_range+0xe6c/0x12c0 unmap_single_vma+0x90/0x170 unmap_vmas+0xc4/0x180 exit_mmap+0xde/0x3a0 mmput+0xa3/0x250 do_exit+0x564/0x1470 do_group_exit+0x3b/0x100 __do_sys_exit_group+0x13/0x20 __x64_sys_exit_group+0x16/0x20 do_syscall_64+0x34/0x80 entry_SYSCALL_64_after_hwframe+0x44/0xae Modules linked in: ---[ end trace e99579b570fe0649 ]--- RIP: 0010:release_pages+0x53f/0x840
AI-Powered Analysis
Technical Analysis
CVE-2021-47090 is a vulnerability identified in the Linux kernel's memory management subsystem, specifically within the hardware poison handling code (mm/hwpoison). The issue arises in the function get_any_page() when it is retried after a failure. The vulnerability was reported by Hulk Robot, who observed a kernel panic triggered in put_page_testzero() during tests involving the madvise() system call with the MADV_SOFT_OFFLINE flag. The root cause is that the MF_COUNT_INCREASED flag, which indicates an increased reference count on a memory page, is not cleared before retrying get_any_page(). Consequently, the reference count is not properly incremented on the second attempt, leading to a mismatch between the flag state and the actual reference count. This inconsistency causes a VM_BUG_ON_PAGE assertion failure when the page reference count is zero, resulting in a kernel BUG and system panic. The panic trace shows the failure occurring in release_pages(), which is part of the page freeing and memory unmapping process. This bug can cause system instability and crashes when applications invoke madvise() with MADV_SOFT_OFFLINE, a feature used to mark pages as offline for hardware error handling. The vulnerability affects Linux kernel versions prior to the patch that clears MF_COUNT_INCREASED before retrying get_any_page(). No known exploits are reported in the wild, and no CVSS score has been assigned yet. The vulnerability is technical and low-level, impacting kernel memory management and page reference counting mechanisms.
Potential Impact
For European organizations, the impact of CVE-2021-47090 primarily involves system stability and availability risks. Servers and infrastructure running vulnerable Linux kernel versions may experience unexpected kernel panics and crashes when workloads or applications use madvise() with MADV_SOFT_OFFLINE, potentially leading to downtime and service interruptions. This can affect critical systems such as cloud infrastructure, data centers, and enterprise servers that rely on Linux for stability and performance. Although the vulnerability does not directly expose confidentiality or integrity risks, the denial of service caused by kernel panics can disrupt business operations, especially in environments requiring high availability. Organizations using Linux kernels with hardware error handling features or memory poisoning mechanisms are more likely to encounter this issue. The lack of known exploits reduces immediate risk, but unpatched systems remain vulnerable to accidental or triggered crashes. In regulated industries or sectors with strict uptime requirements, such as finance, healthcare, and telecommunications, this vulnerability could have operational and compliance implications if not addressed promptly.
Mitigation Recommendations
To mitigate CVE-2021-47090, European organizations should: 1) Apply the official Linux kernel patches that clear the MF_COUNT_INCREASED flag before retrying get_any_page(), ensuring the reference count handling is correct. This patch is critical and should be prioritized in kernel updates. 2) Identify and inventory all systems running affected Linux kernel versions, especially those using memory poisoning or madvise() with MADV_SOFT_OFFLINE. 3) Test kernel updates in staging environments to verify stability and compatibility before production deployment. 4) Monitor system logs for kernel panics or BUG_ON_PAGE errors related to memory management, which may indicate attempts to trigger this vulnerability. 5) Limit or audit the use of madvise() with MADV_SOFT_OFFLINE in applications if possible, as a temporary workaround to reduce exposure. 6) Maintain robust backup and recovery procedures to minimize downtime impact from potential crashes. 7) Engage with Linux distribution vendors for timely security updates and advisories related to this vulnerability. These steps go beyond generic advice by focusing on kernel patching, targeted monitoring, and operational controls specific to the vulnerability's triggering conditions.
Affected Countries
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
- 2024-02-29T22:33:44.300Z
- Cisa Enriched
- true
- Cvss Version
- null
- State
- PUBLISHED
Threat ID: 682d9834c4522896dcbe9ca9
Added to database: 5/21/2025, 9:09:08 AM
Last enriched: 6/30/2025, 9:24:44 PM
Last updated: 8/17/2025, 6:14:36 PM
Views: 18
Related Threats
CVE-2025-53948: CWE-415 Double Free in Santesoft Sante PACS Server
HighCVE-2025-52584: CWE-122 Heap-based Buffer Overflow in Ashlar-Vellum Cobalt
HighCVE-2025-46269: CWE-122 Heap-based Buffer Overflow in Ashlar-Vellum Cobalt
HighCVE-2025-54862: CWE-79 Improper Neutralization of Input During Web Page Generation (XSS or 'Cross-site Scripting') in Santesoft Sante PACS Server
MediumCVE-2025-54759: CWE-79 Improper Neutralization of Input During Web Page Generation (XSS or 'Cross-site Scripting') in Santesoft Sante PACS Server
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.