CVE-2026-103658
Received Received - Intake

Heap-based Buffer Overflow in GNU Aspell

Vulnerability report for CVE-2026-103658, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-10-12

Last updated on: 2026-10-12

Assigner: 98a01053-8a31-4f6d-9aa9-252be161adc6

Description

GNU Aspell 0.60.8.2 (first vulnerable version is not known) contains a heap-based buffer overflow write (CWE-122) in its read-only dictionary loader. String::reserve() in common/string.hpp computes its capacity check with a signed int ((int)s + 1), so a requested size of 0x7FFFFFFF wraps negative and the backing buffer is never grown. ReadOnlyDict::load() in modules/speller/default/readonly_ws.cpp passes the unvalidated 32-bit size fields from a .rws dictionary header into this path, so a crafted .rws file with a valid endian marker (12345678) and an oversized length field (e.g. lang_name_size = 0x7FFFFFFF) causes attacker-controlled data to be written out of bounds past an undersized heap allocation. An attacker who induces a victim to load a malicious dictionary β€” for example via aspell dump master β€” can corrupt heap memory, resulting in denial of service and potentially code execution. Fixed in b830b6e and will be fixed in release 0.60.8.3.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-10-12
Last Modified
2026-10-12
Generated
2026-10-13
AI Q&A
2026-10-13
EPSS Evaluated
N/A
NVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
GNU Aspell 0.60.8.2

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-122 A heap overflow condition is a buffer overflow, where the buffer that can be overwritten is allocated in the heap portion of memory, generally meaning that the buffer was allocated using a routine such as malloc().

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

GNU Aspell through 0.60.8.2 has a heap-based buffer overflow due to incorrect size calculation in String::reserve(). A crafted .rws dictionary file with a large length field (e.g., 0x7FFFFFFF) causes heap corruption when loaded, leading to denial of service or potential code execution.

Detection Guidance

This vulnerability can be detected by checking the installed version of GNU Aspell. If the version is 0.60.8.2 or earlier, the system is vulnerable. Use the command 'aspell --version' to check the installed version.

Impact Analysis

If you use GNU Aspell and load a malicious dictionary file, an attacker could exploit this to corrupt memory, crash the program, or execute arbitrary code on your system. This could compromise data integrity or allow unauthorized access.

Compliance Impact

This vulnerability could lead to unauthorized data access or corruption, violating GDPR (data protection) and HIPAA (health data security) requirements. Organizations may face compliance penalties if exploited.

Mitigation Strategies

Immediately update GNU Aspell to version 0.60.8.3 or later. Avoid loading untrusted .rws dictionary files. Remove any suspicious .rws files from the system.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-103658. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart