CVE-2026-75819
NiskieCVSS 1.8Streszczenie
GNU Aspell zawiera podatność odczytu poza zakresem w funkcji ReadOnlyDict::load() w pliku readonly_ws.cpp. Podczas ładowania binarnego pliku słownika .rws, używa pól offsetu z nagłówka pliku jako indeksów bajtów w buforze sterty bez walidacji ich granic. Atakujący może to wykorzystać, przekonując użytkownika do uruchomienia aspell z spreparowanym plikiem słownika dostarczonym przez --master, --dict-dir lub opcje konfiguracyjne, co prowadzi do ujawnienia pamięci sterty lub odmowy usługi przez awarię aplikacji.
Ocena ryzyka
Ryzyko obejmuje potencjalne ujawnienie wrażliwych danych z pamięci sterty oraz przerwanie działania usług korzystających z Aspell, co może wpłynąć na dostępność i poufność.
Rekomendacja
Zaleca się natychmiastową aktualizację GNU Aspell do wersji 0.60.8.3 lub nowszej, która zawiera poprawkę. Do czasu aktualizacji należy unikać przetwarzania niezaufanych plików słowników.
Inne podatności w GNU Aspell
Zobacz wszystkie- CVE-2026-75820Niskie
GNU Aspell zawiera podatność typu integer truncation w funkcji WritableDict::add() w pliku modules/speller/default/writable.cpp. Przy wczytywaniu osobistej listy słów długość słowa jest zapisywana jako pojedynczy bajt, co powoduje obcięcie dla słów o długości będącej wielokrotnością 256 i prowadzi do uszkodzenia sterty. Atakujący może to wykorzystać, nakłaniając użytkownika do uruchomienia aspell ze spreparowaną osobistą listą słów zawierającą takie słowo, co skutkuje odmową usługi. Problem naprawiono w commicie 782ce94e4dc71eaec4ee1bd945eb3b9c47c5387d, który zostanie wydany w wersji 0.60.8.3.
- CVE-2026-75818Niskie
GNU Aspell prezip-bin zawiera podatność przepełnienia bufora na stercie w dekompresorze w prog/prezip.c. Dekompresor nie sprawdza prawidłowo miejsca w buforze, więc spreparowany skompresowany plik może powodować operacje odczytu i zapisu poza zakresem na stercie. Atakujący, który przekona użytkownika do przetworzenia złośliwego skompresowanego pliku za pomocą prezip-bin, może wywołać uszkodzenie pamięci, prowadzące do awarii procesu.
- CVE-2026-103658Średnie
GNU Aspell 0.60.8.2 (pierwsza podatna wersja nie jest znana) zawiera przepełnienie bufora sterty (CWE-122) w loaderze słownika tylko do odczytu. String::reserve() w common/string.hpp oblicza sprawdzenie pojemności za pomocą signed int ((int)s + 1), więc żądany rozmiar 0x7FFFFFFF zawija się na wartość ujemną i bufor nie jest powiększany. ReadOnlyDict::load() w modules/speller/default/readonly_ws.cpp przekazuje niezwalidowane 32-bitowe pola rozmiaru z nagłówka słownika .rws do tej ścieżki, więc spreparowany plik .rws z prawidłowym znacznikiem endian (12345678) i nadmiernym polem długości (np. lang_name_size = 0x7FFFFFFF) powoduje zapis danych kontrolowanych przez atakującego poza granicami zbyt małej alokacji sterty. Atakujący, który nakłoni ofiarę do załadowania złośliwego słownika — na przykład przez aspell dump master <file> — może uszkodzić pamięć sterty, powodując odmowę usługi i potencjalnie wykonanie kodu. Naprawiono w b830b6e i będzie naprawione w wersji 0.60.8.3.
Oryginalny opis (angielski, źródło NVD)
GNU Aspell contains an out-of-bounds read vulnerability in ReadOnlyDict::load() in readonly_ws.cpp. When loading a binary .rws dictionary file, it uses offset fields from the file header as byte indices into a heap buffer without validating their bounds. An attacker can trigger this by convincing a user to run aspell with a crafted dictionary file supplied through --master, --dict-dir, or configuration options, leading to heap memory disclosure or a denial of service via application crash. This issue was fixed in commit 941953b25031bc9104e83f58e138a664b8dedc3f which will be released in version 0.60.8.3.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

