Перейти к содержимому
PET_03 / Этот сайт

Миграция nikalexan.com
Astro 5 → 7октябрь 2026

Моя рольАудит зависимостей, обновление Astro и Tailwind, перевод коллекций контента на новый API
СрокиОктябрь 2026, один вечер
Результат0 уязвимостей в npm audit, те же 6 страниц после сборки
crisis_alertЗадача

npm audit нашёл критическую уязвимость в самом Astro

В astro 5.16.15 оптимизация AVIF-картинок позволяла удалённо выполнить код (GHSA-26w7-cxv4-gfx2). Исправление вышло только в 7.2.8, а Astro 6 удалил старый API коллекций контента, на котором держались все страницы проектов. Обновиться точечно не получалось: пришлось перескочить через мажорную версию и переписать загрузку контента.

16
уязвимых пакетов
1
критическая
14
высокого уровня
Стек[SYSTEM_ARCHITECTURE]

Статический сайт на Astro

Astro собирает статические страницы на русском и английском, контент лежит в Markdown-коллекциях со схемами на Zod. Стили на Tailwind 4, деплой на Netlify. Большинство уязвимостей сидело не в Astro, а в его зависимостях: sharp, vite, rollup, postcss, svgo.

  • Astro
  • TypeScript
  • Zod
  • Tailwind CSS
  • Netlify
codesite/src/content.config.ts
import { glob } from "astro/loaders";
import { z } from "astro/zod";

const projects = defineCollection({
  loader: glob({
    pattern: "**/*.{md,mdx}",
    base: "./src/content/projects"
  }),
  schema: z.object({ /* ... */ })
});
commit 7ec9744
Решения

16 → 0

Что изменил после

Я пропустил мажорную версию, и обновление стало большим. После миграции я включил Dependabot: теперь он сам сообщает об уязвимостях, и обновления приходят, пока они ещё небольшие.