
Цей матеріал згенеровано за допомогою штучного інтелекту та опубліковано без попередньої перевірки людиною. Він може містити помилки і не є професійною консультацією. Повідомити про проблему: info@delionsoft.com.
Vercel виправив критичну вразливість у Next.js, яка впливає на ImageResponse — допоміжну функцію, що використовується для генерації Open Graph та інших зображень попереднього перегляду в соціальних мережах. Ця проблема, зареєстрована під номером CVE-2026-94545, може призвести до виконання коду на сервері, коли застосунок передає контрольовані зловмисником значення у згенероване зображення. Виправлення було впроваджено 22 вересня у версії Next.js 16.3.6.
Що сталося
Згідно з оригінальним звітом, уразливі версії від 16.2.0 до 16.3.5, коли ImageResponse працює у середовищі виконання Node.js, що є налаштуванням за замовчуванням. Vercel оцінює цю проблему як критичну з показником CVSS 9,5. Next.js 15 не підпадає під цю уразливість, як і варіант ImageResponse для Edge — хоча середовище виконання Edge у документації позначено як застаріле.
Основна помилка полягає в Satori — бібліотеці Vercel, яка перетворює макет зображення у формат SVG перед створенням файлу PNG. У власному повідомленні Satori, опублікованому того ж дня, зазначено, що певні значення потрапляли у вихідний SVG-код без належного екранування, тому спеціально сформоване значення могло інтерпретуватися як SVG-код, а не як звичайний текст. Satori оцінює цей CVE як помірний (5,3), оскільки вплив залежить від того, як використовується SVG; у Next.js, за словами Vercel, такі значення можуть потрапити до інших бібліотек у пакеті та призвести до виконання коду. Назви цих бібліотек не були названі.
Варто відзначити дві практичні деталі зі звіту. По-перше, інструментарій відставав: станом на 23 вересня команда npm audit не виявляла уразливу версію 16.3.5, повідомлення ще не було внесено до бази даних GitHub Advisory Database, а запис CVE не було опубліковано. По-друге, Satori входить до складу пакета Next.js, тому він не з’явиться у вашому файлі lockfile як окрема залежність. Перевірку версій потрібно проводити щодо самого Next.js. На момент написання статті не було відомо про жодний публічний експлойт-код або повідомлення про атаки.
Чому це важливо
Маршрути зображень Open Graph виглядають нешкідливими і часто створюються один раз, а потім про них забувають. Багато сайтів малих і середніх підприємств та панелей управління SaaS генерують картки попереднього перегляду на основі параметрів запиту — заголовка, імені, тарифного плану — що є саме тим шаблоном, який у попередженні описано як ризикований. Ці маршрути зазвичай є публічними, неавтентифікованими та доступними для будь-кого, хто може скласти URL-адресу.
Оскільки автоматизовані сканери ще не встигли виявити цю уразливість, відсутність проблем у звіті про аудит залежностей не була доказом безпеки в цьому випадку. Уразливі версії були доступні з моменту випуску Next.js 16.2 18 березня, і у повідомленні не вказано, як визначити, чи маршрут використовувався зловмисно до випуску виправлення.
Що робити
- Перевірте версію Next.js безпосередньо. Якщо вона знаходиться в діапазоні від 16.2.0 до 16.3.5, оновлюйте до 16.3.6 — у звіті зазначається, що в реєстрі npm не вказано жодного виправленого релізу в лінійці 16.2, тому застосунки на базі 16.2 повинні перейти на 16.3.6. У лінійці 15.5 версія 15.5.26 додає захист для
next/og. - Проведіть інвентаризацію використання: знайдіть
ImageResponse, імпортований зnext/og, включаючи обробники маршрутів та файлиopengraph-image. Зверніть увагу, які з них зчитують значення із запиту. - Якщо оновлення неможливо виконати негайно, застосуйте обхідний шлях, запропонований у рекомендації: не допускайте, щоб значення, контрольовані зловмисником, потрапляли до вмісту SVG, атрибутів та стилів, що відтворюються за допомогою Node.js.
- Якщо ви безпосередньо використовуєте Satori, оновіть його до версії 0.33.5. Ведіть журнали доступу для вразливих маршрутів під час оцінки ступеня вразливості.
