Защитная диагностика Electron window.open: allowlist privileged features по GHSA-V93F-FGJR-HJRJ: применимость, изолированный тест, измеримый verdict, критерий остановки и пакет данных для владельца системы.
Короткий ответ и применимость — Electron window.open: allowlist privileged features
Проверяемая задача: проверить, что features string не управляет привилегированными BrowserWindow options. Сначала подтвердите фактически загруженный компонент Electron, его runtime digest, затронутый entry point и границу версий «electron >= 0, fixed 39.8.8; electron >= 40.0.0-alpha.1, fixed 40.9.0; electron >= 41.0.0-alpha.1, fixed 41.2.1; electron >= 42.0.0-alpha.1, fixed 42.0.0-beta.3». Только после inventory выполняется ограниченный regression: Разобрать synthetic features string через pure parser; BrowserWindow constructor заменить options recorder Пользовательская боль конкретна: web content может передать feature, которая изменит security-sensitive window option. Результат оформляется как таблица feature token / normalized key / allowlist class / constructor options / verdict. GHSA GHSA-V93F-FGJR-HJRJ — ориентир для проверки, но не доказательство состояния вашей установки, инцидента или эксплуатации.
Граница данных и решения — Electron window.open: allowlist privileged features
Разложите этот путь на источник данных, нормализованное представление, policy verdict и side effect. Специальная инварианта: Только web-safe allowlisted features переходят в constructor, privileged keys игнорируются или отклоняются с reason. Для каждого перехода укажите владельца решения, ожидаемое состояние и запрещённый результат. NOT_APPLICABLE возможен только при доказанном отсутствии Electron или соответствующей функции. Неизвестная версия, digest либо конфигурация означает UNKNOWN, а не безопасность; номер исправленного релиза не заменяет runtime readback.
Изолированный стенд — Electron window.open: allowlist privileged features
Используйте disposable temp directory, in-memory repository, detached DOM или pure adapter — по типу компонента, но не production. Протокол: Разобрать synthetic features string через pure parser; BrowserWindow constructor заменить options recorder Сеть, shell, database, filesystem, browser, message broker, выдача сессии и другие side effects заменяются spies, recorders или счётчиками. Применяйте короткие synthetic labels; реальные токены, IP, аккаунты, конфиги, логи и пользовательские данные запрещены. Перед control сохраните baseline hash и нулевые counters.
Control и один boundary-case — Electron window.open: allowlist privileged features
Benign control доказывает достижимость нужной ветки. Boundary-case меняет ровно один структурный признак и обязан остановиться до состояния «web content может передать feature, которая изменит security-sensitive window option». Сохраните таблица feature token / normalized key / allowlist class / constructor options / verdict, reason code, monotonic duration и cleanup state. Проверяемое правило: Только web-safe allowlisted features переходят в constructor, privileged keys игнорируются или отклоняются с reason. Не увеличивайте размер, глубину или число повторов после первого нарушения; материал не требует эксплуатационного payload, внешней цели или реального секрета.
Как вынести PASS, FAIL и UNKNOWN — Electron window.open: allowlist privileged features
PASS требует подтверждённых component digest и entry point, успешного control, соблюдения инварианты «Только web-safe allowlisted features переходят в constructor, privileged keys игнорируются или отклоняются с reason», остановки boundary до side effect и доказанного cleanup. FAIL — тот же provenance и наблюдаемый запрещённый call, counter либо state transition. UNKNOWN — нет digest, конфигурации, точки наблюдения, control или восстановления. NOT_APPLICABLE — компонент или функция доказанно отсутствуют. Для воспроизводимости приложите таблица feature token / normalized key / allowlist class / constructor options / verdict; субъективного «выглядит нормально» недостаточно.
Красная линия и восстановление — Electron window.open: allowlist privileged features
Немедленно остановитесь, если privileged option появился в constructor recorder или duplicate key изменил policy. Не повторяйте проверку с более сильным вводом. Верните disposable state к исходному hash, освободите объекты и выполните один benign control. Любой неожиданный ненулевой counter сети, процессов, файлов, записей, маршрутов, браузерной навигации или сессий блокирует PASS и фиксируется отдельно от parser/policy результата. Production, реальные учётные записи и чужие данные в тест не входят.
Почему это самостоятельный intent — Electron window.open: allowlist privileged features
Делает mapping строковых features в native window options проверяемым по каждому ключу. Отличается от popup permission: здесь разрешённое окно уже создаётся, но его privileged options не должны контролироваться web content. Поэтому механическая замена бренда, ОС или устройства не создаёт ещё один URL. Самостоятельная практическая ценность выражена deliverable «таблица feature token / normalized key / allowlist class / constructor options / verdict» и инвариантой «Только web-safe allowlisted features переходят в constructor, privileged keys игнорируются или отклоняются с reason». Если опубликованная страница уже покрывает тот же вопрос, пользовательскую боль и дерево решения, правильное действие — update/merge по отдельному контракту, а не соседняя страница.
Минимальный пакет для владельца — Electron window.open: allowlist privileged features
Передайте владельцу GHSA GHSA-V93F-FGJR-HJRJ, runtime digest, границу «electron >= 0, fixed 39.8.8; electron >= 40.0.0-alpha.1, fixed 40.9.0; electron >= 41.0.0-alpha.1, fixed 41.2.1; electron >= 42.0.0-alpha.1, fixed 42.0.0-beta.3», entry point, sanitized config, control/boundary rows, counters, verdict, stop reason и cleanup proof. Advisory опубликована 2026-08-05, обновлена 2026-08-05; даты подтверждают свежесть проверенного источника, но не популярность запроса и не состояние конкретной системы. После remediation повторите тот же fixture и сравните state transition без изменения тестового масштаба.
Материал подготовлен редакцией VOne с помощью автоматизированного черновика; даты, версии, границы и ссылки сверены по GitHub Advisory Database и прямому upstream-материалу. Текст самостоятельный, не копирует источник и не содержит эксплуатационных шагов.
Источники и проверка
- GitHub Advisory Database — GHSA-V93F-FGJR-HJRJ проверено 2026-09-02
- Первичный upstream материал — Electron проверено 2026-09-02
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.