| CVE ID | CVE-2026-71391 |
| Publication date | 10 August 2026 |
| Vendor | GNU |
| Product | Emacs |
| Vulnerable versions | All through 30.2 |
| Vulnerability type (CWE) | Off-by-one Error (CWE-193) |
| Report source | Report to CERT Polska |
| CVE ID | CVE-2026-71392 |
| Publication date | 10 August 2026 |
| Vendor | GNU |
| Product | Emacs |
| Vulnerable versions | All through 30.2 |
| Vulnerability type (CWE) | Integer Overflow or Wraparound (CWE-190) |
| Report source | Report to CERT Polska |
| CVE ID | CVE-2026-71393 |
| Publication date | 10 August 2026 |
| Vendor | GNU |
| Product | Emacs |
| Vulnerable versions | All through 30.2 |
| Vulnerability type (CWE) | Integer Overflow or Wraparound (CWE-190) |
| Report source | Report to CERT Polska |
| CVE ID | CVE-2026-71394 |
| Publication date | 10 August 2026 |
| Vendor | GNU |
| Product | Emacs |
| Vulnerable versions | All through 30.2 |
| Vulnerability type (CWE) | Improper Validation of Specified Quantity in Input (CWE-1284) |
| Report source | Report to CERT Polska |
Description
CERT Polska has received a report about vulnerabilities in GNU Emacs software and participated in coordination of their disclosure.
The vulnerability CVE-2026-71391: GNU Emacs for Android contains an off-by-one error in the gvar table parser in src/sfnt.c. The shared-coordinate index boundary check in sfnt_vary_simple_glyph() and sfnt_vary_compound_glyph() uses a strict greater-than comparison instead of greater-than-or-equal, allowing a crafted TrueType variable font to bypass the check and trigger a heap-based out-of-bounds read via memcpy. 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 exposes heap memory contents which can be later used to defeat ASLR.
This issue was fixed in commit 95ab9ef627b212d74d321c5bbb5b56a1be7b9fbe
The vulnerability CVE-2026-71392: GNU Emacs for Android is vulnerable to an integer overflow in the sfnt_read_cmap_format_12() function in src/sfnt.c. When processing a crafted TrueType font file, an unguarded addition in the xmalloc allocation call wraps around on 32-bit builds, causing a heap buffer overflow write. An attacker can deliver a malicious font file via email, EWW, or documents with custom faces, causing Emacs to load it. This results in heap memory corruption that can lead to code execution.
This issue was fixed in commit c4e20777c26548722a37b03db93243e83a0d6188
The vulnerability CVE-2026-71393: 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, 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
The vulnerability CVE-2026-71394: GNU Emacs for Android improperly validates the table header input in sfnt_read_table_directory() in src/sfnt.c. Due to an incorrect comparison variable in the read-length check, a crafted font file that claims to contain more table directory entries than actually present causes the parser to return a struct with uninitialized heap memory in the table directory entries. An attacker can deliver a malicious font file via email, EWW, or documents with custom faces, causing Emacs to load it. This leads to the use of uninitialized heap data in subsequent table lookups, potentially resulting in information disclosure, crashes, or arbitrary memory access on 32-bit targets.
This issue is fixed after commit 7621ee1d01229d50e5c0cddea6bf0b01095a62cf
Credits
We thank Michał Majchrowicz and Marcin Wyczechowski from AFINE Team for the responsible vulnerability report.
More about the coordinated vulnerability disclosure process at CERT Polska can be found at https://cert.pl/en/cvd/.