A CVE-2025-55182 egy kritikus, hitelesítés előtti távoli kódfuttatási sebezhetőség Server React Server , amelynek CVSS-pontszáma 10,0 – ez a lehetséges legmagasabb súlyossági besorolás. Az OPSWAT Fellowship Program keretében ösztöndíjasaink átfogó technikai elemzést végeztek erről a sebezhetőségről, megvizsgálva annak kiváltó okát a React Flight deserializációs protokollban, a teljes kihasználási láncot, valamint annak széles körű hatását a modern webes ökoszisztémára. Ez a blogbejegyzés bemutatja eredményeinket, valamint gyakorlati útmutatást nyújt a védelemmel foglalkozók számára.

A React a világ egyik legelterjedtebb front-end könyvtárává vált, amely a modern webes és mobile jelentős részét támogatja. A Stack Overflow fejlesztői felmérései következetesen a Reactot sorolják a legjobb webes keretrendszerek közé, amelynek használata világszerte meghaladja a professzionális fejlesztők 40%-át. Ezzel a növekedéssel párhuzamosan a React csapata bevezette Server React Server (RSC) Server a React 19 egyik alapvető jellemzőjeként – ez egy paradigmaváltás, amely a renderelési logikát a kliensről a szerverre helyezi át, lehetővé téve az optimalizált teljesítményt és a szerveroldali és kliensoldali kódok szorosabb integrációját.
Ez az architektúrafejlesztés azonban egy kritikus új támadási felületet hozott magával. 2025. november 29-én Lachlan Davidson biztonsági kutató jelentette a Meta Bug Bounty programjának a React szerveroldali deszerializációs logikájában található sebezhetőséget. A 2025. december 3-án CVE-2025-55182 kóddal nyilvánosságra hozott hiba lehetővé teszi a hitelesítés nélküli távoli kódfuttatást egyetlen, speciálisan kialakított HTTP-kérés révén. A CWE-502 (megbízhatatlan adatok deszerializálása) kategóriába sorolt sebezhetőség nem igényel hitelesítést, felhasználói beavatkozást vagy speciális alkalmazáskonfigurációt – a termelésre készített alapértelmezett create-next-app telepítés azonnal kihasználható.

A hatás azonnali és súlyos volt. A nyilvánosságra hozatalt követő 48 órán belül számos támadási kampányt észleltek a valós környezetben. A Shadowserver Foundation adatai szerint több mint 77 000 nyilvános IP-címet azonosítottak potenciálisan sebezhetőként. A Cloudflare telemetriai adatai szerint a nyilvánosságra hozatalt követő héten több mint 582 millió kihasználási kísérletet rögzítettek, az támadások intenzitása átlagosan óránként több mint 3500 egyedi forrás-IP-cím volt, a csúcsérték pedig 16 585 egyidejű támadó IP-cím volt. A Wiz Research jelentése szerint a felhőalapú környezetek 39%-a tartalmazott sebezhető példányokat. A CISA 2025. december 5-én felvette a sebezhetőséget a Known Exploited Vulnerabilities (KEV) katalógusába.
A támadók figyelemre méltó gyorsasággal és sokszínűséggel jártak el. A Trend Micro több kampányt is dokumentált – köztük az „emerald” és a „nuts” botnet-kampányokat –, amelyek során Cobalt Strike jeladókat, Sliver implantátumokat, a Nezha felügyeleti ügynököt, Fast Reverse Proxy (FRP) alagutakat, valamint egy újszerű „Secret-Hunter” hasznos terhet vetettek be, amely olyan nyílt forráskódú hitelesítőadat-gyűjtő eszközöket használt fegyverként, mint a TruffleHog és a Gitleaks. Threat Intelligence Google Threat Intelligence azonosított néhány, Kínához kapcsolódó fenyegetési klasztert (UNC6600, UNC6586, UNC6588, UNC6603), amelyek speciális eszközöket – többek között a MINOCAT alagútképzőt, a SNOWLIGHT letöltőt, a COMPOOD hátsóajtót és a HISONIC hátsóajtót – vetettek be, valamint iráni kapcsolattal rendelkező szereplőket és pénzügyi motivációjú csoportokat, amelyek kriptovaluta-bányászati kampányokat folytattak. Az AWS már december 4-én dokumentálta, hogy a Kínához kapcsolódó csoportok kísérleteztek a kihasználási kóddal, még mielőtt a teljes proof-of-concept kód nyilvánosan elérhetővé vált volna.
A React szerverkomp Server ensekről
A React egy felhasználói felületek készítésére szolgáló JavaScript-könyvtár, amelyet a Meta és egy széles körű nyílt forráskódú közösség tart karban. A React 19-ben bevezetett React Server (RSC) alapvető változást jelent a React-alkalmazások renderelésének kezelésében. A hagyományos, teljes egészében a böngészőben futó klienskomponensekkel ellentétben a szerverkomponensek a szerveren futnak, és a felhasználói felület sorosított ábrázolását állítják elő, amelyet a kliensnek továbbítanak. Ez a kialakítás csökkenti a böngészőbe továbbított JavaScript mennyiségét, javítja az interaktivitás eléréséhez szükséges időt, és közvetlen hozzáférést biztosít a szerveroldali erőforrásokhoz, például adatbázisokhoz és fájlrendszerekhez.

