Podatność w pliku sqclass.cpp interpretera Squirrel (wersje do 2.2.5 oraz 3.x do 3.1) pozwala na odczyt poza granicami bufora (out-of-bounds read), co może prowadzić do wykonania dowolnego kodu (RCE). Szczególnie groźna jest możliwość ucieczki z sandbox skryptowego nawet przy wyłączonych wszystkich niebezpiecznych funkcjach, takich jak operacje na systemie plików.
▸ Pokaż oryginał (EN)
sqclass.cpp in Squirrel through 2.2.5 and 3.x through 3.1 allows an out-of-bounds read (in the core interpreter) that can lead to Code Execution. If a victim executes an attacker-controlled squirrel script, it is possible for the attacker to break out of the squirrel script sandbox even if all dangerous functionality such as File System functions has been disabled. An attacker might abuse this bug to target (for example) Cloud services that allow customization via SquirrelScripts, or distribute malware through video games that embed a Squirrel Engine.
Błąd znajduje się w rdzeniu interpretera Squirrel — w pliku sqclass.cpp. Atakujący przygotowuje specjalnie spreparowany skrypt Squirrel, którego wykonanie przez ofiarę wywołuje odczyt danych spoza przydzielonego obszaru pamięci (out-of-bounds read). Dzięki temu możliwe jest wyjście poza izolowane środowisko wykonawcze (sandbox) Squirrel, niezależnie od tego, czy administrator wyłączył dostęp do funkcji systemowych. Efektem końcowym może być przejęcie kontroli nad procesem wykonującym skrypt i wykonanie arbitralnego kodu.
Atakujący może wykonać dowolny kod w kontekście aplikacji uruchamiającej interpreter Squirrel, w tym przełamać mechanizm sandbox. Umożliwia to potencjalne przejęcie usług chmurowych obsługujących skrypty Squirrel oraz dystrybucję złośliwego oprogramowania przez gry wideo wbudowujące silnik Squirrel.
Należy zaktualizować bibliotekę Squirrel do wersji zawierającej poprawkę dostępną w repozytorium projektu (commit 23a0620658714b996d20da3d4dd1a0dcf9b0bd98 na GitHub). Użytkownicy dystrybucji Fedora powinni zastosować aktualizacje dostarczone przez projekt Fedora zgodnie z komunikatami bezpieczeństwa wskazanymi w referencjach. Operatorzy usług chmurowych i twórcy gier osadzających silnik Squirrel powinni priorytetowo wdrożyć aktualizację.
Squirrel w wersjach do 2.2.5 oraz 3.x do 3.1 włącznie; pakiety Squirrel dostępne w dystrybucji Fedora Linux
Podatność została opisana przez badaczy SonarSource (blog.sonarsource.com). Scenariusze ataku wymienione w opisie to m.in. usługi chmurowe obsługujące customizację przez SquirrelScripts oraz gry wideo z wbudowanym silnikiem Squirrel.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:HFedora Project Fedora
OSFedoraproject3536Squirrel Lang Squirrel
APPSquirrel-Lang≤ 2.2.53.0 – 3.1
Powiązane podatności
PHP CGI argument injection – RCE na Windows przez mechanizm Best-Fit
Type Confusion w V8 (Google Chrome) — RCE przez spreparowaną stronę HTML
Type Confusion w silniku V8 Chrome — zdalne wykonanie kodu (RCE)
Use-after-free w Google Chrome Visuals umożliwiający ucieczkę z sandbox
Integer overflow w Skia w Google Chrome — sandbox escape