Transmiterea jurnalelor, a alertelor și a datelor de telemetrie prin intermediul unei diode de date

Află cum
Utilizăm inteligența artificială pentru traducerile site-urilor și, deși ne străduim să fim exacți, este posibil ca acestea să nu fie întotdeauna 100% precise. Apreciem înțelegerea dumneavoastră.

React2Shell (CVE-2025-55182): Vulnerabilitate critică de execuție a codului de la distanță în Server React

By Loc Nguyen, șeful echipei de testare a penetrării
Împărtășește această postare

CVE-2025-55182 este o vulnerabilitate critică de tip „execuție de cod la distanță înainte de autentificare” în React Server , cu un scor CVSS de 10,0 – cel mai ridicat nivel de gravitate posibil. În cadrul Programului de burseOPSWAT , bursierii noștri au efectuat o analiză tehnică cuprinzătoare a acestei vulnerabilități, examinând cauza principală a acesteia în protocolul de deserializare React Flight, lanțul complet de exploatare și impactul său pe scară largă asupra ecosistemului web modern. Acest blog prezintă concluziile noastre, alături de îndrumări practice pentru apărători.

React a devenit una dintre cele mai utilizate biblioteci front-end din lume, stând la baza unei părți semnificative din mobile web și mobile moderne. Sondajele realizate de Stack Overflow în rândul dezvoltatorilor clasează în mod constant React printre cele mai bune framework-uri web, cu o rată de adoptare de peste 40% în rândul dezvoltatorilor profesioniști la nivel global. În paralel cu această creștere, echipa React a introdus React Server (RSC) ca o caracteristică esențială a React 19 – o schimbare de paradigmă care mută logica de redare de la client la server, permițând o performanță optimizată și o integrare mai strânsă între codul de pe partea serverului și cel de pe partea clientului.

Cu toate acestea, această evoluție arhitecturală a introdus o nouă suprafață de atac critică. Pe 29 noiembrie 2025, cercetătorul în domeniul securității Lachlan Davidson a raportat o vulnerabilitate în logica de deserializare pe partea de server a React către programul Bug Bounty al Meta. Dezvăluită public pe 3 decembrie 2025 sub numărul CVE-2025-55182, vulnerabilitatea permite executarea de cod la distanță fără autentificare printr-o singură cerere HTTP special concepută. Clasificată ca CWE-502 (Deserializarea datelor neîncredere), vulnerabilitatea nu necesită autentificare, interacțiune cu utilizatorul sau configurare specială a aplicației – o implementare implicită create-next-app construită pentru producție poate fi exploatată imediat.

Figura 1: CVE-2025-55182 (sursă: NVD)

Impactul a fost imediat și grav. În termen de 48 de ore de la dezvăluirea publică, s-au observat numeroase campanii de exploatare în mediul real. Potrivit Fundației Shadowserver, peste 77.000 de adrese IP publice au fost identificate ca fiind potențial vulnerabile. Telemetria Cloudflare a înregistrat peste 582 de milioane de tentative de exploatare în săptămâna care a urmat dezvăluirii, intensitatea atacurilor fiind în medie de peste 3.500 de adrese IP sursă unice pe oră și atingând un vârf de 16.585 de adrese IP atacatoare simultane. Wiz Research a raportat că 39% din mediile cloud conțineau instanțe vulnerabile. CISA a adăugat vulnerabilitatea în catalogul său de vulnerabilități exploatate cunoscute (KEV) pe 5 decembrie 2025.

Actorii răuvoitori au acționat cu o viteză și o diversitate remarcabile. Trend Micro a documentat mai multe campanii – printre care campaniile botnet „emerald” și „nuts” – care au utilizat balize Cobalt Strike, implanturi Sliver, agentul de monitorizare Nezha, tuneluri Fast Reverse Proxy (FRP) și o nouă sarcină utilă denumită „Secret-Hunter”, care exploata instrumente open-source de colectare a datelor de autentificare, precum TruffleHog și Gitleaks. Google Threat Intelligence a identificat grupuri distincte de amenințări legate de China (UNC6600, UNC6586, UNC6588, UNC6603) care au utilizat instrumente specializate – inclusiv tunelul MINOCAT, programul de descărcare SNOWLIGHT, backdoor-ul COMPOOD și backdoor-ul HISONIC – alături de actori legați de Iran și grupuri motivate financiar care desfășurau campanii de minerit de criptomonede. AWS a documentat grupuri legate de China care experimentau cu cod de exploatare încă din 4 decembrie, înainte ca codul complet de validare a conceptului să fie disponibil public.

