REDHAT-BUG-2537347: High severity GNU Emacs vulnerability
Emacs upstream reports:
Bas Alberts of the GitHub Security Lab discovered that the fix for CVE-2024-53920, an arbitrary code execution flaw in Emacs, was incomplete. Viewing or editing untrusted text files in modes other than Emacs Lisp mode can also permit arbitrary code execution. For example:
#!/usr/bin/perl # -- mode: perl; mode: flymake -- BEGIN { system("touch uhoh.txt"); }
This problem affects all Emacs versions affected by CVE-2024-53920. This means Emacs 24 and newer, and possibly also older versions.
A minimal fix, attached, is queued up for release with Emacs 31.2. We (the Emacs upstream maintainers) don't expect to backport the fix to older Emacs releases ourselves.
Source: https://www.openwall.com/lists/oss-security/2026/09/14/1
Upstream commit - emacs-31 branch: https://github.com/emacs-mirror/emacs/commit/abc802ee2eb0b1663349ddf22a461f8e54a383fb
Upstream commit - master branch: https://github.com/emacs-mirror/emacs/commit/135e6f63f08fee3d374fa1a5187bce941a2d3e3c
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Emacsto a version that resolves this vulnerability.Fixed in 31.2
Event History
Frequently Asked Questions
Which Emacs installations should be considered exposed?
All Emacs versions affected by CVE-2024-53920 are affected, including Emacs 24 and newer. Older versions may also be affected, but this is not confirmed in the available information.
What does an attacker need to exploit this issue?
The attacker needs a target to view or edit an untrusted text file in a mode other than Emacs Lisp mode. A file can use mode declarations to trigger code execution, as illustrated by a Perl file that enables Flymake.
Is an upstream fix available for older Emacs releases?
A minimal upstream fix is queued for Emacs 31.2. Upstream maintainers do not expect to backport it to older Emacs releases.
What can be done before an update is available?
Avoid viewing or editing untrusted text files in Emacs, particularly files that can select non-Emacs-Lisp modes through file-local mode declarations. Treat such files as potentially capable of executing arbitrary code.