Нова уязвимост в сигурността на Next.js може да позволи на атакуващи да изпълняват код на сървър чрез ImageResponse — функцията, която генерира Open Graph и други изображения за предварителен преглед в социалните мрежи, съобщи Vercel.
Рискът възниква, когато приложение поставя контролирани от атакуващ стойности, като например текст, прочетен от URL адреса на заявката, в изображението. Vercel, компанията зад Next.js, отстрани уязвимостта на 22 септември във версия 16.3.6.
Дефектът, проследяван като CVE-2026-94545, засяга Next.js от 16.2.0 до 16.3.5, когато ImageResponse се изпълнява в средата Node.js, която Next.js използва по подразбиране. Бюлетинът за сигурност на Vercel я определя като критична с CVSS оценка 9.5. Версията за Edge на ImageResponse не е засегната, както и Next.js 15.
ImageResponse използва Satori, библиотека на Vercel, за да конвертира оформлението на изображението в SVG код преди генерирането на крайния PNG файл. Засегнати са приложения, които „предават контролирани от атакуващ стойности в SVG съдържание, атрибути или стилове по време на генерирането на изображението“, според бюлетина за сигурност.
Примерът в бюлетина взема стойност от URL адреса на заявката и я поставя в SVG елемент title. В него не се посочва дали текстът в обикновени елементи, като например заглавие вътре в div, също се зачита.
За да откриете къде дадено приложение използва тази функция, потърсете ImageResponse, импортиран от next/og, например в манипулатори на маршрути (route handlers) и във файлове opengraph-image. Манипулаторите на маршрути генерират изображението при пристигане на заявка. Файлът opengraph-image може да го генерира по време на изграждане (build time) или при пристигане на заявка.
Към 23 септември The Hacker News не откри публични доклади за атаки, използващи уязвимостта, нито публично достъпен код за експлойт.
Корекцията за сигурност е налична в Next.js 16.3.6 — единствената обновена версия, която се инсталира с npm install next@16.3.6. Към 23 септември в регистъра на npm няма публикувана отстранена версия за линията 16.2, така че приложенията на 16.2 трябва да преминат към 16.3.6. Next.js 15.5.26 добавя допълнително заздравяване на сигурността за next/og в линията 15.5.
Ако актуализацията трябва да бъде забавена, временното решение в бюлетина е да се държат контролираните от атакуващ стойности далеч от SVG съдържанието, атрибутите и стиловете, които Node.js ImageResponse рендира. В бюлетина не се препоръчва преминаване към незасегнатата Edge версия, а документацията на Next.js маркира Edge средата за изпълнение като остаряла (deprecated).
При проверки от The Hacker News на 23 септември npm audit не съобщи за засегната версия Next.js 16.3.5. Бюлетинът все още не беше включен и в базата данни GitHub Advisory Database, нито беше публикуван запис за CVE-2026-94545.
Проверете версията на Next.js директно. Satori е пакетирана вътре в пакета Next.js, така че файлът lockfile не я описва като зависимост на Next.js.
Бюлетинът и съобщението на Vercel не съобщават дали приложенията, хоствани във Vercel, са защитени. За две критични уязвимости в Next.js, отстранени през август, компанията заяви, че хостваните приложения са защитени и нямат нужда от обновяване.
Бюлетинът и съобщението на Vercel също така не предоставят начин да се провери дали засегнат маршрут е бил злоупотребен преди инсталирането на корекциите за сигурност. Засегнатите версии са достъпни откакто Next.js 16.2 беше пуснат на 18 март.
Самият дефект е в Satori. Собственият бюлетин на Satori, публикуван в същия ден, посочва, че определени стойности са достигнали до неговия SVG изход, без да бъдат правилно ескейпнати. Специално изготвена стойност би могла да бъде прочетена като SVG код вместо като обикновен текст.
В Next.js такива стойности могат да достигнат до уязвимости в други библиотеки, от които Next.js зависи, и да доведат до изпълнение на зловреден код, заяви Vercel. Компанията не е посочила кои са тези библиотеки.
Бюлетинът на Satori оценява същата CVE като умерена с резултат 5.3 и заявява, че въздействието зависи от това как се използва SVG изходът. Разработчиците, които използват Satori директно, трябва да я обновят до версия 0.33.5, която съдържа корекцията.