Защитная инструкция по PostCSS и ghsa-r28c-9q8g-f849: установить применимость, проверить удержание sourceMappingURL внутри CSS workspace на одноразовом стенде, измерить безопасный исход и подготовить обратимый выпуск без production-данных.
Карта применимости для PostCSS
Advisory описывает отдельную проблему: автозагрузка previous source map может прочитать .map за пределами каталога исходника. Проверяемая граница проходит между annotation sourceMappingURL, opts.from и разрешённым map root. Диапазоны Reviewed record: npm:postcss <= 8.5.17 → 8.5.18. Наличие package без достижимой функции оформляют как not-applicable с доказательством. Снимите версия postcss, opts.from/map, annotation class, resolved path, file-open trace, map loaded flag и canary hash. Для каждого элемента укажите observed, expected, unknown или not-applicable, время и происхождение. Severity high не подтверждает атаку, ущерб либо состояние конкретного deployment. Если происхождение бинарника неизвестно, не делайте вывод по одному package manager.
Критерий закрытия и минимальный пакет
Карточка закрывается, когда версия и provenance подтверждены, граничный вход даёт ожидаемый отказ или безопасную обработку, обычный контроль проходит, cleanup завершён, а журнал не содержит новых warning/error. Минимальный пакет для поддержки: version, parse options, path classes, open attempts, result flags, hashes и cleanup. В нём не должно быть IP, tokens, passwords, cookies, private keys, полного config, реальных файлов или payload. Отдельной строкой укажите: GitHub Reviewed Advisory подтверждает механизм и диапазон, но не эксплуатацию в этой среде, популярность запроса, индексацию или позиции.
Матрица решений на защитной границе
Разложите сценарий на вход, policy/parser, защищаемый объект и наблюдаемый исход. Для PostCSS это «между annotation sourceMappingURL, opts.from и разрешённым map root». Ветвь close допустима, когда runtime вне указанных диапазонов или функция недостижима и это подтверждено. Ветвь update выбирают при совпавшей версии и доступном фиксированном артефакте. Ветвь contain оставляет узкое ограничение доступа до окна обновления. Ветвь escalate нужна при unknown provenance. Решение update/contain/close имеет владельца и дату повторной проверки. Не объединяйте этот механизм с соседними advisory только из-за общего слова security.
Обратимый тест без эксплуатационного payload
Безопасный опыт: во временном CSS-root создать пустой local map и соседний canary.map, затем разобрать fixture с абстрактным parent-component при включённом monitor чтений. Стенд не получает production secrets, данные или сетевые маршруты. Измеримый безопасный исход: local map обрабатывается, выход из root отклоняется до open, содержимое canary не попадает в result или error. Не увеличивайте объём, глубину, число соединений или права после первого отклонения. Сохраняйте только decision code, counters, timings и hashes; реальные имена, адреса, credentials и пользовательские данные исключите. Красная линия: путь ведёт к реальному sourcemap, opts.from относится к production либо вывод содержит canary. При её достижении завершите стенд и оставьте результат blocked/unknown вместо попытки воспроизвести атаку.
Окно обновления и контроль регрессии
Зафиксируйте исходный dependency tree и артефакт, установите подтверждённую исправленную ветку из диапазона «npm:postcss <= 8.5.17 → 8.5.18» в staging и повторите тот же baseline/boundary/baseline набор. Не меняйте одновременно reverse proxy, role model, parser settings или OS: иначе нельзя связать результат с обновлением. Сравните latency, memory, accepted/rejected decisions и обычный функциональный сценарий. Временный containment снимают только после безопасного результата и готового возврата. Возврат для этой карточки: удалить temp tree, остановить monitor, вернуть PostCSS config и lockfile.
Материал подготовлен редакцией VOne с помощью ИИ, затем вручную проверен по двум прямым HTTPS-источникам; факты, диапазоны версий, безопасный опыт и отсутствие рекламных обещаний сверены человеком.
Источники и проверка
- GitHub Reviewed Advisory ghsa-r28c-9q8g-f849 проверено 2026-08-30
- Upstream-страница PostCSS проверено 2026-08-30
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.