Despre Server React

React este o bibliotecă JavaScript destinată creării de interfețe de utilizator, întreținută de Meta și de o comunitate open-source extinsă. React Server (RSC), introduse odată cu React 19, reprezintă o schimbare fundamentală în modul în care aplicațiile React gestionează redarea. Spre deosebire de componentele client tradiționale care se execută în întregime în browser, componentele server se execută pe server, producând o reprezentare serializată a interfeței de utilizator care este transmisă clientului. Acest design reduce cantitatea de JavaScript trimisă către browser, îmbunătățește indicatorii de timp până la interacțiune și permite accesul direct la resursele de pe server, cum ar fi bazele de date și sistemele de fișiere.

Figura 2: React Server (RSC)

RSC se bazează pe un protocol de serializare personalizat numit „Flight” pentru a codifica și transmite date între client și server. Atunci când un client invocă o Server (cunoscută anterior sub numele de Server ), browserul grupează argumentele funcției într-o cerere HTTP structurată, utilizând formatul Flight. Serverul deserializează această sarcină utilă, execută funcția solicitată și transmite rezultatul înapoi către client. Această legătură strânsă între client și server (deși elegantă din punct de vedere arhitectural) înseamnă că orice defect în logica de deserializare poate avea consecințe imediate și catastrofale, așa cum demonstrează CVE-2025-55182.

Vulnerabilitatea afectează nu doar React în sine, ci întregul ecosistem de framework-uri construite pe baza acestuia. Next.js (care a primit o notificare separată, CVE-2025-66478, respinsă ulterior ca fiind un duplicat), React Router, Waku, pluginul RSC al Parcel, pluginul RSC al Vite și RedwoodSDK sunt toate afectate. Chiar și aplicațiile care nu definesc în mod explicit Server pot fi vulnerabile dacă suportul RSC este activat în framework.

Context tehnic

Înainte de a analiza vulnerabilitatea, trebuie menționate trei concepte fundamentale care stau la baza lanțului de exploatare: comportamentul comenzii „await” din JavaScript cu obiecte „thenable”, parcurgerea lanțului de prototipuri și modelul de date bazat pe blocuri al protocolului React Flight.

Așteptarea în JavaScript și obiectele Thenable

Operatorul `await` întrerupe execuția unei funcții asincrone până când expresia așteptată se rezolvă. Când `await` întâlnește o promisiune nativă, așteaptă finalizarea acesteia și returnează valoarea îndeplinită. Cu toate acestea, `await` nu necesită neapărat o promisiune nativă – orice obiect care dispune de metoda `.then()`, cunoscut sub numele de „thenable”, este tratat ca o construcție de tip promisiune.

Când `await` întâlnește un obiect `thenable`, acesta invocă metoda `.then()` a obiectului, trecând ca argumente funcțiile de apel invers (callback-uri) `resolve` și `reject` furnizate de sistem. Valoarea transmisă către `resolve` devine rezultatul expresiei `await`. În mod critic, dacă valoarea rezolvată este ea însăși un thenable, metoda .then() a acelui obiect imbricat este apelată recursiv până când se ajunge la o valoare primitivă sau la o promisiune stabilită. Acest comportament de rezolvare recursivă este esențial pentru exploatarea CVE-2025-55182.

Parcurgerea lanțului de prototipuri

Fiecare obiect JavaScript păstrează o legătură internă către prototipul său, accesibilă prin proprietatea __proto__. Când se accesează o proprietate a unui obiect, motorul JavaScript verifică mai întâi proprietățile proprii ale obiectului. Dacă proprietatea nu este găsită, motorul parcurge lanțul de prototipuri – urmând fiecare legătură __proto__ – până când proprietatea este găsită sau lanțul se termină cu valoarea undefined.

