Vienas 2026. gada oktobra nedēļas laikā tika izlaisti steidzami labojumi Node.js un Next.js. Abos atrastas ievainojamības, caur kurām uzbrucējs var palaist savu kodu jūsu serverī.
Ja jūsu vietne, interneta veikals vai bots darbojas uz Node.js vai Next.js, atjauniniet tos. Tas aizņems no 15 līdz 30 minūtēm. Zemāk ir vienkārša instrukcija soli pa solim.
Kas ir Node.js un Next.js
Iedomājieties automašīnu.
Node.js ir dzinējs. Tas liek programmai darboties serverī. Ar to brauc tūkstošiem vietņu, botu, API un interneta veikalu.
Next.js ir virsbūve un salons. Gatavs pamats vietnei: lapas, attēli, veidlapas. Next.js vienmēr darbojas virs Node.js.
Oktobrī problēmas atrada gan dzinējā, gan virsbūvē. Tāpēc labot jāabus. Ja atjaunināt tikai Next.js, dzinējam paliek defekts. Un otrādi.
Node.js: bīstama izpakošana
- oktobrī Node.js izlaida labojumus uzreiz 10 ievainojamībām. Bīstamākā no tām saņēma numuru CVE-2026-111497.
Kas tā par kļūdu. Lai dati tīklā tiktu pārsūtīti ātrāk, tos saspiež. Viena no populārajām saspiešanas metodēm saucas Brotli. Node.js prot izpakot šādus datus. Izpakotājā atrada kļūdu.
Iedomājieties vakuuma maisu ar mantām. Jūs to uzgriežat, un mantas ieņem savu vietu plauktā. Tagad iedomājieties īpaši sagatavotu maisu. Izpakojot mantas izbirst ārpus plaukta un nokrīt uz blakus esošajām. Tā ir arī šeit: īpaši sagatavoti dati izpakošanas laikā tiek ierakstīti tur, kur nedrīkst. Caur to uzbrucējs var palaist savu kodu.
Kam tas ir bīstami. Visām lietotnēm, kas izpako svešus saspiestus datus. Piemēram, ja jūsu serveris saņem atbildes no trešo pušu API caur fetch() vai darbojas uz Express 5.
Vēl trīs nopietnas kļūdas. Tās saistītas ar sertifikātu un adrešu pārbaudi. Iedomājieties sargu, kas pārbauda caurlaides. Ja caurlaides numuru uzrakstīt ar īpašu fontu, sargs ielaidīs nepareizo cilvēku. Tāpat Node.js dažos gadījumos varēja uzskatīt viltojumu par īstu serveri.
Apiešanas ceļa nav. Vienīgā aizsardzība ir atjaunināšana.
Next.js: attēls ar pārsteigumu
- oktobrī Next.js izlaida steidzamu atjauninājumu. Tas aizver divas kritiskas ievainojamības ar novērtējumu 9,5 no 10 un vienu augstu.
Pirmā: bīstami SVG attēli (CVE-2026-96889). Next.js prot pats samazināt un saspiest attēlus vietnei. Tam tas izmanto bibliotēku sharp. Tajā atrada kļūdu, apstrādājot SVG formāta attēlus.
Tas ir kā Trojas zirgs. Ārēji parasts attēls. Bet iekšā paslēpts kods, kas tiek palaists, kad serveris sāk to apstrādāt. Tas ir bīstami, ja jūsu vietne ļauj lietotājiem augšupielādēt attēlus. Ievainojamas ir Next.js versijas no 10 līdz 15.5.27 un no 16.0 līdz 16.4.0.
Otrā: kešatmiņas kļūda (GHSA-673q-mjm6-r5xr). Attiecas tikai uz jaunām vietnēm uz Next.js 16 ar ieslēgtu funkciju Cache Components. Uzbrucējs var palaist savu kodu bez paroles. Pagaidu risinājuma nav, tikai atjaunināšana.
Trešā: pakalpojuma atteikums. Ar īpašiem pieprasījumiem vietnes veidlapām (Server Actions) var “noslogot” serveri, un vietne pārstās atvērties.
Svarīgs moments. Ierastā npm audit pārbaude neredz ne visas šīs ievainojamības. Tāpēc nevajadzētu paļauties tikai uz to. Pārbaudiet versijas manuāli, kā aprakstīts zemāk.
Uz ko tas attiecas
Node.js. Uz visiem, kam serverī darbojas kaut kas uz Node.js:
- vietnes uz Next.js, Nuxt, Remix, Astro;
- API uz Express, NestJS, Fastify;
- Telegram un Discord boti;
- administrēšanas paneļi, vadības paneļi, interneta veikali JavaScript valodā;
- programmas Docker konteineros uz node: attēliem.
Next.js. Uz visiem, kam vietne izveidota uz Next.js versijām no 10 līdz 16.4.0 un darbojas savā serverī vai VPS.
Node.js 20, 23, 25 un senākas versijas labojumus nesaņems. To atbalsts ir beidzies. Tas ir kā tālrunis, kam vairs neiznāk drošības atjauninājumi. To var lietot, bet ar katru mēnesi tas kļūst riskantāk.
Uzziniet versijas
Pieslēdzieties serverim pa SSH.
Node.js versija:
node -vNext.js un sharp versijas. Pārejiet uz vietnes mapi un izpildiet:
npm ls next sharpSalīdziniet ar tabulu:
| Kas | Droša versija |
|---|---|
| Node.js 22 | 22.23.4 un augstāka |
| Node.js 24 | 24.22.1 un augstāka |
| Node.js 26 | 26.12.1 un augstāka |
| Node.js 20, 23, 25 un senāka | Labojuma nav, nepieciešama pāreja uz 22, 24 vai 26 |
| Next.js 16 | 16.4.1 un augstāka (pašlaik jaunākā ir 16.4.3) |
| Next.js 15 | 15.5.28 un augstāka |
| Next.js 14 un senāka | Labojuma nav, nepieciešama pāreja uz 15 vai 16 |
| sharp | 0.35.5 un augstāka |
Serverī var būt vairāki Node.js. Piemēram, ja jūs to instalējāt caur nvm vai tas darbojas Docker iekšienē. Komanda node -v parādīs tikai vienu. Pārbaudiet arī procesus, kas patiešām darbojas:
ps aux | grep nodeAtjauniniet Node.js
Veids ir atkarīgs no tā, kā Node.js tika instalēts.
Ja caur nvm (biežākais variants izstrādātājiem):
nvm install 24
nvm alias default 24Cipara 24 vietā ievietojiet savu atzaru: 22, 24 vai 26. nvm pats uzstādīs šī atzara jaunāko versiju.
Ja caur Ubuntu vai Debian pakotņu pārvaldnieku:
sudo apt update
sudo apt install --only-upgrade nodejsJa Docker. Nomainiet versiju Dockerfile pirmajā rindā. Piemēram:
FROM node:24.22.1-bookworm-slimPēc atjaunināšanas vēlreiz izpildiet node -v un pārliecinieties, ka versija atbilst tabulai.
Ja jums ir Node.js 20 vai vecāks. Pāreja uz 22 vai 24 ir vairs nevis vienkāršs atjauninājums, bet pārcelšanās. Kā no Windows 7 uz Windows 11: lielākā daļa programmu darbosies, bet kaut kas var nostrādāt nepareizi. Vispirms pārbaudiet vietni testa serverī.
Atjauniniet Next.js un sharp
Pirms atjaunināšanas saglabājiet projekta kopiju vai izveidojiet git commit. Ja kaut kas noies greizi, atgriezīsieties minūtes laikā.
Next.js 16:
npm install next@latest eslint-config-next@latestNext.js 15:
npm install next@15.5.28
npm install sharp@^0.35.5Otrā komanda ir svarīga. Uz Next.js 15 pēc atjaunināšanas bieži paliek veca sharp 0.34. Tad caurums ar attēliem paliek atvērts.
Pārbaudiet rezultātu:
npm ls next sharpUn pārbūvējiet vietni:
npm run buildBonuss. Ja sen neesat atjauninājuši, šis atjauninājums aizvērs arī septembrī labotās ievainojamības. Tad Next.js izlaida vēl vienu bīstamas attēlu ģenerēšanas kļūdas labojumu un septiņus labojumus attiecībā uz kešatmiņu un datu aizsardzību.
Pārstartējiet un pārbūvējiet
Pēc atjaunināšanas jaunā versija atrodas diskā. Bet vecā turpina darboties atmiņā, kamēr jūs to nepārstartējat. Tas ir kā nopirkt jaunas riepas un vizināt tās bagāžniekā. Automašīna joprojām brauc uz vecajām.
Ja vietne tiek palaista caur PM2:
pm2 restart allJa caur systemd (mysite vietā norādiet sava pakalpojuma nosaukumu):
sudo systemctl restart mysiteJa Docker:
docker compose build --pull
docker compose up -dKarodziņš --pull liek Docker lejupielādēt svaigu bāzes attēlu. Bez tā tas var paņemt veco no kešatmiņas.
Pēc pārstartēšanas atveriet vietni un pārbaudiet galvenās lapas, veidlapas un attēlu augšupielādi.
Kontrolsaraksts
- Uzzināju Node.js versiju ar komandu node -v
- Pārbaudīju, vai nav citu darbojošos Node.js
- Atjaunināju Node.js līdz 22.23.4, 24.22.1 vai 26.12.1
- Saglabāju projekta kopiju pirms atjaunināšanas
- Atjaunināju Next.js līdz 16.4.1+ vai 15.5.28+
- Pārbaudīju, ka sharp nav zemāka par 0.35.5
- Pārbūvēju vietni ar komandu npm run build
- Pārstartēju lietotni vai konteinerus
- Pārbaudīju, ka vietne, veidlapas un attēli darbojas
Nevēlaties paši tikt galā?
Uz papīra viss izskatās vienkārši. Praksē pēc Next.js atjaunināšanas būvēšana var beigties ar nesaprotamu kļūdu. Vai arī serverī var izrādīties trīs dažādas Node.js versijas, un nav skaidrs, kura no tām apkalpo vietni. Vai arī pāreja no Node.js 20 var pavilkt līdzi pusi atkarību atjaunināšanu.
Šādiem gadījumiem Zomro piedāvā divus variantus.
SOD: atjaunināsim jūsu vietā
Mūsu sistēmu administrators:
- atradīs visas Node.js versijas serverī un konteineros;
- atjauninās Node.js, Next.js un sharp līdz drošām versijām;
- pārbūvēs un pārstartēs lietotni;
- pārbaudīs, ka vietne darbojas pēc atjaunināšanas.
Cena: €12.50 par katrām 15 darba minūtēm.
[Pasūtīt atjaunināšanu]
Premium: ātra palīdzība, kad tā nepieciešama
Ja vietne pēc atjaunināšanas nokrita, katra dīkstāves stunda maksā naudu. Uz parastu tehnisko pieprasījumu atbilde var aizņemt līdz 10 stundām. Ar Premium mēs atbildam 5 līdz 30 minūtēs.
Node.js un Next.js izlaiž drošības labojumus gandrīz katru mēnesi. Ar Premium jums nevajadzēs ar tiem tikt galā vieniem.
[Pieslēgt Premium]

