Защитная диагностика Angular i18n: запрет event-handler attributes по GHSA-jj27-h5hq-8x99: runtime inventory, bounded fixture, измеримый verdict, красная линия и evidence bundle без production-данных.
Решение в двух шагах — Angular i18n: запрет event-handler attributes
Сначала подтвердите, что runtime действительно использует @angular/compiler в диапазоне «npm:@angular/compiler >= 22.0.0-next.0, < 22.0.1; first patched 22.0.1 | npm:@angular/compiler >= 21.0.0-next.0, < 21.2.19; first patched 21.2.19 | npm:@angular/compiler >= 20.0.0-next.0, < 20.3.27; first patched 20.3.27 | npm:@angular/compiler <= 19.2.25 | npm:@angular/core >= 22.0.0-next.0, < 22.0.1; first patched 22.0.1 | npm:@angular/core >= 21.0.0-next.0, < 21.2.19; first patched 21.2.19 | npm:@angular/core >= 20.0.0-next.0, < 20.3.27; first patched 20.3.27 | npm:@angular/core <= 19.2.25» и что функция «Angular i18n: запрет event-handler attributes» включена. Затем выполните только bounded fixture: Compiler unit-test получить inert AST attribute descriptors; DOM/event execution заменить instruction counter. Боль, которую проверяет эта страница: переводимый markup может вернуть event handler в compiled template. Выходной артефакт — attribute name / namespace / security context / emitted instructions / verdict. GHSA GHSA-jj27-h5hq-8x99 не заменяет inventory и не доказывает уязвимость конкретной системы.
Карта границы — Angular i18n: запрет event-handler attributes
Нарисуйте последовательность Source → Normalize → Authorize/Validate → Side effect. Для «Angular i18n: запрет event-handler attributes» особая карта такова: Матрица покрывает case variants, aria/data и безопасные text attributes. PASS сохраняет переводимый текст, но event capability не может прийти из translation. На каждой стрелке укажите тип данных, владельца решения и измеримый counter. Если две стадии видят разные представления одной строки или объекта, итог UNKNOWN до устранения неоднозначности.
Подготовка без production-данных — Angular i18n: запрет event-handler attributes
Создайте temp directory, in-memory graph/cache/store либо pure adapter, соответствующий протоколу: Compiler unit-test получить inert AST attribute descriptors; DOM/event execution заменить instruction counter. Используются только короткие canary labels; IP, токены, customer records, реальные пути и environment values запрещены. Network, shell, database, filesystem и session issuance заменяются spies. Зафиксируйте hash fixture и нулевые counters до control.
Control и boundary-case — Angular i18n: запрет event-handler attributes
Control подтверждает достижимость ветки на разрешённом входе. Boundary-case меняет ровно один параметр и должен остановиться до состояния «переводимый markup может вернуть event handler в compiled template». Запишите attribute name / namespace / security context / emitted instructions / verdict, reason code и monotonic duration. Матрица покрывает case variants, aria/data и безопасные text attributes. PASS сохраняет переводимый текст, но event capability не может прийти из translation. Не повышайте размер/глубину после первого превышения, не используйте эксплуатационный payload и не сравнивайте разные ОС как доказательство исправления.
Таблица verdict — Angular i18n: запрет event-handler attributes
PASS: применимый runtime подтверждён, control прошёл, boundary остановился до side effect, cleanup доказан. FAIL: та же provenance и наблюдаемое запрещённое состояние. UNKNOWN: отсутствуют версия, configuration snapshot, control, counter или cleanup. NOT_APPLICABLE: package либо entry point доказанно отсутствует. Версия вне диапазона без runtime readback остаётся только inventory clue.
Красная линия — Angular i18n: запрет event-handler attributes
Стоп-условие: on* или namespaced event-like attribute создаёт listener/property instruction. После остановки не повторяйте тест с большим вводом. Верните disposable state к hash, обнулите spies, освободите buffers/objects и выполните один benign control. Несовпадение state после cleanup блокирует PASS и должно войти в handoff как отдельный дефект harness или компонента.
Самостоятельная польза — Angular i18n: запрет event-handler attributes
Строит allowlist атрибутов до compiler instruction emission. Не generic stored XSS: конкретный i18n compiler boundary. Практический результат не сводится к названию CVE: читатель получает attribute name / namespace / security context / emitted instructions / verdict. Матрица покрывает case variants, aria/data и безопасные text attributes. PASS сохраняет переводимый текст, но event capability не может прийти из translation. Механическая замена framework, устройства или платформы не создаёт новый intent; совпадающая старая страница становится update/merge-кандидатом.
Минимальный handoff — Angular i18n: запрет event-handler attributes
Передайте GHSA GHSA-jj27-h5hq-8x99, runtime digest, диапазон «npm:@angular/compiler >= 22.0.0-next.0, < 22.0.1; first patched 22.0.1 | npm:@angular/compiler >= 21.0.0-next.0, < 21.2.19; first patched 21.2.19 | npm:@angular/compiler >= 20.0.0-next.0, < 20.3.27; first patched 20.3.27 | npm:@angular/compiler <= 19.2.25 | npm:@angular/core >= 22.0.0-next.0, < 22.0.1; first patched 22.0.1 | npm:@angular/core >= 21.0.0-next.0, < 21.2.19; first patched 21.2.19 | npm:@angular/core >= 20.0.0-next.0, < 20.3.27; first patched 20.3.27 | npm:@angular/core <= 19.2.25», entry point, sanitized config, control/boundary rows, counters, verdict, stop reason и cleanup proof. Источник опубликован 2026-08-03, обновлён 2026-08-03; это дата advisory, а не показатель спроса или эксплуатации. После remediation повторите тот же fixture и сравните границу/side-effect counters.
Материал подготовлен редакцией VOne с помощью автоматизированного черновика; версии, даты, границы и ссылки вручную сверены по GitHub Advisory Database и прямой upstream-странице. Текст самостоятельный, не копирует источник и не содержит эксплуатационных шагов.
Источники и проверка
- GitHub Advisory Database — GHSA-jj27-h5hq-8x99 проверено 2026-09-02
- Первичный upstream — @angular/compiler проверено 2026-09-02
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.