Un atacator poate exploata acest mecanism de moștenire pentru a accesa proprietăți care depășesc domeniul de aplicare prevăzut al unui obiect. Prin includerea lui __proto__ în căile de acces la proprietăți, un atacator poate ajunge la metode și constructori interni pe care aplicația nu a intenționat niciodată să îi expună. În JavaScript, expresia obj.__proto__.constructor.constructor returnează constructorul global Function, care poate crea și executa funcții arbitrare pe baza unei intrări de tip șir de caractere.

Protocolul React Flight și modelul de date bazat pe segmente

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.

Să luăm în considerare o Server definită după cum urmează:

Figura 3: Exemplu Server

Solicitarea HTTP corespunzătoare conține mai multe câmpuri de formular, fiecare fiind alcătuit dintr-o cheie și o valoare: câmpul 0 conține matricea de argumente cu referințe precum „$W1” și „$K2”, în timp ce câmpurile 1 și 2_* conțin datele la care fac referire aceste referințe. Serverul procesează fiecare câmp pe măsură ce acesta ajunge, stocând rezultatele intermediare în obiecte numite „chunks”.

Figura 4: Cererea HTTP de tip „multipart/form-data” corespunzătoare, generată la apelarea Server din exemplu

Un chunk este un obiect de tip thenable cu patru proprietăți cheie: status (starea rezolvării), value (datele stocate), reason (informații despre eroare) și _response (o referință inversă către obiectul de răspuns părinte). Când serverul întâlnește un chunk în așteptare, se invocă metoda .then() a chunk-ului. Dacă starea chunk-ului este INITIALIZED, callback-ul de rezolvare primește chunk.value. Dacă starea este PENDING, BLOCKED sau CYCLIC, callback-urile sunt puse în coadă pentru execuție ulterioară.

Figura 5: Starea obiectului „chunk” în timpul deserializării

Chunk 0 reprezintă, de obicei, matricea de argumente pentru Server invocată. După ce toate câmpurile formularului sunt primite și toate referințele interne sunt rezolvate, chunk_0.value conține matricea de argumente complet asamblată, care este apoi transmisă funcției țintă.

Gestionarea cererilor de la un capăt la altul (Next.js → Deserializarea React Flight)

În continuare se prezintă modul în care Next.js procesează o cerere Server primită în condiții normale, de la nivelul HTTP până la motorul de deserializare React Flight.

Figura 6: Prezentare generală a gestionării cererilor de către Server Next.js

Funcția handleAction() - Next.js

Când este invocată o Server , solicitarea intră în funcția `handleAction`. Această funcție validează metadatele, verifică anteturile și tokenurile CSRF și confirmă că solicitarea este o acțiune de preluare validă. Apoi se creează un flux numit busboyStream pentru a analiza corpul formularului multipart. Funcția decodeReplyFromBusboy leagă emițătoarele de evenimente de acest flux, declanșând funcțiile de gestionare a deserializării ServerReact Serverpe măsură ce sunt primite datele brute. Valoarea returnată de decodeReplyFromBusboy este chunk_0; operatorul await o rezolvă și transmite valoarea sa asamblată către Server invocată.

Figura 7: Funcția handleAction

Funcția getChunk returnează fragmentul corespunzător unui ID dat. Dacă acel fragment nu există încă, se creează fie un obiect de tip ResolvedModelChunk (dacă datele sunt deja prezente în response._formData), fie un obiect de tip PendingChunk (dacă nu au sosit încă date pentru acel ID).

Figura 8: Funcția getChunk

Când decodeReplyFromBusboy returnează chunk_0, fragmentul se află încă în starea PENDING. Operatorul await apelează chunk_0.then() și stochează temporar callback-urile de rezolvare și respingere în chunk_0.value și chunk_0.reason. Aceste callback-uri sunt reactivate de funcția wakeChunk odată ce rezolvarea referinței se finalizează.

Figura 9: Funcția wakeChunk

Procesul de deserializare - React Server

