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

JupyterLab Image Viewer: безопасное открытие в новой вкладке

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

Защитная диагностика JupyterLab Image Viewer: безопасное открытие в новой вкладке по GHSA-GX64-GJ6P-PC4C: применимость, изолированный тест, измеримый verdict, критерий остановки и пакет данных для владельца системы.

Короткий ответ и применимость — JupyterLab Image Viewer: безопасное открытие в новой вкладке

Проверяемая задача: проверить, что недоверенное изображение при open-in-new-tab не получает исполняемый same-origin контекст. Сначала подтвердите фактически загруженный компонент JupyterLab Image Viewer, его runtime digest, затронутый entry point и границу версий «jupyterlab >= 4.6.0; fixed 4.6.2 | jupyterlab >= 0; fixed 4.5.10». Только после inventory выполняется ограниченный regression: Смонтировать synthetic response metadata в headless DOM fixture; навигацию заменить recorder и проверить disposition, MIME и sandbox. Пользовательская боль конкретна: файл с изображением может интерпретироваться браузером как активный документ после открытия отдельно. Результат оформляется как таблица declared MIME / response headers / target origin / script counter. GHSA GHSA-GX64-GJ6P-PC4C — ориентир для проверки, но не доказательство состояния вашей установки, инцидента или эксплуатации.

Граница данных и решения — JupyterLab Image Viewer: безопасное открытие в новой вкладке

Разложите именно этот путь на входное представление, canonical form, policy verdict и side effect. Специальная инварианта: Новая вкладка получает inert/download представление либо изолированный origin, а script marker не выполняется. Для каждой границы укажите владельца решения, ожидаемое состояние и запрещённый переход. NOT_APPLICABLE возможен только при доказанном отсутствии JupyterLab Image Viewer или функции. Неизвестная версия, digest либо конфигурация означает UNKNOWN, а не безопасность; номер исправленного релиза сам по себе не заменяет runtime readback.

Изолированный стенд — JupyterLab Image Viewer: безопасное открытие в новой вкладке

Используйте disposable temp directory, in-memory repository, detached DOM или pure adapter — по типу компонента, но никогда production. Протокол стенда: Смонтировать synthetic response metadata в headless DOM fixture; навигацию заменить recorder и проверить disposition, MIME и sandbox. Все внешние действия — сеть, shell, database, filesystem, browser, message broker, выдача сессии — заменяются spies, recorders или счётчиками. Применяйте короткие synthetic labels; реальные токены, IP, аккаунты, конфиги, логи и пользовательские данные запрещены. Перед control сохраните baseline hash и нулевые counters.

Control и один boundary-case — JupyterLab Image Viewer: безопасное открытие в новой вкладке

Benign control доказывает достижимость нужной ветки. Boundary-case меняет ровно один структурный признак и обязан остановиться до состояния «файл с изображением может интерпретироваться браузером как активный документ после открытия отдельно». Сохраните таблица declared MIME / response headers / target origin / script counter, reason code, monotonic duration и cleanup state. Проверяемое правило: Новая вкладка получает inert/download представление либо изолированный origin, а script marker не выполняется. Не увеличивайте размер, глубину или число повторов после первого нарушения; статья не требует эксплуатационного payload, внешней цели или реального секрета.

Как вынести PASS, FAIL и UNKNOWN — JupyterLab Image Viewer: безопасное открытие в новой вкладке

PASS требует подтверждённых component digest и entry point, успешного control, соблюдения инварианты «Новая вкладка получает inert/download представление либо изолированный origin, а script marker не выполняется», остановки boundary до side effect и доказанного cleanup. FAIL — тот же provenance и наблюдаемый запрещённый call, counter либо state transition. UNKNOWN — нет digest, конфигурации, точки наблюдения, control или восстановления. NOT_APPLICABLE — компонент или функция доказанно отсутствуют. Для воспроизводимости приложите таблица declared MIME / response headers / target origin / script counter; субъективного «выглядит нормально» недостаточно.

Красная линия и восстановление — JupyterLab Image Viewer: безопасное открытие в новой вкладке

Немедленно остановитесь, если active document создан в доверенном origin или script counter ненулевой. Не повторяйте проверку с более сильным вводом. Верните disposable state к исходному hash, освободите объекты и выполните один benign control. Любой неожиданный ненулевой counter сети, процессов, файлов, записей, маршрутов, браузерной навигации или сессий блокирует PASS и фиксируется отдельно от parser/policy результата. Production, реальные учётные записи и чужие данные в этот тест не входят.

Почему это самостоятельный intent — JupyterLab Image Viewer: безопасное открытие в новой вкладке

Проверяет переход от viewer canvas к отдельному браузерному документу, где меняется модель доверия. Не общий XSS renderer: проблема существует только на ветке открытия файла новой вкладкой. Поэтому механическая замена бренда, ОС или устройства не создаёт ещё один URL. Самостоятельная практическая ценность выражена deliverable «таблица declared MIME / response headers / target origin / script counter» и инвариантой «Новая вкладка получает inert/download представление либо изолированный origin, а script marker не выполняется». Если опубликованная страница уже покрывает тот же вопрос, пользовательскую боль и дерево решения, правильное действие — update/merge по отдельному контракту, а не соседняя страница.

Минимальный пакет для владельца — JupyterLab Image Viewer: безопасное открытие в новой вкладке

Передайте владельцу GHSA GHSA-GX64-GJ6P-PC4C, runtime digest, границу «jupyterlab >= 4.6.0; fixed 4.6.2 | jupyterlab >= 0; fixed 4.5.10», entry point, sanitized config, control/boundary rows, counters, verdict, stop reason и cleanup proof. Advisory опубликована 2026-07-22, обновлена 2026-08-12; даты подтверждают свежесть проверенного источника, но не популярность запроса и не состояние конкретной системы. После remediation повторите тот же fixture и сравните state transition без изменения тестового масштаба.

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

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

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

Ответы

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

Ваш ответ

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

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

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