Как проверить Mutation-XSS fix ApostropheCMS: inert DOM fixture, server/client serialization parity и отсутствие активных nodes без реального payload.
Сначала отделите симптом от факта: ApostropheCMS HTML sanitizer
Advisory описывает Mutation-XSS и allowedTags bypass вокруг нестандартного закрытия textarea; primary PR исправляет sanitizer/parser boundary. Применимость устанавливают по реально загруженной версии и доступности именно этого entry point; совпадение названия продукта, общего класса ошибки или CVE в scanner недостаточно. Зафиксируйте package/image/binary digest и effective configuration. GHSA-jxwj-j7wr-gfrw задаёт внешнюю границу исследования, а primary change показывает, что изменил maintainer. Пока provenance или reachability не подтверждены, состояние остаётся UNKNOWN. Advisory не сообщает, что конкретная система была атакована, и материал не воспроизводит опасный input.
Матрица решения: sanitization ledger input class × server output × browser DOM nodes × active attribute count
Соберите «sanitization ledger input class × server output × browser DOM nodes × active attribute count». Нужные поля: ApostropheCMS version, sanitizer config, inert marker fixtures, server HTML hash, DOM parser result, node/attribute allowlists и CSP context. Каждую строку свяжите с измерением, а не предположением: runtime query, immutable hash, test recorder или bounded counter. Desired config и effective behavior держите в разных колонках. Применяйте TRUE, FALSE, UNKNOWN и NOT-APPLICABLE с короткой причиной. Удалите hostname, IP, usernames, tokens, document content, memory dumps и raw request bodies; для воспроизводимости достаточно относительных ids, размеров, типов и итоговых классов.
Два контроля без опасного payload
В jsdom/browser-test разобрать безопасные text-only variants с marker вместо script/event, дважды sanitize/serialize и сравнить resulting DOM tree. Перед выполнением запишите SHA-256 fixture, исходные counters, deadline, memory/process ceiling и rollback. Positive control доказывает, что harness достигает нужной функции; negative control должен остановиться на validator, authorization, containment или lifecycle boundary до необратимого эффекта. После каждого случая выполните cleanup и повторно проверьте baseline. Не увеличивайте вход до фактического отказа: достаточно test double, recorder, inert marker либо малого synthetic object.
Что считать PASS для CVE-2026-63670
PASS разрешён только при таком результате: Повторная sanitation идемпотентна; marker остаётся текстом или удаляется; DOM не получает active element/attribute; обычный textarea control сохраняется. Практическое действие: Обновить ApostropheCMS на release с PR; до этого не расширять allowedTags/attributes для недоверенного rich text. Если runtime входит в affected range и path доступен, ставят UPDATE-REQUIRED. NOT-REACHABLE относится только к проверенной функции; UNKNOWN сохраняют при неподтверждённом backport или расходящихся hashes. После update повторяют ровно ту же матрицу и один штатный smoke-test. Одновременные изменения network, policy, dependency или data state запрещены: они делают причинность непроверяемой.
Красные линии и передача владельцу
Немедленный stop-rule: Не использовать executable script/event URL, не публиковать fixture и остановиться при появлении любого active node/attribute. Не расширяйте привилегии, глубину, размер, скорость или охват после неожиданного warning, timeout, cross-boundary call или state mutation. Передайте только package/PR hash, sanitizer config hash, fixture/output hashes, DOM node/attribute counts и child cleanup, плюс московское время, expected/actual, advisory/primary URLs и владельца rollback. Очистите secrets и персональные данные. Такой пакет подтверждает выбранный инвариант, но не отсутствие прошлой эксплуатации, безопасность всей системы, применимость к другой версии, поисковую популярность, индексацию или позиции.
Материал подготовлен редакцией VOne с помощью автоматизированного черновика. Факты и границы вывода сверены 5 сентября 2026 года по прямой advisory и первичному upstream изменению. Текст написан самостоятельно; опасные действия и реальные пользовательские данные не использовались.
Источники и проверка
- GitHub Advisory GHSA-jxwj-j7wr-gfrw проверено 2026-09-05
- Primary fix for ApostropheCMS HTML sanitizer проверено 2026-09-05
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.