CVE-2024-53920
WysokieCVSS 7.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 42 - wyżej niż 42% wszystkich znanych CVE
Streszczenie
W pliku elisp-mode.el w GNU Emacs przed wersją 30.1, użytkownik, który zdecyduje się na użycie elisp-completion-at-point (do uzupełniania kodu) na niezaufanym kodzie źródłowym Emacs Lisp, może wywołać niebezpieczną ekspansję makr Lisp, co pozwala atakującym na wykonanie dowolnego kodu. Ta niebezpieczna ekspansja występuje również, jeśli użytkownik włączy diagnostykę w locie, która kompiluje bajtowo niezaufany kod źródłowy Emacs Lisp.
Ocena ryzyka
Ryzyko obejmuje wykonanie dowolnego kodu na maszynie użytkownika podczas pracy z niezaufanym kodem Emacs Lisp, co może prowadzić do naruszenia bezpieczeństwa systemu.
Rekomendacja
Zaleca się aktualizację GNU Emacs do wersji 30.1 lub nowszej oraz unikanie uzupełniania kodu na niezaufanych plikach źródłowych.
Inne podatności w GNU Emacs
Zobacz wszystkie- CVE-2017-14482Wysokie
GNU Emacs w wersjach przed 25.3 pozwala zdalnym atakującym na wykonanie dowolnego kodu poprzez e-mail zawierający spreparowane dane 'Content-Type: text/enriched'. W szczególności użytkownik Emacsa może zostać natychmiastowo skompromitowany po przeczytaniu takiej wiadomości e-mail.
- CVE-2026-77219Wysokie
GNU Emacs przed wersją 31.0.91 zawiera przepełnienie liczb całkowitych w loaderze obrazów PBM/PPM/PGM. Atakujący może dostarczyć specjalnie spreparowany obraz z dużymi wymiarami i podwyższonym maksymalnym indeksem koloru, co prowadzi do wycieku zawartości pamięci sterty.
- CVE-2026-71394Średnie
GNU Emacs dla Androida nieprawidłowo waliduje dane nagłówka tabeli w funkcji sfnt_read_table_directory() w src/sfnt.c. Z powodu błędnej zmiennej porównawczej w sprawdzaniu długości odczytu, spreparowany plik czcionki może spowodować zwrócenie struktury z niezainicjalizowaną pamięcią sterty w wpisach katalogu tabel. Może to prowadzić do ujawnienia informacji, awarii lub arbitralnego dostępu do pamięci na platformach 32-bitowych.
- CVE-2026-71393Średnie
GNU Emacs dla Androida jest podatny na przepełnienie liczby całkowitej w funkcji sfnt_read_name_table() w src/sfnt.c. Funkcja oblicza rozmiar alokacji używając 32-bitowej wartości długości z pliku TrueType bez sprawdzania przepełnienia. Na platformach 32-bitowych spreparowana czcionka powoduje zawinięcie obliczeń, co prowadzi do zbyt małej alokacji sterty i późniejszego przepełnienia bufora sterty podczas odczytu.
- CVE-2026-71392Średnie
GNU Emacs dla Androida jest podatny na przepełnienie liczby całkowitej w funkcji sfnt_read_cmap_format_12() w src/sfnt.c. Podczas przetwarzania spreparowanego pliku TrueType, niechronione dodawanie w wywołaniu xmalloc zawija się na platformach 32-bitowych, powodując zapis poza bufor sterty. Może to prowadzić do uszkodzenia pamięci sterty i potencjalnego wykonania kodu.
- CVE-2026-71391Średnie
GNU Emacs dla Androida zawiera błąd off-by-one w parserze tabeli gvar w src/sfnt.c. Sprawdzanie granic indeksu współrzędnych współdzielonych w funkcjach sfnt_vary_simple_glyph() i sfnt_vary_compound_glyph() używa ścisłego porównania większości zamiast większości lub równego, co pozwala spreparowanej zmiennej czcionce TrueType ominąć sprawdzenie i wywołać odczyt poza bufor sterty przez memcpy. Może to ujawnić zawartość pamięci sterty, co może być użyte do obejścia ASLR.
Oryginalny opis (angielski, źródło NVD)
In elisp-mode.el in GNU Emacs before 30.1, a user who chooses to invoke elisp-completion-at-point (for code completion) on untrusted Emacs Lisp source code can trigger unsafe Lisp macro expansion that allows attackers to execute arbitrary code. (This unsafe expansion also occurs if a user chooses to enable on-the-fly diagnosis that byte compiles untrusted Emacs Lisp source code.)

