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

Angular i18n: запрет event-handler attributes

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

Защитная диагностика 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-странице. Текст самостоятельный, не копирует источник и не содержит эксплуатационных шагов.

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

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

Ответы

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

Ваш ответ

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

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

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