Când busboyStream primește un câmp complet de date brute, acesta declanșează emițătorul de evenimente „field”, apelează funcția resolveField și inițiază deserializarea – transformând datele brute din formular în obiecte JavaScript complet construite. Următoarele funcții gestionează acest proces.

resolveField(răspuns, cheie, valoare)

Figura 10: Funcția resolveField

Cheia și valoarea sunt adăugate la `response._formData`. Funcția preia apoi fragmentul corespunzător ID-ului care se potrivește cu cheia. Dacă acel fragment există deja, se apelează `resolveModelChunk` pentru a-l reconstrui. Această rezolvare amânată este necesară deoarece o valoare poate conține referințe la câmpuri ale căror date brute nu au sosit încă; în acest caz, React Server un `PendingChunk` cu callback-uri personalizate de rezolvare și respingere pentru a gestiona ulterior acele referințe.

resolveModelChunk(chunk, valoare, id)

Figura 11. Funcția resolveModelchunk

resolveModelChunk creează un obiect ResolvedModelChunk cu starea RESOLVED_MODEL și injectează datele brute. Apoi, reconstruiește fragmentul prin intermediul metodei initializeModelChunk și apelează wakeChunk pentru a declanșa orice callback-uri de rezolvare și respingere aflate în coadă, finalizând astfel rezolvarea obiectului sau a referinței.

initializeModelChunk(chunk)

Figura 12: Funcția initializeModelChunk

Funcția `initializeModelChunk` trece starea fragmentului la CYCLIC – indicând faptul că rezolvarea referințelor este în curs – și începe deserializarea. Aceasta construiește un obiect JavaScript brut din `chunk.value` folosind `JSON.parse`, apoi transmite acest obiect funcției `reviveModel`.

reviveModel(răspuns, obiectPărinte, cheiePărinte, valoare, referință)

Figura 13: Funcția reviveModel

reviveModel procesează recursiv fiecare componentă din obiectul analizat. Când întâlnește o valoare de tip șir de caractere, apelează funcția parseModelString pentru a o gestiona.

parseModelString(răspuns, obiect, cheie, valoare, referință)

Figura 14. Funcția parseModelString

Funcția parseModelString analizează prefixul șirului de caractere pentru a gestiona diferite tipuri de codificare. Pentru referințele care încep cu $, se apelează funcția getOutlinedModel pentru a rezolva referința între fragmente.

getOutlinedModel(răspuns, referință, obiect-părinte, cheie, hartă)

Figura 15: Funcția getOutlinedModel

getOutlinedModel împarte referința pe baza delimitatorului „:” pentru a forma o cale de acces la proprietate, apoi parcurge acea cale pe obiectul fragment țintă pentru a returna valoarea la care se face referire. Așa cum se detaliază în secțiunea Analiza vulnerabilității de mai jos, lipsa validării acestor nume de proprietăți reprezintă punctul exact în care se află vulnerabilitatea.

Analiza vulnerabilității

Cauza principală

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].

Figura 16: Validare insuficientă a datelor de intrare în metoda getOutlinedModel()

Vulnerabilitatea critică constă în faptul că aceste nume de proprietăți nu sunt niciodată validate. Serverul nu verifică dacă proprietățile solicitate sunt proprietăți proprii ale obiectului sau proprietăți prototip moștenite. Prin urmare, un atacator poate include __proto__ în calea proprietății pentru a traversa lanțul prototip și a ajunge la metode interne care nu ar trebui să fie niciodată accesibile din intrările controlate de utilizator. De exemplu, referința $1:__proto__:then se rezolvă în Chunk.prototype.then – o funcție pe care atacatorul o poate invoca apoi cu argumente controlate.

Figura 17: Exploatarea prototipului prin intermediul unor date de intrare rău intenționate

Cod vulnerabil

Lanțul de exploatare folosește două căi de cod distincte din logica de deserializare Flight a React.

Prima este Chunk.prototype.then, care reglementează modul în care se comportă fragmentele ca obiecte thenable. Când se aplică operatorul await unui fragment aflat în starea INITIALIZED, se apelează resolve(chunk.value). Dacă chunk.value este la rândul său un obiect thenable (un obiect cu metoda .then() ), operatorul await invocă recursiv chunk.value.then(). Această rezolvare recursivă este mecanismul prin care un atacator redirecționează execuția către o funcție arbitrară.

