CVE-2026-108976
High · 7.8CVSS
7.8
EPSS
0.6%
Published
Oct 11, 2026
CISA due date
—
Cloudanix analysis
A problem in the Emacs editor can let someone run unwanted commands on a computer simply by using a specially made file name.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Full Compromise
- Component
- Application
- Class
- Command Injection
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The vulnerability permits OS command injection when TRAMP processes filenames that bypass the incomplete tramp-user-regexp check, allowing execution of arbitrary operating system commands with the privileges of the Emacs process.
Why it matters to the business
Attackers can execute arbitrary commands on systems running vulnerable Emacs installations, potentially leading to data theft, system compromise, or disruption of developer workflows that rely on the editor for remote file access.
How an attack unfolds
An attacker crafts a malicious filename containing shell metacharacters that evades the incomplete disallowed-input list in tramp-user-regexp. When a user opens or interacts with the file via TRAMP for remote access, Emacs passes the filename to the shell without proper sanitization, resulting in command execution.
How to fix it
Upgrade GNU Emacs to version 31.2 or later and ensure TRAMP is updated to a version beyond 2.8.2. Until patches are applied, avoid using TRAMP with untrusted remote paths or filenames.
How to confirm the fix worked
Confirm Emacs reports version 31.2 or newer; test that filenames previously capable of injection are now rejected or properly escaped by TRAMP; review changelog entries referencing the incomplete fix for the prior related issue.
Typical attack path
- Identify systems or workflows using GNU Emacs with TRAMP for remote file operations
- Create or deliver a file whose name contains shell metacharacters that bypass tramp-user-regexp
- Trick or wait for a user to open or manipulate the file inside Emacs
- Emacs invokes the shell with the unsanitized filename, executing attacker-controlled commands
How to detect it
Review shell history logs, Emacs session traces, and process execution logs for unexpected command invocations triggered during file operations involving TRAMP; look for anomalous child processes spawned from Emacs when handling remote files.
What your security team should do
- Prioritize patching Emacs installations that use TRAMP for remote access within the next 30 days
- Scan internal package repositories and developer workstations for versions before 31.2
- Implement application allow-listing or sandboxing for Emacs processes handling external files
- Monitor for future updates addressing similar regexp-based input validation gaps
The record
GNU Emacs before 31.2 (and TRAMP through 2.8.2) allows OS command injection via a filename because tramp-user-regexp has an incomplete list of disallowed inputs. NOTE: this issue exists because of an incomplete fix for CVE-2026-79992.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-119567 vsftpd through 3.0.5 contains an access control bypass vulnerability that allows… CWE-184
- CVE-2026-96196 Incomplete list of disallowed inputs in Microsoft Edge (Chromium-based) allows an… CWE-184
- CVE-2026-117530 In JetBrains Junie CLI before 26.8.17 command execution was possible due to incomplete… CWE-184
- CVE-2026-115845 An incomplete list of disallowed inputs in the Python code validator of the run_script… CWE-184
- CVE-2026-115751 Agentfront mcp-from-openapi from 2.2.0 before 2.9.0 contains a server-side request… CWE-184
- CVE-2026-114615 Authlib is a Python library which builds OAuth and OpenID Connect servers. CWE-184
- CVE-2026-114729 Roundcube Webmail before 1.6.20 and 1.7.x before 1.7.5 is affected by a remote content… CWE-184
- CVE-2026-114728 Roundcube Webmail before 1.6.20 and 1.7.x before 1.7.5 is affected by a remote content… CWE-184