Az RSC a „Flight” nevű egyedi sorosítási protokollt használja az adatok kódolására és továbbítására az ügyfél és a szerver között. Amikor egy ügyfél meghív egy Server (korábban Server néven ismert), a böngésző a Flight formátumot felhasználva strukturált HTTP-kérésbe csomagolja a függvény argumentumait. A szerver deszerializálja ezt a hasznos adatot, végrehajtja a kért funkciót, és visszaküldi az eredményt az ügyfélnek. Ez a szoros kapcsolat az ügyfél és a szerver között (bár architektúrájában elegáns) azt jelenti, hogy a deszerializációs logika bármely hibája azonnali és katasztrofális következményekkel járhat, ahogyan azt a CVE-2025-55182 is bizonyítja.
A biztonsági rés nem csupán magát a React-et érinti, hanem az arra épülő keretrendszerek teljes ökoszisztémáját is. A Next.js (amely külön tanácsadást kapott, CVE-2025-66478, amelyet később duplikátumként elutasítottak), a React Router, a Waku, a Parcel RSC-bővítménye, a Vite RSC-bővítménye és a RedwoodSDK mind érintettek. Még azok az alkalmazások is sebezhetőek lehetnek, amelyek nem határoznak meg kifejezetten Server , ha az RSC-támogatás engedélyezve van a keretrendszerben.
Műszaki háttér
A sebezhetőség vizsgálata előtt három alapvető fogalom képezi a kihasználási lánc alapját: a JavaScript „await” viselkedése a „thenable” objektumokkal, a prototípuslánc bejárása, valamint a React Flight protokoll darabokra osztott adatmodellje.
A JavaScript await parancsa és a Thenable objektumok
Az await operátor felfüggeszti az aszinkron függvény végrehajtását mindaddig, amíg a várt kifejezés ki nem ért. Ha az await natív Promise-ra bukkan, megvárja annak lezárását, majd visszaadja a teljesített értéket. Az await azonban nem feltétlenül igényel natív Promise-t – bármely .then() metódussal rendelkező objektumot, az úgynevezett „thenable”-t, Promise-szerű konstrukciónak tekint.
Amikor az `await` egy `thenable` objektumra bukkan, meghívja az objektum `.then()` metódusát, átadva a rendszer által biztosított `resolve` és `reject` visszahívásokat. A `resolve`-nak átadott érték lesz az `await` kifejezés eredménye. Fontos, hogy ha a feloldott érték maga is thenable, akkor a beágyazott objektum .then() metódusát rekurzívan hívja meg, amíg el nem éri egy primitív értéket vagy egy lezárt Promise-t. Ez a rekurzív feloldási viselkedés központi szerepet játszik a CVE-2025-55182 kihasználásában.
Láncbejárás prototípusa
Minden JavaScript-objektum belső hivatkozást tart fenn a prototípusára, amely a __proto__ tulajdonságon keresztül érhető el. Amikor egy objektum valamely tulajdonságához hozzáférünk, a JavaScript-motor először az objektum saját tulajdonságait ellenőrzi. Ha a tulajdonság nem található meg, a motor végigjárja a prototípusláncot – az egyes __proto__ hivatkozásokon felfelé haladva –, amíg meg nem találja a tulajdonságot, vagy a lánc az undefined értéknél véget nem ér.
Egy támadó kihasználhatja ezt az öröklődési mechanizmust, hogy az objektum tervezett hatókörén túlmutató tulajdonságokhoz férjen hozzá. Azáltal, hogy a tulajdonságok elérési útvonalába beépíti a __proto__ elemet, a támadó olyan belső metódusokhoz és konstruktorokhoz juthat hozzá, amelyeket az alkalmazás soha nem szánt nyilvánosságra hozásra. A JavaScriptben az obj.__proto__.constructor.constructor kifejezés a globális Function konstruktort adja vissza, amely karakterlánc-bemenetből tetszőleges függvényeket hozhat létre és futtathat.
A React Flight Protocol és a darabokra bontott adatmodell
When a client invokes a Server Function, the browser sends an HTTP POST request with a multipart/form-data body. Each form field contains a numbered “chunk” of serialized data. The Flight protocol uses special string prefixes to encode data types: $<id> references the resolved value of another chunk, $@<id> references the raw chunk object itself, $W<id> represents a Set, $K<id> represents FormData, and $B<id> triggers the blob handler.
Vegyünk egy olyan Server , amelyet az alábbiak szerint definiáltak:

A megfelelő HTTP-kérés több űrlapmezőt tartalmaz, amelyek mindegyike egy kulcsból és egy értékből áll: a 0. mező tartalmazza az argumentumtömböt olyan hivatkozásokkal, mint például „$W1” és „$K2”, míg az 1. és a 2.* mezők azokat az adatokat tartalmazzák, amelyekre ezek a hivatkozások utalnak. A szerver az egyes mezőket érkezésük sorrendjében dolgozza fel, és a közbenső eredményeket „chunkok” nevű objektumokban tárolja.

A chunk egy thenable objektum, amelynek négy fő tulajdonsága van: status (a feldolgozás állapota), value (a tárolt adat), reason (hibainformáció) és _response (visszautalás a szülő válaszobjektumra). Amikor a szerver találkozik egy await chunk-kal, a chunk .then() metódusa meghívásra kerül. Ha a chunk állapota INITIALIZED, a resolve callback megkapja a chunk.value értéket. Ha az állapot PENDING, BLOCKED vagy CYCLIC, a callbackok sorba kerülnek későbbi végrehajtásra.

A chunk_0 általában a meghívott Server argumentumtömbjét jelenti. Miután az összes űrlapmező beérkezett és az összes belső hivatkozás feloldódott, a chunk_0.value a teljesen összeállított argumentumtömböt tartalmazza, amelyet ezután átadnak a célfüggvénynek.
A kérelem teljes feldolgozása (Next.js → React Flight deszerializálás)
Az alábbiakban bemutatjuk, hogyan dolgozza fel a Next.js normál körülmények között a beérkező Server -kérelmet, az HTTP-rétegtől kezdve a React Flight deszerializációs motorig.

handleAction() függvény – Next.js
Amikor egy Server meghívnak, a kérés a `handleAction` függvénybe kerül. Ez a függvény ellenőrzi a metaadatokat, a fejléceket és a CSRF-tokeneket, valamint meggyőződik arról, hogy a kérés érvényes lekérdezési művelet. Ezután létrehozásra kerül egy busboyStream nevű stream a többrészes űrlap testének elemzéséhez. A decodeReplyFromBusboy függvény eseménykibocsátókat köt ehhez a streamhez, ami a nyers adatok fogadásakor elindítja a React Serverdeszerializációs kezelőfüggvényeit. A decodeReplyFromBusboy visszatérési értéke chunk_0; az await operátor ezt feloldja, és az összeállított értéket átadja a meghívott Server .