Al doilea este handlerul pentru prefixul $B (blob) din cadrul funcției parseModelString():

Figura 18: $B (blob) în funcția parseModelString

În cazul $B, funcția apelează response._formData.get(response._prefix + id). Atât _formData.get, cât și _prefix sunt proprietăți ale obiectului _response stocat în interiorul fragmentului. Prin controlarea acestor proprietăți prin parcurgerea lanțului de prototipuri, un atacator poate redirecționa această apelare pentru a invoca constructorul global Function cu un cod arbitrar ca argument.

Exploatare

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.

Figura 19: Constructorul funcției globale

Pentru a demonstra impactul potențial în lumea reală, membrii echipei noastre au creat o sarcină utilă de tip „proof-of-concept” care corespunde analizei documentate independent de mai multe echipe de cercetare în domeniul securității. Exploit-ul funcționează în două etape:

Etapa 1 – Construiți fragmentul fals:

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.

Deoarece câmpul 1 nu a fost încă primit în acest moment, React Server creează Server callback-uri de tip „resolve” și „reject” pentru a gestiona referința în așteptare.

Etapa 2 – Rezolvarea factorilor declanșatori:

Odată ce câmpul 1 – care conține „$@0”, o referință brută la fragmentul 0 – este livrat, fragmentul în așteptare se rezolvă și indică direct către fragmentul fals. Acest lucru declanșează funcția wakeChunk, care procesează callback-urile din coadă și inițiază parcurgerea lanțului de prototipuri în timpul rezolvării referinței. Odată ce blocul fals este complet rezolvat, wakeChunk este apelat din nou. Deoarece callback-ul de rezolvare pentru blocul fals este funcția implicită de rezolvare Node.js, acesta invocă metoda .then() a blocului și îi rezolvă valoarea – construind și executând în cele din urmă codul rău intenționat injectat prin intermediul constructorului Function.

Exploit-ul complet necesită doar o singură cerere HTTP:

Figura 20. Cerere rău intenționată

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.

În cazul unei exploatări reușite, un atacator obține acces complet la contextul de execuție Node.js de pe server, inclusiv acces la `child_process` pentru executarea comenzilor shell, la variabilele de mediu care conțin datele de autentificare pentru baze de date și API , la sistemul de fișiere local, precum și la punctele de acces pentru metadate din cloud care permit deplasarea laterală.

Dovada conceptului

Colegii noștri au reprodus vulnerabilitatea într-un mediu de laborator controlat, folosind o aplicație standard Next.js generată cu create-next-app și configurată pentru producție – fără modificări ale configurației implicite. Reproducerea a confirmat că încărcătura de exploatare cu o singură solicitare descrisă mai sus permite executarea de cod la distanță în mod fiabil.

Figura 21. Aplicație web Next.js vulnerabilă
Figura 22. Atacatorul compromite serverul Next.js vulnerabil

Demonstrația controlată a arătat că un atacator care are acces la rețea către un server Next.js vulnerabil poate executa cod Node.js arbitrar – inclusiv generarea unui shell invers prin child_process.exec(), citirea variabilelor de mediu și accesarea sistemului de fișiere local – fără a furniza vreo autentificare și fără a declanșa vreo verificare de autentificare la nivel de aplicație. Valoarea arbitrară acceptată pentru antetul Next-Action confirmă și mai mult natura de pre-autentificare a vulnerabilității: serverul procesează și deserializează încărcătura înainte de a efectua orice căutare de acțiune sau verificare de autorizare.

Atenuare

Echipa React a lansat patch-uri pe 3 decembrie 2025 – în aceeași zi în care vulnerabilitatea a fost făcută publică. Versiunile corectate sunt disponibile sub numele de React 19.0.1, 19.1.2 și 19.2.1. Patch-ul adaugă validarea strictă a proprietăților în getOutlinedModel() și reviveModel(), blocând în mod explicit rezolvarea proprietăților prototip moștenite – inclusiv __proto__, constructor și prototype – din căile de referință controlate de utilizator în încărcăturile Flight.

