К обсуждениям

Electron DevTools: policy shell-open файлов

Редакция VOne Технологии

Защитная диагностика Electron DevTools: policy shell-open файлов по GHSA-f2r8-jv7c-xqmp: runtime inventory, bounded fixture, измеримый verdict, красная линия и evidence bundle без production-данных.

Решение в двух шагах — Electron DevTools: policy shell-open файлов

Сначала подтвердите, что runtime действительно использует electron в диапазоне «npm:electron < 39.8.9; first patched 39.8.9 | npm:electron >= 40.0.0-alpha.1, < 40.9.2; first patched 40.9.2 | npm:electron >= 41.0.0-alpha.1, < 41.2.1; first patched 41.2.1 | npm:electron >= 42.0.0-alpha.1, < 42.0.0-beta.3; first patched 42.0.0-beta.3» и что функция «Electron DevTools: policy shell-open файлов» включена. Затем выполните только bounded fixture: IPC handler вызвать synthetic messages; shell API заменить spy, реальные приложения не открывать. Боль, которую проверяет эта страница: DevTools message может выбрать локальный файл для открытия внешним handler. Выходной артефакт — message type / path provenance / allowlist / shell calls / verdict. GHSA GHSA-f2r8-jv7c-xqmp не заменяет inventory и не доказывает уязвимость конкретной системы.

Карта границы — Electron DevTools: policy shell-open файлов

Нарисуйте последовательность Source → Normalize → Authorize/Validate → Side effect. Для «Electron DevTools: policy shell-open файлов» особая карта такова: Карточка различает DevTools-owned resource, user-selected file и arbitrary message path. PASS требует disabled-by-default либо explicit user gesture plus canonical allowlist. На каждой стрелке укажите тип данных, владельца решения и измеримый counter. Если две стадии видят разные представления одной строки или объекта, итог UNKNOWN до устранения неоднозначности.

Подготовка без production-данных — Electron DevTools: policy shell-open файлов

Создайте temp directory, in-memory graph/cache/store либо pure adapter, соответствующий протоколу: IPC handler вызвать synthetic messages; shell API заменить spy, реальные приложения не открывать. Используются только короткие canary labels; IP, токены, customer records, реальные пути и environment values запрещены. Network, shell, database, filesystem и session issuance заменяются spies. Зафиксируйте hash fixture и нулевые counters до control.

Control и boundary-case — Electron DevTools: policy shell-open файлов

Control подтверждает достижимость ветки на разрешённом входе. Boundary-case меняет ровно один параметр и должен остановиться до состояния «DevTools message может выбрать локальный файл для открытия внешним handler». Запишите message type / path provenance / allowlist / shell calls / verdict, reason code и monotonic duration. Карточка различает DevTools-owned resource, user-selected file и arbitrary message path. PASS требует disabled-by-default либо explicit user gesture plus canonical allowlist. Не повышайте размер/глубину после первого превышения, не используйте эксплуатационный payload и не сравнивайте разные ОС как доказательство исправления.

Таблица verdict — Electron DevTools: policy shell-open файлов

PASS: применимый runtime подтверждён, control прошёл, boundary остановился до side effect, cleanup доказан. FAIL: та же provenance и наблюдаемое запрещённое состояние. UNKNOWN: отсутствуют версия, configuration snapshot, control, counter или cleanup. NOT_APPLICABLE: package либо entry point доказанно отсутствует. Версия вне диапазона без runtime readback остаётся только inventory clue.

Красная линия — Electron DevTools: policy shell-open файлов

Стоп-условие: shell spy получает непроверенный path/URL или trust context отсутствует. После остановки не повторяйте тест с большим вводом. Верните disposable state к hash, обнулите spies, освободите buffers/objects и выполните один benign control. Несовпадение state после cleanup блокирует PASS и должно войти в handoff как отдельный дефект harness или компонента.

Самостоятельная польза — Electron DevTools: policy shell-open файлов

Фиксирует capability gate перед shell.openPath/openExternal. Не argv command injection: это privileged embedder message capability. Практический результат не сводится к названию CVE: читатель получает message type / path provenance / allowlist / shell calls / verdict. Карточка различает DevTools-owned resource, user-selected file и arbitrary message path. PASS требует disabled-by-default либо explicit user gesture plus canonical allowlist. Механическая замена framework, устройства или платформы не создаёт новый intent; совпадающая старая страница становится update/merge-кандидатом.

Минимальный handoff — Electron DevTools: policy shell-open файлов

Передайте GHSA GHSA-f2r8-jv7c-xqmp, runtime digest, диапазон «npm:electron < 39.8.9; first patched 39.8.9 | npm:electron >= 40.0.0-alpha.1, < 40.9.2; first patched 40.9.2 | npm:electron >= 41.0.0-alpha.1, < 41.2.1; first patched 41.2.1 | npm:electron >= 42.0.0-alpha.1, < 42.0.0-beta.3; first patched 42.0.0-beta.3», entry point, sanitized config, control/boundary rows, counters, verdict, stop reason и cleanup proof. Источник опубликован 2026-08-05, обновлён 2026-08-05; это дата advisory, а не показатель спроса или эксплуатации. После remediation повторите тот же fixture и сравните границу/side-effect counters.

Материал подготовлен редакцией VOne с помощью автоматизированного черновика; версии, даты, границы и ссылки вручную сверены по GitHub Advisory Database и прямой upstream-странице. Текст самостоятельный, не копирует источник и не содержит эксплуатационных шагов.

Источники и проверка

Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.

Ответы

0 опубликовано
Ответов пока нет. Вы можете начать обсуждение.

Ваш ответ

Добавьте свой опыт или уточнение по теме.

Вы публикуете как Аноним Аватар отличает разговоры, но не раскрывает личные данные.

Ответ появится сразу. Не публикуйте личные данные, ключи и приватные ссылки.