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

pfSense RSS Widget: проверяем экранирование title без JavaScript

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

Безопасная проверка CVE-2026-38961: affected releases, inert HTML marker, DOM text boundary и запрет внешнего feed в production.

Граница применимости: pfSense dashboard RSS Widget

Advisory называет pfSense Plus 26.03 и 25.11.1 и pfSense CE 2.8.1: malicious RSS feed title мог быть выведен без достаточной sanitization в браузере authenticated dashboard user. Maintainer commit меняет rendering boundary. Проверка использует inert marker и DOM inspection, а не script/event handler или удалённый feed. Сначала подтвердите именно эту комбинацию версии, компонента, роли и входа. Совпадение названия продукта либо один внешний симптом не доказывают достижимость, эксплуатацию или причину инцидента. Карточка GHSA-3pq2-4qp4-w69m опубликована 4 сентября 2026 года; её дата служит сигналом для проверки, но состояние конкретной системы устанавливается только runtime-инвентаризацией.

Инвентаризация и артефакт

Соберите матрицу edition × release × feed origin trust × title render node × textContent/HTML verdict. В исходный снимок входят точную edition/build, widget presence, configured feed origin class и browser policy без URL с tokens и содержимого dashboard. Поля заполняют значениями TRUE, FALSE или UNKNOWN и связывают с package/image/kernel digest. Версия из lockfile, репозитория или панели не заменяет фактически загруженный binary. Секреты, персональные данные, внутренние адреса, токены и полные журналы в таблицу не включают. Если компонент или entry point не найден, фиксируют NOT-REACHABLE для этой ветки, а не универсальный PASS продукта.

Ограниченный безопасный контроль

На offline renderer подайте title из безопасных символов-разделителей вроде angle brackets вокруг слова TEST. В DOM оно остаётся текстом; новые элементы и event attributes не появляются. Опыт выполняют только в disposable fixture с заранее нулевыми счётчиками filesystem, process, network, database и privileged operations, если они не являются самой измеряемой безопасной операцией. До старта сохраняют SHA-256 fixture, после результата выполняют явный cleanup и повторно проверяют baseline. Один изменяемый фактор отличает контроль от догадки; отсутствие crash или видимого эффекта без проверки внутреннего инварианта не считается доказательством исправления.

Критерии решения и обновление

Применить Netgate advisory/update для своей edition и временно удалить недоверенные RSS sources из dashboard configuration. PASS допустим только когда runtime provenance подтверждён и выполняется правило: textContent совпадает с исходным inert label, inner DOM не создаёт node, network request ограничен local fixture, normal Unicode title отображается. UPDATE-REQUIRED означает affected build или отсутствие заявленного fix. NOT-REACHABLE относится лишь к проверенному entry point. UNKNOWN сохраняют при неподтверждённом backport, неясном runtime или расхождении источников. После штатного update повторяют тот же контроль и обычный smoke-test компонента; соседние настройки одновременно не меняют.

Красные линии проверки

Жёсткий stop-rule: Не использовать script payload, внешнюю RSS-ленту, рабочий firewall dashboard или сессию администратора для доказательства. После срабатывания не увеличивают права, длительность, объём входа или сетевой охват и не ищут обход ограничения. Advisory описывает техническую возможность, а не подтверждённое событие в вашей инфраструктуре. Нельзя публиковать exploit details, рабочие credentials, memory dumps, пользовательский контент или данные других tenants. Если безопасного fixture недостаточно, вопрос передают владельцу продукта или поставщику с минимальным описанием, не превращая диагностику в атаку.

Минимальный пакет для сопровождения

Передайте только: edition/build, widget asset hash, inert input class, node count, text verdict, update reference и cleanup. Добавьте Moscow timestamp, expected/actual, SHA-256 проверяемого артефакта, прямые ссылки на advisory и primary source, а также владельца rollback. Удалите абсолютные домашние пути, IP, usernames, session identifiers, cookies, request bodies, ключи и длинные raw logs. Такой пакет позволяет повторить именно выбранный boundary и принять решение об update. Он не обещает совместимость на иной платформе, отсутствие прошлой эксплуатации, массовость проблемы, поисковый спрос, индексацию или позиции страницы.

Предметный протокол: pfSense dashboard RSS Widget

Шаг 1 — зафиксировать boundary именно для pfSense dashboard RSS Widget: Maintainer commit меняет rendering boundary. Проверка использует inert marker и DOM inspection, а не script/event handler или удалённый feed. Шаг 2 — подтвердить runtime и собрать только точную edition/build, widget presence, configured feed origin class и browser policy без URL с tokens и содержимого dashboard. Шаг 3 — построить предметный артефакт «матрицу edition × release × feed origin trust × title render node × textContent/HTML verdict», не заменяя его общим uptime или одним кодом ответа. Шаг 4 — выполнить отдельный контроль: На offline renderer подайте title из безопасных символов-разделителей вроде angle brackets вокруг слова TEST. В DOM оно остаётся текстом; новые элементы и event attributes не появляются. Шаг 5 — применить проверяемое правило результата: textContent совпадает с исходным inert label, inner DOM не создаёт node, network request ограничен local fixture, normal Unicode title отображается. Шаг 6 — остановиться при условии: Не использовать script payload, внешнюю RSS-ленту, рабочий firewall dashboard или сессию администратора для доказательства. Шаг 7 — после cleanup передать только edition/build, widget asset hash, inert input class, node count, text verdict, update reference и cleanup. Эта связка version boundary, собственного измерения, negative control, stop-line и минимального пакета относится к одной самостоятельной боли и не переносится механически на другой компонент.

Материал подготовлен редакцией VOne с помощью автоматизированного черновика. Факты и границы вывода сверены 4 сентября 2026 года по прямой advisory и первичному источнику. Текст написан самостоятельно; опасные действия и реальные пользовательские данные не использовались.

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

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

Ответы

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

Ваш ответ

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

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

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