Organizațiile ar trebui să ia următoarele măsuri imediate:

  1. Actualizați pachetele React la o versiune cu patch-uri (19.0.1, 19.1.2 sau 19.2.1) executând comanda npm install react-server-dom-webpack@latest, react-server-dom-parcel@latest sau react-server-dom-turbopack@latest, după caz.
  2. Actualizați dependențele framework-urilor – Next.js, React Router, Waku și alte framework-uri afectate au lansat patch-uri corespunzătoare. Consultați avizul echipei React pentru instrucțiuni de actualizare specifice fiecărei versiuni.
  3. Nu vă bazați exclusiv pe măsurile de atenuare luate de furnizorii de servicii de găzduire – deși furnizori precum Vercel au implementat reguli WAF temporare după dezvăluirea vulnerabilității, acestea sunt doar măsuri provizorii și nu pot înlocui aplicarea patch-urilor pentru pachetele de bază.
  4. Verificați jurnalele serverului pentru cererile POST care conțin antete Next-Action cu corpuri de tip multipart/form-data care includ șabloanele $@ sau __proto__ și monitorizați jurnalele aplicației pentru a depista eventualele apeluri neașteptate ale funcțiilor child_process sau execSync.

Reducerea riscurilor cu OPSWAT

OPSWAT , o tehnologie proprietară a platformei MetaDefender™, oferă vizibilitatea și controlul necesare pentru a asigura protecția împotriva vulnerabilităților precum CVE-2025-55182. Deoarece această vulnerabilitate se află în pachetele npm open-source (react-server-dom-webpack, react-server-dom-parcel, react-server-dom-turbopack), organizațiile trebuie mai întâi să stabilească un inventar complet al locurilor în care aceste componente sunt implementate în infrastructura lor înainte ca remedierea eficientă să fie posibilă.

Figura 23. SBOM detectează CVE-2025-55182

OPSWAT generează un inventar complet al tuturor componentelor software, bibliotecilor, containerelor și dependențelor utilizate. Atunci când scanează aplicații sau imagini de containere care includ pachete React vulnerabile, sistemul semnalează automat CVE-2025-55182 ca fiind „Critic” și oferă îndrumări cu privire la versiunile corectate disponibile, permițând echipelor de securitate să stabilească prioritățile și să remedieze problema înainte ca aceasta să fie exploatată.

OPSWAT este disponibil atât în MetaDefender – pentru scanarea aplicațiilor individuale și a imaginilor de containere – cât și în MetaDefender Software Chain™ – pentru vizibilitate la nivel de flux de lucru pe întregul ciclu de viață al dezvoltării. Împreună, acestea permit echipelor de securitate să:

  • Identificați rapid componentele vulnerabile – Identificați imediat aplicațiile și containerele care conțin pachetele react-server-dom-* afectate, aflate la versiuni vulnerabile, asigurându-vă că nicio implementare nu este omisă.
  • Asigurați-vă că aplicați actualizările în mod proactiv – Monitorizați în permanență dependențele open-source pentru a detecta pachetele învechite sau nesigure pe măsură ce sunt publicate noi avertismente, reducând astfel perioada de expunere la riscuri.
  • Asigurați conformitatea și transparența lanțului de aprovizionare – Respectați cerințele de reglementare prin păstrarea unei evidențe verificabile a tuturor componentelor software și a vulnerabilităților cunoscute ale acestora.

Viteza și amploarea exploatării vulnerabilității CVE-2025-55182 – peste 582 de milioane de tentative numai în prima săptămână – evidențiază motivul pentru care aplicarea reactivă a patch-urilor nu mai este suficientă. A ști ce aveți, unde rulează și când devine vulnerabil reprezintă fundamentul unei apărări proactive. Această vizibilitate începe cu SBOM.

Referințe

Rămâneți la curent cu OPSWAT!

Înscrieți-vă astăzi pentru a primi cele mai recente actualizări ale companiei, povești, informații despre evenimente și multe altele.