CVE-2026-71391
Off-by-One Error in GNU Emacs for Android
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
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- Passive
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
5.3
Off-by-One Error in GNU Emacs for Android
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
- Record
CVE-2026-71391- CVSS 4.0
- 5.3 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:N/SA:N - Weakness
- CWE-193
- Updated
- 2026-11-02
EUVDEUVD-2026-55260
5.3
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
- Record
EUVD-2026-55260- CVSS 4.0
- 5.3 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:N/SA:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-49vj-r7f8-c3p6
5.3
GNU Emacs for Android contains an off-by-one error in the gvar table parser in src/sfnt.c. The...
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
- Record
GHSA-49vj-r7f8-c3p6- CVSS 4.0
- 5.3 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Weakness
- CWE-193
- Updated
- 2026-11-02
NVD
5.3
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
- Record
CVE-2026-71391- CVSS 4.0
- 5.3 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Weakness
- CWE-193
- Updated
- 2026-11-02
OSV
5.3
Off-by-One Error in GNU Emacs for Android
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
- Record
CVE-2026-71391- CVSS 4.0
- 5.3 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:N/SA:N - Weakness
- CWE-193
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-71391
5.3
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
- Record
DEBIAN-CVE-2026-71391- CVSS 4.0
- 5.3 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-71391
5.3
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
- Record
UBUNTU-CVE-2026-71391- CVSS 4.0
- 5.3 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:N/SA:N - Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
emacs24Ubuntu:Pro:16.04:LTS |
All versions, plus listed versions 24.5+1-1ubuntu224.5+1-1ubuntu424.5+1-1ubuntu524.5+1-1ubuntu624.5+1-1ubuntu7 Show 6 moreShow less24.5+1-6ubuntu124.5+1-6ubuntu1.124.5+1-6ubuntu1.1+esm124.5+1-6ubuntu1.1+esm224.5+1-6ubuntu1.1+esm324.5+1-6ubuntu1.1+esm4 |
None known |
xemacs21Ubuntu:16.04:LTS |
All versions, plus listed versions 21.4.22-4ubuntu321.4.22-14ubuntu1 |
None known |
xemacs21-packagesUbuntu:16.04:LTS |
All versions, plus listed versions 2009.02.17.dfsg.2-2 |
None known |
emacs25Ubuntu:Pro:18.04:LTS |
All versions, plus listed versions 25.2+1-625.2+1-6ubuntu0.1~esm2 |
None known |
xemacs21Ubuntu:18.04:LTS |
All versions, plus listed versions 21.4.24-4ubuntu121.4.24-5ubuntu1 |
None known |
xemacs21-packagesUbuntu:18.04:LTS |
All versions, plus listed versions 2009.02.17.dfsg.2-4 |
None known |
emacsUbuntu:Pro:20.04:LTS |
All versions, plus listed versions 1:26.3+1-1ubuntu11:26.3+1-1ubuntu21:26.3+1-1ubuntu2+esm11:26.3+1-1ubuntu2+esm2 |
None known |
xemacs21Ubuntu:20.04:LTS |
All versions, plus listed versions 21.4.24-8build121.4.24-9 |
None known |
xemacs21-packagesUbuntu:20.04:LTS |
All versions, plus listed versions 2009.02.17.dfsg.2-42009.02.17.dfsg.2-5 |
None known |
xemacs21Ubuntu:22.04:LTS |
All versions, plus listed versions 21.4.24-9ubuntu2 |
None known |
Show 11 moreShow less
| Package | Affected | Fixed |
|---|---|---|
xemacs21-packagesUbuntu:22.04:LTS |
All versions, plus listed versions 2009.02.17.dfsg.2-5 |
None known |
emacsUbuntu:Pro:22.04:LTS |
All versions, plus listed versions 1:27.1+1-3ubuntu31:27.1+1-3ubuntu51:27.1+1-3ubuntu5.11:27.1+1-3ubuntu5.21:27.1+1-3ubuntu5.2+esm1 |
None known |
xemacs21Ubuntu:24.04:LTS |
All versions, plus listed versions 21.4.24-1221.4.24-12build221.4.24-12build3 |
None known |
xemacs21-packagesUbuntu:24.04:LTS |
All versions, plus listed versions 2009.02.17.dfsg.3-22009.02.17.dfsg.3-3 |
None known |
emacsUbuntu:Pro:24.04:LTS |
All versions, plus listed versions 1:29.1+1-5ubuntu11:29.2+1-1ubuntu11:29.2+1-2ubuntu41:29.3+1-1ubuntu21:29.3+1-1ubuntu2+esm11:29.3+1-1ubuntu2+esm31:29.3+1-1ubuntu2+esm4 |
None known |
emacsUbuntu:26.10 |
All versions, plus listed versions 1:30.2+1-2ubuntu11:30.2+1-6ubuntu11:30.2+1-11ubuntu1 |
None known |
xemacs21Ubuntu:26.10 |
All versions, plus listed versions 21.4.24-12build3 |
None known |
xemacs21-packagesUbuntu:26.10 |
All versions, plus listed versions 2009.02.17.dfsg.3-3build1 |
None known |
xemacs21Ubuntu:26.04:LTS |
All versions, plus listed versions 21.4.24-12build3 |
None known |
xemacs21-packagesUbuntu:26.04:LTS |
All versions, plus listed versions 2009.02.17.dfsg.3-32009.02.17.dfsg.3-3build1 |
None known |
emacsUbuntu:Pro:26.04:LTS |
All versions, plus listed versions 1:30.1+1-9ubuntu11:30.2+1-1ubuntu21:30.2+1-2ubuntu11:30.2+1-2ubuntu1+esm1 |
None known |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-71391 is a medium vulnerability (CVSS 5.3) in Gnu Emacs, published August 10, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.54%, the 45th percentile. No source names a fixed version.
References
cert.pl/en/posts/2026/08/CVE-2026-71391
gnu.org/savannah-checkouts/gnu/emacs/emacs.html
git.savannah.gnu.org/cgit/emacs.git/commit?id=95ab9ef627b212d74d321c5bbb5b56a1be7b9fbe
nvd.nist.gov/vuln/detail/CVE-2026-71391
github.com/advisories/GHSA-49vj-r7f8-c3p6
github.com/CVEProject/cvelistV5/tree/main/cves/2026/71xxx/CVE-2026-71391.json