A getChunk függvény visszaadja az adott azonosítóhoz tartozó darabot. Ha az adott darab még nem létezik, akkor létrehoz egy ResolvedModelChunk objektumot (ha már vannak adatok a response._formData-ban), vagy egy PendingChunk objektumot (ha még nem érkeztek adatok az adott azonosítóhoz).

Amikor a decodeReplyFromBusboy a chunk_0 értéket adja vissza, a blokk még mindig PENDING állapotban van. Az await operátor meghívja a chunk_0.then() metódust, és ideiglenesen elmenti a resolve és a reject visszahívásokat a chunk_0.value és a chunk_0.reason változókba. Ezeket a visszahívásokat a wakeChunk függvény aktiválja újra, miután a hivatkozás feloldása befejeződött.

Deszerializációs folyamat – React Server
Amikor a busboyStream egy teljes nyers adatmezőt kap, elindítja a „field” eseménykibocsátót, meghívja a resolveField függvényt, és elindítja a deszerializálást – vagyis a nyers űrlapadatok teljes értékű JavaScript-objektumokká történő átalakítását. Ezt a folyamatot a következő függvények irányítják.
resolveField(response, key, value)

A kulcs és az érték hozzáadódik a response._formData tárgyhoz. A függvény ezután lekérdezi azt a blokkot, amelynek azonosítója megegyezik a kulccsal. Ha az adott blokk már létezik, akkor a resolveModelChunk függvényt hívja meg annak újbóli létrehozásához. Erre a késleltetett feloldásra azért van szükség, mert az érték hivatkozásokat tartalmazhat olyan mezőkre, amelyek nyers adatai még nem érkeztek meg; ilyen esetben a React Server egy PendingChunk objektumot egyéni resolve és reject visszahívásokkal, hogy később kezelje ezeket a hivatkozásokat.
resolveModelChunk(chunk, value, id)

A resolveModelChunk létrehoz egy ResolvedModelChunk objektumot RESOLVED_MODEL állapotban, és beilleszti a nyers adatokat. Ezután az initializeModelChunk segítségével rekonstruálja a darabot, majd a wakeChunk hívásával elindítja a sorba állított resolve és reject visszahívásokat, ezzel befejezve az objektum vagy hivatkozás feloldását.
initializeModelChunk(chunk)

Az initializeModelChunk a blokk állapotát CYCLIC-re állítja – jelezve, hogy a hivatkozások feloldása folyamatban van –, majd megkezdi a deszerializálást. A JSON.parse segítségével a chunk.value értékből létrehoz egy nyers JavaScript-objektumot, majd ezt az objektumot átadja a reviveModel függvénynek.
reviveModel(válasz, szülőobjektum, szülőkulcs, érték, hivatkozás)

A reviveModel rekurzív módon feldolgozza az elemzett objektum minden egyes elemét. Ha karakterláncértékre bukkan, a parseModelString függvényt hívja meg annak feldolgozására.
parseModelString(response, obj, key, value, reference)

A parseModelString a karakterlánc előtagja alapján választja ki a megfelelő kezelőt a különböző kódolási típusokhoz. A $ karakterrel kezdődő hivatkozások esetében a getOutlinedModel függvényt hívja meg a darabok közötti hivatkozás feloldásához.
getOutlinedModel(response, reference, parentObject, key, map)

A getOutlinedModel a „:” elválasztójel alapján felbontja a hivatkozást, hogy létrehozza a tulajdonság elérési útját, majd végigjárja ezt az utat a célobjektumon, hogy visszaadja a hivatkozott értéket. Amint az alábbi sebezhetőségi elemzésben részletesen kifejtésre kerül, éppen ezeknek a tulajdonságneveknek az érvényesítésének hiánya jelenti a sebezhetőség pontos forrását.
Sebezhetőségi elemzés
Alapvető ok
CVE-2025-55182 originates from insufficient input validation in the getOutlinedModel() function within React’s server-side Flight reply handler (ReactFlightReplyServer.js). When a chunk reference includes a property path - such as $<id>:<prop1>:<prop2> - the function resolves it by traversing the specified properties on the target chunk object, computing the result as chunk[prop1][prop2].

