Podatność w bibliotece MuJS firmy Artifex Software polega na przepełnieniu bufora na stercie (heap-based buffer overflow) w funkcji js_stackoverflow w pliku jsrun.c. Błąd o ocenie krytycznej (CVSS 9.8) może umożliwić atakującemu wywołanie niezidentyfikowanego wpływu na system.
▸ Pokaż oryginał (EN)
Heap-based buffer overflow in the js_stackoverflow function in jsrun.c in Artifex Software, Inc. MuJS allows attackers to have unspecified impact by leveraging an error when dropping extra arguments to lightweight functions.
Błąd występuje w funkcji js_stackoverflow podczas nieprawidłowej obsługi nadmiarowych argumentów przekazywanych do tzw. lekkich funkcji (lightweight functions) w silniku JavaScript MuJS. W wyniku tej nieprawidłowej obsługi dochodzi do przepełnienia bufora zaalokowanego na stercie (heap), co jest sklasyfikowane jako CWE-119 (Improper Restriction of Operations within the Bounds of a Memory Buffer). Atakujący może spreparować odpowiednie dane wejściowe, które wywołają ten błąd bez konieczności uwierzytelnienia lub interakcji użytkownika.
Skuteczne wykorzystanie podatności może pozwolić atakującemu na wykonanie dowolnego kodu lub wywołanie innych niezidentyfikowanych skutków — podatność osiąga maksymalny wpływ na poufność, integralność i dostępność systemu zgodnie z wektorem CVSS.
Należy zastosować poprawkę dostępną w repozytorium producenta (commit 77ab465f1c394bb77f00966cd950650f3f53cb24 w repozytorium MuJS na git.ghostscript.com). Użytkownicy dystrybucji Fedora powinni zainstalować zaktualizowane pakiety zgodnie z komunikatem opublikowanym na liście fedoraproject.org.
Biblioteka Artifex MuJS — wersje wskazane w referencjach producenta (commit naprawczy dostępny w repozytorium git.ghostscript.com)
Podatność została zgłoszona publicznie na liście oss-security w dniach 12–13 stycznia 2017 r. i śledzona pod numerem błędu 697401 w systemie bugtrackera Ghostscript.
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HArtifex Mujs
APPArtifexwszystkie wersje
Powiązane podatności
Use-after-free w MuJS — błąd dostępu do właściwości source wyrażenia regularnego
Buffer overflow w Artifex MuJS przez integer overflow przy parsowaniu liczb zmiennoprzecinkowych
Heap buffer overflow w Artifex MuJS — zagnieżdżone bloki try/finally
Przepełnienie bufora w MuJS 1.0.5 przez nieograniczony rozmiar wyrażenia regularnego
Stack-based buffer overflow w Artifex MuJS — funkcje Number#toFixed() i numtostr