
T3 Code 61c3794c остаток локальной изоляции. Preview will-attach-webview устанавливает contextIsolation false и сохраняет preload, предоставленный страницей. Лаборатория loopback.
Панель предпросмотра отключает стену между страницей и preload. will-attach-webview принудительно устанавливает contextIsolation = false и оставляет на месте строки preload и webpreferences, переданные страницей. Недействительные разделы по-прежнему блокируются. Интеграция Node остаётся выключенной. Песочница остаётся включённой. Это второй удар после того, как рендерер уже скомпрометирован.
Класс: Остаток изоляции Доступ: Локальный (после компрометации рендерера)
T3 Code 61c3794c - Ping
| ID | CVE пока нет |
| Класс | Остаток изоляции |
| Доступ | Локальный (скомпрометированный основной рендерер или скомпрометированная страница предпросмотра) |
| CWE | CWE-693 |
| CVSS | Низкий: 3.6 CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:L/I:L/A:N |
| Продукт | T3 Code |
| Затронуто | 61c3794c32b0eeebfac09add43e403618c65d2d7 |
| Аутентификация | уже внутри настольного рендерера |
| Лицензия | GNU Affero GPL v3.0 |
| Лаборатория | Слой-заглушка Electron; путь preload — это строковый оракул, никогда не исполняется |
Требуется скомпрометированный основной рендерер (или страница предпросмотра, способная влиять на тег <webview>). Один этот обработчик не даёт Node в странице.
| Привилегия | Метод / точка воздействия | Разведка / целостность / доступность | Доказано в лаборатории или выведено |
|---|---|---|---|
Принудительно установить contextIsolation=false на webview предпросмотра | DesktopWindow will-attach-webview | Целостность (изоляция выключена) | Доказано в лаборатории. handler-invoked=1, contextIsolation=False |
Сохранить подсаженный путь preload | тот же обработчик, входящий webPreferences.preload | Целостность | Доказано в лаборатории. preload-kept=1, свидетель t3f03v2c8 в пути |
Сохранить подсаженные webpreferences | тот же обработчик | Целостность | Доказано в лаборатории. webpreferences-kept=1 (nodeIntegration=yes всё ещё присутствует; булево nodeIntegration всё ещё принудительно false) |
| Негативный контроль: недействительный раздел | раздел вне persist:t3code-preview- | н/д | Доказано в лаборатории. preventDefault |
Остаётся закрытым при этом остатке
| Ось | Метод / точка воздействия | Почему закрыто |
|---|---|---|
| Целостность | nodeIntegration на этом webview | обработчик устанавливает false |
| Целостность | webview без песочницы | обработчик устанавливает sandbox=true |
| Целостность | подключение раздела, не являющегося предпросмотром | event.preventDefault() |
| Целостность | неаутентифицированный удалённый RCE | сначала требуется компрометация рендерера |
PREVIEW_WEBVIEW_PREFERENCES — это contextIsolation=false,sandbox=true,nodeIntegration=false. Документированное требование Electron к will-attach-webview — удалять preload и webpreferences из атрибутов, переданных страницей.
Обработчик встроен в window.webContents.on("will-attach-webview"). Я вызвал этот слушатель на существующем слое-заглушке DesktopWindow с действительным разделом предпросмотра и подсаженным путём preload.
Ложные пути: считать отключённую изоляцию сегодняшним Node в странице (песочница и nodeIntegration всё ещё держатся).
python3 t3code-preview-webview-isolation-Abraxas-Labs.py
или:
cd lab
./run.sh
IOC handler-invoked=1
IOC contextIsolation=False
IOC sandbox=True
IOC nodeIntegration=False
IOC preload-kept=1
IOC webpreferences-kept=1
IOC preventDefault-invalid-partition=1
SUCCESS T3-F03-WEBVIEW t3f03v2c8
Установите contextIsolation = true (или удалите строку; true — значение по умолчанию). delete webPreferences.preload; delete webPreferences.webpreferences; перед возвратом.
61c3794c32b0eeebfac09add43e403618c65d2d7DesktopWindow.ts will-attach-webviewGNU Affero GPL v3.0. См. LICENSE. Только для лабораторных испытаний через loopback. Без гарантий.
Abraxas Labs [email protected]
Пожалуйста, указывайте авторство CVE за Abraxas Labs.