Electron 44.1.1 закрив витік URL вкладок для розширень без дозволу
Патч вирівнює chrome.tabs.query із моделлю дозволів tabs.get, ізолює небезпечні getters і Proxy traps на contextBridge та виправляє кілька процесних аварій.

Electron 44.1.1 виправляє помилку моделі дозволів, через яку chrome.tabs.query() міг повертати URL і title вкладки розширенню без дозволу tabs або доступу до відповідного host. Патч також захищає межі між JavaScript-контекстами від об’єктів із throwing getters і Proxy traps, прибирає кілька аварій main, utility та renderer processes і стабілізує запуск у Linux.

Чому URL вкладки — це чутливі дані
Розширення Chromium отримують доступ до інформації про вкладки за визначеною моделлю дозволів. Назва сторінки та повний URL можуть розкривати внутрішні адреси, параметри пошуку, назви документів або шлях у корпоративному застосунку. Тому API не повинен віддавати ці поля розширенню, яке не має tabs permission чи host access.
У попередній поведінці chrome.tabs.query() відрізнявся від tabs.get і міг повернути більше даних, ніж дозволено. Версія 44.1.1 вирівнює обидва шляхи. Розробникам не слід трактувати це як новий механізм контролю доступу для власного IPC: це виправлення Chromium Extensions API всередині Electron.
Що зміниться для розширень
Коректно оголошені розширення з необхідним permission або доступом до host повинні продовжити працювати. Якщо код неявно покладався на помилкову видачу URL і title без дозволу, після оновлення відповідні поля можуть бути недоступними. Правильне виправлення — переглянути manifest, мінімізувати запитувані права й обробляти відсутні поля, а не шукати обхід.
Для desktop-застосунків, які завантажують сторонні або користувацькі extensions, оновлення особливо важливе. Навіть якщо розширення не має network permission, зайва інформація може потрапити в його локальний storage, crash report або інший канал телеметрії.
Небезпечні getters на межі contextBridge
Electron використовує contextBridge, щоб контрольовано передавати дані та функції між ізольованими контекстами. Звичайний на вигляд object може містити property getter, який кидає exception, або Proxy trap із побічною поведінкою. Реліз виправляє renderer crash для масиву з throwing getter та кілька аварій main/utility process, коли option objects для Electron API містили такі accessors.
Окремо виправлено ситуацію, коли exception із getter під час передавання через contextBridge поглинався замість повернення caller. Для застосунку це важливо не лише через crash: передбачуване поширення помилки дозволяє відхилити вхідні дані, записати коректну діагностику та не продовжувати операцію в частково зміненому стані.
Інші виправлення стабільності
- У Linux прибрано intermittent startup crash через race між Pango та main thread під час ініціалізації fontconfig.
- Виправлено main process crashes під час переходу до внутрішніх адрес
http://accessibility/іhttp://devtools/. - Прибрано аварію, коли background page розширення використовувала
navigator.mediaDevices. SerialPort.forget()більше не повинен падати для вже від’єднаного пристрою.- PDF viewer знову може зберігати відредагований документ, якщо file picker раніше блокувався як third-party iframe.
Що перевірити перед розгортанням
Патч невеликий, але торкається extensions, context isolation, devices і Linux startup. До production rollout варто прогнати smoke tests для manifest permissions, tabs.query, preload/contextBridge API, відкриття PDF, serial devices та запуску на Linux image, який реально використовує команда.
Якщо застосунок підтримує plugins або приймає option objects від недовіреного коду, додайте regression tests з getter, що кидає exception, і Proxy, що відхиляє доступ до властивості. Це не замінює schema validation: через IPC краще передавати прості серіалізовані структури, а не довільні objects із поведінкою.
Практичний висновок: Electron 44.1.1 варто встановити швидко в застосунках із Chromium extensions або contextBridge. Водночас оновлення не скасовує принцип мінімальних permissions і валідацію даних на кожній IPC-межі.
Обмеження
Release notes не присвоюють проблемі окремий CVE і не описують підтверджену експлуатацію. Тому коректно говорити про порушення очікуваної моделі дозволів, а не про доведену атаку. Виправлення з цієї гілки також не означає автоматичного оновлення Electron усередині вже зібраного desktop application — продукт потрібно перебудувати й доставити користувачам.
Джерело та ліцензія
Матеріал підготовлено за release notes Electron 44.1.1. Вихідний код і release notes офіційного репозиторію поширюються за ліцензією MIT. Український текст перекладено й адаптовано редакцією; сторонні логотипи та screenshots не використовувалися.
Матеріал перекладено, переказано та доповнено редакцією українською мовою.
Читайте далі — ми вже розбираємо наступну важливу тему.


