fix(frontend): patch vulnerable browserslist dependency

pnpm audit по всему lock-графу остановил релизную сборку: browserslist@4.21.11
несёт high-advisory (уязвимы <= 4.28.6) и приходит транзитивно через
autoprefixer и update-browserslist-db.

Закрыто точечным pnpm.overrides на 4.28.7 — точной версией, а не диапазоном:
security-патч обязан быть детерминированным и не тащить за собой чужой major.
Обновилось только поддерево browserslist (caniuse-lite, electron-to-chromium,
escalade, node-releases, update-browserslist-db); autoprefixer, Vite и остальной
граф не тронуты.

Проверено с pnpm 9.15.9 (contract из packageManager):
  pnpm why browserslist        -> 4.28.7
  pnpm audit --audit-level high -> 0, no known vulnerabilities
  pnpm install --frozen-lockfile -> lockfile is up to date
  typecheck + build:prod        -> ok
This commit is contained in:
2026-09-03 22:39:25 +05:00
parent b9d3c03f8d
commit 7d486af712
4 changed files with 78 additions and 25 deletions
+12
View File
@@ -364,6 +364,18 @@ Hysteria-интеграции с официальной документацие
тестом с настоящими сокетами, а гейт приёмки запрещает возврат `IsLoopback()`
и требует негативного случая в тестах.
### Исправлено — зависимости frontend
- **`browserslist@4.21.11` содержал high-advisory** (уязвимы `<= 4.28.6`) и
приходил транзитивно через `autoprefixer` и `update-browserslist-db`. Гейт
сборки отработал ровно так, как задуман: `pnpm audit` по всему lock-графу
остановил релиз до создания tarball. Закрыто точечным `pnpm.overrides` на
`4.28.7` — точной версией, а не диапазоном: security-патч обязан быть
детерминированным и не тащить за собой чужой major. Обновилось только
поддерево `browserslist` (`caniuse-lite`, `electron-to-chromium`, `escalade`,
`node-releases`, `update-browserslist-db`); `autoprefixer`, Vite и остальной
граф не тронуты.
### Исправлено — гейты сборки
- **Гейт fail-open срабатывал на корректном коде.** Проверка «авторизация не