A kritikus hiba abban rejlik, hogy ezeket a tulajdonságneveket soha nem ellenőrzik. A szerver nem ellenőrzi, hogy a kért tulajdonságok az objektum saját tulajdonságai-e, vagy örökölt prototípus-tulajdonságok. Egy támadó ezért beillesztheti a __proto__-t a tulajdonság útvonalába, hogy végigjárja a prototípus-láncot, és elérje azokat a belső módszereket, amelyekhez soha nem szabadna hozzáférni a felhasználó által vezérelt bemenetből. Például a $1:__proto__:then hivatkozás a Chunk.prototype.then-re oldódik fel – egy olyan függvényre, amelyet a támadó ezután vezérelt argumentumokkal hívhat meg.

Sebezhető kód
A támadási lánc a React Flight deszerializációs logikájának két különböző kódútvonalát használja ki.
Az első a Chunk.prototype.then, amely szabályozza, hogy a chunkok hogyan viselkednek thenable-ként. Ha az await operátort egy INITIALIZED állapotú chunkra alkalmazzuk, akkor a resolve(chunk.value) metódus hívódik meg. Ha a chunk.value maga is egy thenable (vagyis egy .then() metódussal rendelkező objektum), akkor az await operátor rekurzívan meghívja a chunk.value.then() metódust. Ez a rekurzív feloldás az a mechanizmus, amelyen keresztül egy támadó a végrehajtást egy tetszőleges függvényre irányíthatja át.
A második a parseModelString() függvényben található $B (blob) előtag-kezelő:

A $B esetben a függvény a response._formData.get(response._prefix + id) hívást hajtja végre. Mind az _formData.get, mind az _prefix a darabon belül tárolt _response objektum tulajdonságai. A támadó a prototípuslánc végigjárásával manipulálva ezeket a tulajdonságokat átirányíthatja ezt a hívást, hogy a globális Function konstruktort hívja meg tetszőleges kóddal argumentumként.
Kihasználás
Through prototype chain traversal, an attacker reaches the global Function constructor via the path <any_object>.constructor.constructor. Because Chunk.prototype.then is a function, the path $1:constructor:constructor resolves to the global Function constructor, which accepts a string and returns a callable function containing that code.

A gyakorlati alkalmazás lehetséges hatásainak bemutatására ösztöndíjasaink egy olyan koncepcióbizonyító kódot állítottak össze, amely összhangban áll több biztonsági kutatócsoport függetlenül dokumentált elemzéseivel. A támadás két szakaszban zajlik:
1. lépés – A hamis blokk létrehozása:
The object delivered in field 0 acts as a fake chunk. Its then property is set to Chunk.prototype.then via the reference path $1:__proto__:then, allowing the Flight deserialization engine to invoke prototype-level behavior on this attacker-constructed object. The _response._formData.get property is pointed at the global Function constructor via $1:constructor:constructor, and _response._prefix is set to the malicious JavaScript code. The value field contains the string {"then": "$B0"}, instructing the blob handler to invoke itself on the same chunk when resolved. The status field is set to resolved_model so that initializeModelChunk is triggered when .then() is called, causing value to be parsed and the blob handler to fire.
Mivel az 1. mezőt ekkor még nem kapta meg, a React Server létrehoz egy resolve és egy reject visszahívást a függőben lévő hivatkozás kezelésére.
2. szakasz – A kiváltó ok megoldása:
Amint az 1. mező – amely a „$@0” értéket, azaz a 0. darabra mutató nyers hivatkozást tartalmazza – átadásra kerül, a függőben lévő darab feloldódik, és közvetlenül a hamis darabra mutat. Ez elindítja a wakeChunk metódust, amely feldolgozza a sorba állított visszahívásokat, és a hivatkozás feloldása során elindítja a prototípuslánc bejárását. Miután a hamis chunk teljesen feloldódott, a wakeChunk újra meghívásra kerül. Mivel a hamis chunk feloldási visszahívása a Node.js implicit feloldási függvénye, ez meghívja a chunk .then() metódusát, és feloldja annak értékét – végül a Function konstruktoron keresztül létrehozza és végrehajtja a beépített rosszindulatú kódot.
A teljes támadáshoz csupán egyetlen HTTP-kérésre van szükség:

Replacing {{COMMAND}} with any JavaScript code executes it on the server. The reason: -1 field prevents a toString() error during processing. The Next-Action header may contain any arbitrary value - even x - because the vulnerable deserialization occurs before the server validates the requested Server Function. This is what makes the vulnerability pre-authentication: the payload is processed during the deserialization phase, before any application-level authentication or authorization logic is reached.
A támadás sikeres kihasználása esetén a támadó teljes Node.js-végrehajtási környezetet szerez a szerveren, beleértve a shell-parancsok végrehajtásához szükséges child_process-hez való hozzáférést, az adatbázis-hitelesítő adatokat és API tartalmazó környezeti változókat, a helyi fájlrendszert, valamint az oldalirányú mozgást lehetővé tevő felhőalapú metaadat-végpontokat.
Koncepció igazolása
Kutatóink egy ellenőrzött laboratóriumi környezetben sikerült reprodukálniuk a biztonsági rést egy olyan szabványos Next.js-alkalmazás segítségével, amelyet a create-next-app paranccsal generáltak és termelésre kész állapotba hoztak – az alapértelmezett konfigurációban semmilyen módosítást nem végezve. A reprodukció megerősítette, hogy a fent leírt, egyetlen kérésre épülő támadási kód megbízhatóan képes távoli kódvégrehajtást eredményezni.


A kontrollált bemutató során kiderült, hogy egy támadó, aki hálózati hozzáféréssel rendelkezik egy sebezhető Next.js-kiszolgálóhoz, tetszőleges Node.js-kódot futtathat – ideértve a child_process.exec() segítségével történő reverse shell létrehozását, a környezeti változók kiolvasását és a helyi fájlrendszerhez való hozzáférést –, anélkül, hogy bármilyen hitelesítő adatot megadna, vagy alkalmazásszintű hitelesítési ellenőrzéseket váltana ki. A Next-Action fejlécben elfogadott tetszőleges érték tovább erősíti a hiba hitelesítés előtti jellegét: a szerver feldolgozza és deszerializálja a hasznos adatot, mielőtt bármilyen műveletkeresést vagy engedélyezési ellenőrzést végrehajtaná.
Enyhítés
A React-csapat 2025. december 3-án – azaz a sebezhetőség nyilvánosságra hozatalának napján – kiadta a javításokat. A hibajavított verziók a React 19.0.1, 19.1.2 és 19.2.1 verziószámok alatt érhetők el. A javítás szigorú tulajdonság-érvényesítést ad hozzá a getOutlinedModel() és a reviveModel() függvényekhez, kifejezetten blokkolva az örökölt prototípus-tulajdonságok – beleértve a __proto__, a constructor és a prototype tulajdonságokat – feloldását a felhasználó által vezérelt hivatkozási útvonalakból a Flight hasznos adataiban.
A szervezeteknek haladéktalanul meg kell tenniük a következő intézkedéseket:
- Frissítsd a React-csomagokat egy javított verzióra (19.0.1, 19.1.2 vagy 19.2.1) az alábbi parancsok futtatásával: npm install react-server-dom-webpack@latest, react-server-dom-parcel@latest vagy react-server-dom-turbopack@latest (a helyzetednek megfelelően).
- A keretrendszer-függőségek frissítése – A Next.js, a React Router, a Waku és az egyéb érintett keretrendszerek már kiadták a megfelelő javításokat. A verzió-specifikus frissítési útmutatásokat a React-csapat tanácsadó közleményében találja.
- Ne támaszkodjon kizárólag a tárhelyszolgáltatók által hozott védelmi intézkedésekre – bár olyan szolgáltatók, mint a Vercel, a biztonsági rés nyilvánosságra kerülése után ideiglenes WAF-szabályokat vezettek be, ezek csupán átmeneti megoldások, és nem helyettesítik az alapul szolgáló csomagok frissítését.
- Ellenőrizze a szerver naplóit az olyan POST-kérelmek tekintetében, amelyek Next-Action fejléccel rendelkeznek, testük pedig multipart/form-data típusú, és tartalmaznak $@ vagy __proto__ mintákat, valamint figyelje az alkalmazásnaplókban a child_process vagy execSync függvények váratlan meghívásait.
Kockázatcsökkentés OPSWAT segítségével
OPSWAT , a MetaDefender™ platform saját fejlesztésű technológiája, biztosítja a szükséges átláthatóságot és ellenőrzést az olyan sebezhetőségek elleni védekezéshez, mint a CVE-2025-55182. Mivel ez a hiba nyílt forráskódú npm-csomagokban (react-server-dom-webpack, react-server-dom-parcel, react-server-dom-turbopack) található, a szervezeteknek először teljes leltárt kell készíteniük arról, hogy ezek a komponensek hol vannak telepítve az infrastruktúrájukban, mielőtt hatékony javításra lenne lehetőség.

