| CVE ID | CVE-2026-71391 |
| Data publikacji | 10 sierpnia 2026 |
| Producent podatnego oprogramowania | GNU |
| Nazwa podatnego oprogramowania | Emacs |
| Podatne wersje | Wszystkie do 30.2 włącznie |
| Typ podatności (CWE) | Off-by-one Error (CWE-193) |
| Źródło zgłoszenia | Zgłoszenie do CERT Polska |
| CVE ID | CVE-2026-71392 |
| Data publikacji | 10 sierpnia 2026 |
| Producent podatnego oprogramowania | GNU |
| Nazwa podatnego oprogramowania | Emacs |
| Podatne wersje | Wszystkie do 30.2 włącznie |
| Typ podatności (CWE) | Integer Overflow or Wraparound (CWE-190) |
| Źródło zgłoszenia | Zgłoszenie do CERT Polska |
| CVE ID | CVE-2026-71393 |
| Data publikacji | 10 sierpnia 2026 |
| Producent podatnego oprogramowania | GNU |
| Nazwa podatnego oprogramowania | Emacs |
| Podatne wersje | Wszystkie do 30.2 włącznie |
| Typ podatności (CWE) | Integer Overflow or Wraparound (CWE-190) |
| Źródło zgłoszenia | Zgłoszenie do CERT Polska |
| CVE ID | CVE-2026-71394 |
| Data publikacji | 10 sierpnia 2026 |
| Producent podatnego oprogramowania | GNU |
| Nazwa podatnego oprogramowania | Emacs |
| Podatne wersje | Wszystkie do 30.2 włącznie |
| Typ podatności (CWE) | Improper Validation of Specified Quantity in Input (CWE-1284) |
| Źródło zgłoszenia | Zgłoszenie do CERT Polska |
Opis podatności
CERT Polska otrzymał zgłoszenie o podatnościach w oprogramowaniu GNU Emacs i koordynował proces ujawniania informacji.
Podatność CVE-2026-71391: W oprogramowaniu GNU Emacs na urządzenia z systemem Android wykryto błąd typu off-by-one w parserze tabeli gvar (plik src/sfnt.c). W funkcjach sfnt_vary_simple_glyph() i sfnt_vary_compound_glyph() sprawdzanie granic indeksu używa porównania „większy niż" zamiast „większy lub równy". W rezultacie spreparowany plik czcionki TrueType może ominąć weryfikację i wywołać odczyt poza granicami sterty za pomocą memcpy. Atakujący może dostarczyć złośliwy plik czcionki pocztą e-mail, przez EWW (Emacs Web Wowser) lub w dokumentach z niestandardowymi faces (mechanizm Emacs), co spowoduje załadowanie go przez Emacs. Ujawnia to zawartość pamięci sterty, która może zostać później wykorzystana do pokonania mechanizmu ASLR.
Problem ten został rozwiązany w commicie 95ab9ef627b212d74d321c5bbb5b56a1be7b9fbe
Podatność CVE-2026-71392: W GNU Emacs na urządzeniach z systemem Android wykryto podatność typu integer overflow w funkcji sfnt_read_cmap_format_12() w pliku src/sfnt.c. W wersjach 32-bitowych, podczas przetwarzania spreparowanego pliku czcionki TrueType, niezabezpieczona operacja dodawania w wywołaniu xmalloc powoduje przepełnienie zmiennej. Skutkuje to zbyt małą alokacją bufora i zapisem poza jego granicami na stercie. Atakujący może dostarczyć złośliwy plik czcionki za pośrednictwem poczty e-mail, EWW lub dokumentów z niestandardowymi faces, co powoduje załadowanie go przez Emacs. Prowadzi to do uszkodzenia pamięci na stercie, co może prowadzić do wykonania kodu przez atakującego.
Problem ten został rozwiązany w commicie c4e20777c26548722a37b03db93243e83a0d6188
Podatność CVE-2026-71393: W oprogramowaniu GNU Emacs dla udządzeń Android zidentyfikowano podatność typu integer overflow w funkcji sfnt_read_name_table() w pliku src/sfnt.c. Funkcja ta odczytuje z pliku czcionki TrueType 32-bitową wartość długości i na jej podstawie oblicza rozmiar pamięci do alokacji, nie sprawdzając jednak, czy wynik mieści się w oczekiwanym przedziale wartości. Na architekturach 32-bitowych spreparowana czcionka może spowodować przepełnienie wyniku obliczeń, co skutkuje przydzieleniem zbyt małego bufora na stercie. Wywołanie funkcji read() zapisuje dane poza granicami tego bufora, co powoduje heap buffer overflow. Atakujący może dostarczyć złośliwy plik fontu za pomocą poczty e-mail, EWW lub dokumentów z niestandardowymi faces, co powoduje załadowanie go przez Emacs. Może to prowadzić do uszkodzenia pamięci na stercie i potencjalnego wykonania kodu przez atakującego.
Problem ten został rozwiązany w commicie d51a4722316efe0960994d371e1859099894d1ca
Podatność CVE-2026-71394: Oprogramowanie GNU Emacs dla urządzeń Android nieprawidłowo weryfikuje dane nagłówka tabeli w funkcji sfnt_read_table_directory() w pliku src/sfnt.c. Z powodu użycia nieprawidłowej zmiennej do sprawdzania długości odczytu, spreparowany plik czcionki może zadeklarować więcej wpisów w katalogu tabeli, niż zawiera w rzeczywistości. W rezultacie parser zwraca strukturę, której wpisy katalogu tabeli zawierają niezainicjowane dane sterty. Atakujący może dostarczyć złośliwy plik czcionki pocztą e-mail, przez EWW lub w dokumentach z niestandardowymi faces, co powoduje załadowanie go przez Emacs. Prowadzi to do użycia niezainicjowanych danych sterty w kolejnych wyszukiwaniach w tabeli, co może prowadzić do ujawnienia informacji, awarii programu lub dowolnego dostępu do pamięci na platformach 32-bitowych.
Problem ten został rozwiązany po commicie 7621ee1d01229d50e5c0cddea6bf0b01095a62cf
Podziękowania
Za zgłoszenie podatności dziękujemy Michałowi Majchrowiczowi oraz Marcinowi Wyczechowskiemu z zespołu AFINE.
Więcej o procesie zgłaszania podatności można przeczytać na stronie https://cert.pl/cvd/.