Security Vulnerability Report
中文
CVE-2025-61664 CVSS 4.9 MEDIUM

CVE-2025-61664

Published: 2025-11-18 19:15:51
Last Modified: 2026-05-19 16:16:19

Description

A vulnerability in the GRUB2 bootloader has been identified in the normal module. This flaw, a memory Use After Free issue, occurs because the normal_exit command is not properly unregistered when its related module is unloaded. An attacker can exploit this condition by invoking the command after the module has been removed, causing the system to improperly access a previously freed memory location. This leads to a system crash or possible impacts in data confidentiality and integrity.

CVSS Details

CVSS Score
4.9
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L

Configurations (Affected Products)

No configuration data available.

Red Hat Enterprise Linux 6
Red Hat Enterprise Linux 7
Red Hat Enterprise Linux 8
Red Hat Enterprise Linux 9
Fedora (all supported versions)
GRUB2 < 2.12 (修复版本)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-61664 PoC - GRUB2 normal_exit Use After Free # This PoC demonstrates the UAF condition in GRUB2 normal module # Note: This requires physical access to the system during boot # Steps to reproduce: # 1. Boot into GRUB2 shell # 2. Load the normal module # 3. Unload the normal module # 4. Attempt to execute normal_exit command # GRUB shell commands: # # Load normal module # insmod normal # # Unload normal module (this should trigger UAF on normal_exit) # unload normal # # This will attempt to execute normal_exit which now points to freed memory # normal_exit # In a real exploitation scenario, an attacker would: # 1. Have local/physical access to the system # 2. Modify GRUB configuration to enter shell during boot # 3. Trigger the UAF condition # 4. Potentially achieve code execution via heap manipulation def trigger_uaf_condition(): """ Pseudocode for triggering the UAF condition This would be executed through GRUB shell interface """ commands = [ "insmod normal", # Load normal module "unload normal", # Unload module (UAF occurs here) "normal_exit" # Call freed command handler ] return commands # For metasploit module development, the exploitation would involve: # 1. Heap spraying in GRUB2 environment # 2. Precise timing to control freed memory contents # 3. Overwriting function pointers in the command structure

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-61664", "sourceIdentifier": "[email protected]", "published": "2025-11-18T19:15:50.610", "lastModified": "2026-05-19T16:16:19.183", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "A vulnerability in the GRUB2 bootloader has been identified in the normal module. This flaw, a memory Use After Free issue, occurs because the normal_exit command is not properly unregistered when its related module is unloaded. An attacker can exploit this condition by invoking the command after the module has been removed, causing the system to improperly access a previously freed memory location. This leads to a system crash or possible impacts in data confidentiality and integrity."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L", "baseScore": 4.9, "baseSeverity": "MEDIUM", "attackVector": "LOCAL", "attackComplexity": "HIGH", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "LOW"}, "exploitabilityScore": 1.4, "impactScore": 3.4}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-825"}]}], "references": [{"url": "https://access.redhat.com/security/cve/CVE-2025-61664", "source": "[email protected]"}, {"url": "https://bugzilla.redhat.com/show_bug.cgi?id=2414685", "source": "[email protected]"}, {"url": "https://lists.gnu.org/archive/html/grub-devel/2025-11/msg00155.html", "source": "[email protected]"}]}}