Skip to main content

GNU Emacs CVE-2026-71393

| EUVDEUVD-2026-55258 MEDIUM
Integer Overflow or Wraparound (CWE-190)
2026-08-10 CERT-PL GHSA-4rgf-7285-chf8
5.3
CVSS 4.0 · Vendor: CERT-PL
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Craft TrueType font with overflowing name table length
  2. Delivery
    Embed font in email or host on web page
  3. Exploit
    Victim opens/previews content in 32-bit Emacs for Android
  4. Install
    sfnt_read_name_table() computes wrapped allocation size
  5. C2
    malloc() allocates undersized heap buffer
  6. Execute
    read() writes font data past buffer boundary
  7. Impact
    Heap memory corruption enabling potential code execution

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Integer overflow checks
MITRE ATT&CK

1 technique across 1 tactic: Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires all of the following to be simultaneously true: (1) the target is running GNU Emacs for Android as a 32-bit process - the integer overflow wrapping behavior is specific to 32-bit arithmetic and does not occur in 64-bit builds where size calculations use wider types; (2) the victim passively interacts with attacker-controlled content that causes Emacs to invoke sfnt_read_name_table() on the malicious font - specifically, opening or previewing an HTML email with an embedded crafted font in a mail client within Emacs (e.g., Rmail, Gnus, mu4e), browsing a page containing the font via EWW (Emacs Web Wowser), or opening a document that specifies a custom font face referencing the malicious file; (3) no prior authentication or elevated privileges are required from the attacker. Exploitation is concretely limited by: the 32-bit-only arithmetic constraint (most modern Android devices running 64-bit Emacs builds are not affected); the passive user interaction requirement (a victim must open or preview the malicious content - this is not a zero-click vulnerability); and Android's heap allocator hardening (scudo/tcmalloc), which significantly raises the practical bar for turning heap corruption into reliable code execution. No special server-side daemon, open port, or non-default Emacs configuration is required - the vulnerability is triggered entirely by the client-side TrueType font parsing path, which is active whenever Emacs renders content using sfnt.

Impact

The official CVSS 4.0 score of 5.3 (Medium) with vector AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:L/SC:N/SI:L/SA:N is notably conservative relative to the description's stated 'potential code execution' and the RCE tag. The scoring authority assessed only low availability impact on the vulnerable system and low subsequent-system integrity impact, suggesting they did not treat reliable RCE as a confident outcome - likely reflecting the fact that practical exploitation of heap overflows on modern Android is constrained by heap hardening (e.g., scudo, tcmalloc variants used in Android), ASLR, and the non-deterministic heap layout. No EPSS data was provided, preventing a probabilistic exploitation estimate. The vulnerability is not in CISA KEV, and no public exploit or proof-of-concept code has been identified at time of analysis, despite the 'RCE' tag in the intelligence data - tags should be treated as potential impact descriptors, not exploitation confirmations. The 32-bit-only constraint meaningfully limits the affected population: modern Android devices and many Emacs-for-Android installations running as 64-bit processes are not vulnerable. The UI:P (passive user interaction) requirement means the attack surface is real but not zero-click - a victim must open or preview attacker-controlled content. Overall, this is a medium-real-world-risk issue: meaningful to 32-bit Emacs-for-Android users who handle untrusted fonts or email, but not a broad enterprise priority given the niche deployment footprint.

Exploit ScenarioDerived

An attacker crafts a TrueType font file with a malformed name table length field chosen to trigger integer overflow wrap-around in a 32-bit sfnt_read_name_table() calculation, producing a heap allocation far smaller than the data to be written. The attacker embeds the font in an HTML email and sends it to a victim using GNU Emacs for Android on a 32-bit device; when the victim opens or previews the email, Emacs loads the font to render the message, triggering the heap overflow and potentially corrupting adjacent heap metadata or function pointers. If the heap layout is favorable, this overflow could be leveraged for arbitrary code execution within the Emacs process on the Android device.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 10, 2026

Heap buffer overflow in GNU Emacs for Android's TrueType font parser (sfnt_read_name_table() in src/sfnt.c) enables potential code execution when a 32-bit Emacs process loads a crafted font file. The root cause is a CWE-190 integer overflow that wraps a 32-bit allocation size calculation, producing an undersized heap buffer that a subsequent read() call overflows. Delivery is possible through multiple standard Emacs workflows - email rendering, EWW web browsing, or documents with custom font faces - requiring only passive user interaction, with no authentication required from the attacker. No public exploit has been identified at time of analysis and the vulnerability is not listed in CISA KEV, though a patch commit is confirmed upstream.

RemediationAI

The upstream fix is available in commit d51a4722316efe0960994d371e1859099894d1ca in the GNU Emacs Savannah git repository (https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=d51a4722316efe0960994d371e1859099894d1ca); a specific tagged release version incorporating this commit has not been confirmed in the available intelligence, so users should monitor the GNU Emacs release page and the CERT-PL advisory at https://cert.pl/en/posts/2026/08/CVE-2026-71391 for the first packaged release post-commit. Users able to build from source should apply the commit immediately. Pending a packaged release, compensating controls for 32-bit Emacs-for-Android users include: avoiding opening or previewing HTML email from untrusted senders within Emacs (reduces email-based font delivery); disabling EWW or restricting it to trusted sites (eliminates the web-browsing attack surface); and avoiding opening documents from untrusted sources that may specify custom font faces. These workarounds reduce but do not eliminate attack surface and impose usability trade-offs; none address the underlying integer overflow. Upgrading to a 64-bit build of Emacs for Android, where available, effectively eliminates this specific overflow but requires device and distribution support.

