Beaker Browser w wersjach przed 0.8.9 jest podatny na ucieczkę z piaskownicy (sandbox escape), umożliwiającą nieuprzywilejowanemu atakującemu uzyskanie dostępu do systemu i wykonanie dowolnego kodu. Podatność wynika z braku mechanizmu context isolation w Electron, co sprawia, że możliwy jest atak prototype-pollution na wewnętrzne API komunikacyjne Electron.
▸ Pokaż oryginał (EN)
Beaker before 0.8.9 allows a sandbox escape, enabling system access and code execution. This occurs because Electron context isolation is not used, and therefore an attacker can conduct a prototype-pollution attack against the Electron internal messaging API.
Electron oferuje mechanizm context isolation, który izoluje kod strony internetowej od kodu uprzywilejowanego procesu renderera. W Beaker Browser przed wersją 0.8.9 mechanizm ten nie był włączony, co umożliwiało atakującemu modyfikację prototypów obiektów JavaScript (prototype-pollution) dostępnych z poziomu treści stron internetowych. Przez manipulację wewnętrznym API komunikacyjnym Electron, atakujący mógł wydostać się z piaskownicy przeglądarki i uzyskać dostęp do zasobów systemu operacyjnego.
Atakujący może uzyskać pełny dostęp do systemu plików i zasobów systemu operacyjnego oraz wykonać dowolny kod (RCE) z uprawnieniami procesu Beaker Browser, bez konieczności uwierzytelnienia i interakcji użytkownika.
Należy zaktualizować Beaker Browser do wersji 0.8.9 lub nowszej, w której wprowadzono context isolation dla Electron. Szczegóły dostępne w oficjalnych notatkach wydania: https://github.com/beakerbrowser/beaker/releases/tag/0.8.9
Beaker Browser (Beakerbrowser Beaker) w wersjach przed 0.8.9
Podatność zgłoszona i śledzona w repozytorium projektu pod numerem issue #1519 na GitHub.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:HBeakerbrowser Beaker
APPBeakerbrowser< 0.8.9