fix(deps/site-finder): 19 уязвимых пакетов во фронт-локе — пересборка без правки package.json #3210

Merged
bot-backend merged 1 commit from fix/deps-sitefinder-frontend-cve into main 2026-08-29 10:55:26 +00:00

1 commit

Author SHA1 Message Date
bot-backend
0cf89dd5bb fix(deps/site-finder): 19 уязвимых пакетов во фронт-локе — пересборка без правки package.json
All checks were successful
CI Trade-In / changes (pull_request) Successful in 9s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Successful in 1m57s
CI Trade-In / browser-tests (pull_request) Has been skipped
CI / changes (pull_request) Successful in 11s
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / frontend-tests (pull_request) Successful in 59s
Лок не пересобирали с 3 июля (у «Меры» — 7 августа), и весь разрыв по уязвимостям
между двумя фронтендами объясняется этим. Прогон OSV: было 19 уязвимых пакет-версий,
стало 4. package.json не тронут — все фиксы влезли в существующие каретки.

Главное — Next: у 15.5.15 висело 21 advisory, 10 из них HIGH (обходы middleware/
proxy, SSRF в Server Actions и rewrites, набор DoS). Максимальный fixed_in среди них
— 15.5.21, то есть ВСЕ закрываются внутри ветки 15.5.x. Переход на 16 для
безопасности не требуется, это отдельная миграция.

  next / eslint-config-next  15.5.15 -> 15.5.24
  sharp                      0.34.5  -> 0.35.4   унаследованные дыры libvips
  postcss                    8.5.10  -> 8.5.26   чтение произвольного .map по
                                                 sourceMappingURL
  nanoid                     3.3.11  -> 3.3.18
  js-yaml                    4.1.1   -> 4.3.2    квадратичный CPU на merge-key
  form-data                  4.0.5   -> 4.0.6    CRLF-инъекция
  brace-expansion            ...     -> 1.1.18   три DoS
  @babel/core                7.29.0  -> 7.29.7
  @opentelemetry/core        2.7.1   -> 2.10.0
  echarts                    6.0.0   -> 6.1.0
  @sentry/nextjs             10.53.1 -> 10.72.0
  tailwindcss + postcss-плагин 4.2.4 -> 4.3.3
  react / react-dom          19.2.5  -> 19.2.8

Дерево схлопнулось с 1010 до 749 пакетов — это следствие двухмесячной давности
лока, а не косметика, поэтому приёмка шла через полный npm ci, а не по диффу.

Остаются 4 и не чинятся здесь: postcss 8.4.31 Next вендорит ВНУТРИ своего
node_modules, а vitest 2.1.9 -> vite -> esbuild требуют мажора vitest — отдельная
задача.

Проверено локально: npm ci с нуля и npm run build проходят, сборка Next 15.5.24 +
tailwind 4.3.3 + sentry 10.72 отдаёт все маршруты. npm run test локально даёт 13
падений в 4 файлах (localStorage undefined при определённом window) — это jsdom 25
под здешним node 26; версии тестового стека в диффе НЕ менялись (jsdom 25.0.1,
vitest 2.1.9, vite 5.4.21 те же), CI гоняет node 20 и он тут гейт.

NB для тех, кто повторит локально: npm 12 по умолчанию режет remote-загрузки
(allow-remote=none) и спотыкается об опциональную @tailwindcss/oxide-wasm32-wasi.
Обходится флагом --allow-remote=all на время команды; в CI npm 10, там этого нет.
2026-08-29 13:46:57 +03:00