OPSWAT átfogó leltárt készít az összes használt szoftverkomponensről, könyvtárról, konténerről és függőségről. Amikor olyan alkalmazásokat vagy konténerképeket vizsgál, amelyek sebezhető React-csomagokat tartalmaznak, a rendszer automatikusan „Kritikus” minősítéssel jelöli meg a CVE-2025-55182 biztonsági rést, és útmutatást nyújt a rendelkezésre álló javított verziókról, lehetővé téve a biztonsági csapatok számára, hogy prioritásokat állapítsanak meg és orvosolják a problémát, mielőtt a rést kihasználnák.
OPSWAT mind MetaDefender – az egyes alkalmazások és konténerképek vizsgálatához –, mind MetaDefender Software Chain™-ben – a teljes fejlesztési életciklusra kiterjedő, folyamatok szintjén történő átláthatóság biztosításához – elérhető. Ezek együttesen lehetővé teszik a biztonsági csapatok számára, hogy:
- A sebezhető összetevők gyors felkutatása – Azonnal azonosítsa, mely alkalmazások és konténerek tartalmaznak sebezhető verziójú react-server-dom-* csomagokat, így biztosítva, hogy egyetlen telepítés se maradjon figyelmen kívül.
- Gondoskodjon a proaktív frissítésről – Folyamatosan figyelje a nyílt forráskódú függőségeket, hogy az új biztonsági figyelmeztetések megjelenésekor felismerje az elavult vagy biztonsági kockázatot jelentő csomagokat, ezzel csökkentve a sebezhetőség időtartamát.
- A szabályozási előírások betartása és az ellátási lánc átláthatósága – Teljesítse a szabályozási követelményeket azáltal, hogy minden szoftverkomponensről és azok ismert sebezhetőségeiről ellenőrizhető nyilvántartást vezet.
A CVE-2025-55182 sebezhetőség kihasználásának sebessége és mértéke – csupán az első héten több mint 582 millió kísérlet történt – jól mutatja, miért nem elegendő már a reaktív javítás. A proaktív védelem alapja, hogy tudjuk, milyen szoftverekkel rendelkezünk, hol futnak azok, és mikor válnak sebezhetővé. Ez a átláthatóság az SBOM-mal kezdődik.
Hivatkozások
- React Team – Kritikus biztonsági rés a React Server
- Wiz Research – React2Shell (CVE-2025-55182): Kritikus React-sebezhetőség
- Trend Micro – CVE-2025-55182: A React2Shell elemzése, a PoC-káosz és a valós támadások
- Akamai – CVE-2025-55182: React és Next.js Server deszerializációja – távoli kódfuttatás
- Google Cloud Több támadó is kihasználja a React2Shell (CVE-2025-55182) sebezhetőséget
- AWS – A Kínához kapcsolódó kiberfenyegetési csoportok gyorsan kihasználják a React2Shell sebezhetőségét
- NVD – CVE-2025-55182
- A React Server megértése – Tony Alicea
- MDN Web Docs – await operátor
- React forráskód – ReactFlightReplyServer.js (v19.0.0)
- Next.js forráskód – action-handler.ts (v16.0.0)