Affected VersionsENISA

emacs 0 ≤30.2

Affected Packages

euvd emacs no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The vulnerability is located in the sfnt subsystem of GNU Emacs (CPE: cpe:2.3:a:gnu:emacs:*:*:*:*:*:*:*:*), which implements TrueType and OpenType font rendering for the Android port of Emacs. The function sfnt_read_name_table() in src/sfnt.c reads a 32-bit length field directly from an attacker-supplied font binary and uses it in an arithmetic size computation to determine heap allocation size. On 32-bit targets - where size_t and related types are 32 bits wide - the arithmetic can wrap around (CWE-190: Integer Overflow or Wraparound), yielding a value far smaller than the intended buffer size. malloc() then allocates an undersized heap region, and a subsequent read() call fills it using the original, untruncated length, overwriting adjacent heap memory. This classic integer overflow to heap buffer overflow pattern is well-understood and has historically been leveraged for reliable code execution when heap layout is sufficiently predictable. The 32-bit constraint is specific to Android's 32-bit ABI; 64-bit builds use wider arithmetic and are not susceptible to this particular overflow. The fix is a commit to the GNU Emacs Savannah repository that adds proper overflow checking before the allocation.

Know when Emacs gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (CERT-PL) PRIMARY 5.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:L/SC:N/SI:L/SA:N
vuln.today AI 7.5 HIGH

32-bit target requirement is a condition beyond attacker control (AC:H); no auth required (PR:N); user must load malicious font (UI:R); heap overflow enables full process compromise if reliably exploited (C:H/I:H/A:H).

3.1 AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H
4.0 AV:N/AC:H/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
SUSE 7.8 HIGH
AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Red Hat 7.8 MEDIUM

Primary rating from Vendor (CERT-PL).

CVSS VectorVendor: CERT-PL

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
Low
Subsequent system: Availability
None

DescriptionCVE.org

GNU Emacs for Android is vulnerable to an integer overflow in sfnt_read_name_table() in src/sfnt.c. The function computes an allocation size using a 32-bit length value from a TrueType font file without overflow checking. On 32-bit targets, a crafted font causes the calculation to wrap, resulting in an undersized heap allocation. A subsequent read() call writes beyond the buffer, causing a heap buffer overflow. An attacker can deliver a malicious font file via email, EWW (Emacs Web Wowser), or documents with custom faces, causing Emacs to load it. This can lead to heap memory corruption and potential code execution.

This issue was fixed in commit d51a4722316efe0960994d371e1859099894d1ca

Threat Intelligence Overview

EPSS Score
0.4%
Top 68% exploitable
Prevalence
Low
niche Android port of a desktop editor, limited enterprise footprint
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor CIRCL VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

Integer overflow occurs when an arithmetic operation produces a result that exceeds the maximum value a given integer type can store.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

More in Emacs

View all
CVE-2012-0035 CRITICAL
9.3 Jan 19

Untrusted search path vulnerability in EDE in CEDET before 1.0.1, as used in GNU Emacs before 23.4 and other products, a

CVE-2024-39331 CRITICAL
9.8 Jun 23

In Emacs before 29.4, org-link-expand-abbrev in lisp/ol.el expands a %(...) link abbrev even when it specifies an unsafe

CVE-2017-14482 HIGH
8.8 Sep 14

GNU Emacs before 25.3 allows remote attackers to execute arbitrary code via email with crafted "Content-Type: text/enric

CVE-2024-53920 HIGH
7.8 Nov 27

In elisp-mode.el in GNU Emacs before 30.1, a user who chooses to invoke elisp-completion-at-point (for code completion)

CVE-2026-108976 HIGH
7.8 Oct 11

OS command injection in GNU Emacs's TRAMP remote-file library (Emacs releases before 31.2, TRAMP through 2.8.2) lets an

CVE-2026-96442 HIGH
7.8 Sep 23

Code execution in GNU Emacs versions prior to 31.2 occurs when Flymake performs on-the-fly syntax checking with a langua

CVE-2024-30202 HIGH
7.8 Mar 25

In Emacs before 29.3, arbitrary Lisp code is evaluated as part of turning on Org mode. Rated high severity (CVSS 7.8), t

CVE-2023-2491 HIGH
7.8 May 17

A flaw was found in the Emacs text editor. Rated high severity (CVSS 7.8), this vulnerability is low attack complexity.

CVE-2023-27986 HIGH
7.8 Mar 09

emacsclient-mail.desktop in Emacs 28.1 through 28.2 is vulnerable to Emacs Lisp code injections through a crafted mailto

CVE-2023-27985 HIGH
7.8 Mar 09

emacsclient-mail.desktop in Emacs 28.1 through 28.2 is vulnerable to shell command injections through a crafted mailto:

CVE-2022-45939 HIGH
7.8 Nov 28

GNU Emacs through 28.2 allows attackers to execute commands via shell metacharacters in the name of a source-code file,

CVE-2014-9483 HIGH
7.5 Aug 28

Emacs 24.4 allows remote attackers to bypass security restrictions. Rated high severity (CVSS 7.5), this vulnerability i

Vendor StatusVendor

SUSE

Severity: Important
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise High Performance Computing 12 Not-Affected
SUSE Linux Enterprise High Performance Computing 15 SP7 Not-Affected
SUSE Linux Enterprise Module for Basesystem 15 SP7 Not-Affected
SUSE Linux Enterprise Module for Desktop Applications 15 SP7 Not-Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy