V prosinci 2025 byla odhalena kritická zranitelnost v React DevServeru s označením CVE‑2025‑55182, známá pod jménem React2Shell. Tato chyba umožňuje vzdálené spuštění kódu (RCE) na vývojářských serverech a je již aktivně zneužívána, včetně útoků napojených na čínské státní aktéry. V PixelBrothers jsme připravili přehled klíčových informací, rizik a doporučených kroků pro ochranu vašich projektů.

Co je React2Shell (CVE‑2025‑55182)?

Zranitelnost se týká vývojového serveru (React DevServer), který běží například pomocí příkazů npm run dev, vite nebo next dev. Pokud je tento server přístupný z externí sítě, může být cílem útoku.

Útočník může zneužít způsob, jakým React DevServer zachází s props v komponentách a manipulovat s tím, co se vykreslí. V kombinaci s nedostatečně zabezpečeným serverem tak může dojít až k vykonání libovolného kódu.

Jak útok funguje?

K samotnému útoku dochází takto:

  • React DevServer přijímá neověřené vstupy (např. URL s parametry)
  • Tyto vstupy jsou injektovány jako props do komponent
  • Pokud aplikace neověřuje typy props a používá např. `dangerouslySetInnerHTML` nebo dynamické komponenty, dochází k vykreslení útočníkova kódu
  • Přes další zranitelnosti může být spuštěn shell skript

Útočníci často kombinují React2Shell s dalšími chybami v proxy nastaveních, environment konfiguraci nebo nedostatečném CORS zabezpečení.

React2Shell (CVE‑2025‑55182): Kritická zranitelnost v React DevServeru zneužívaná útočníky

Kdo za útoky stojí?

Podle reportu společnosti Akcuc útoky aktivně provádí hackerská skupina **napojená na čínskou vládu**. Cílem jsou hlavně vývojové servery v Evropě a Severní Americe, často otevřené kvůli testování nebo vzdálenému vývoji.

Útočníci zneužívají nedbalost vývojářů, kteří DevServer spouští bez omezení (např. s --host 0.0.0.0), což server zpřístupní veřejně.

Zasažené technologie a prostředí

  • Vite – verze před 5.0.2
  • Create React App (CRA) – verze před 5.1.4
  • Next.js – verze před 14.0.5
  • Vlastní DevServery s Reactem nebo Webpackem bez přístupové ochrany

Jak poznat, že jste zranitelní?

Zranitelní můžete být, pokud:

  • Vaše vývojové prostředí běží na veřejné IP adrese
  • Spouštíte DevServer s --host 0.0.0.0 nebo bez IP restrikce
  • Vaše komponenty přijímají props z externích zdrojů (např. z URL nebo API)
  • Nepoužíváte typovou kontrolu props (např. TypeScript nebo PropTypes)

Jak se chránit?

  1. Aktualizujte DevServer – Vite, CRA, Next.js vydaly opravy
  2. Nespouštějte DevServer veřejně – používejte VPN nebo lokální proxy
  3. Validační logika props – vždy validujte datové vstupy, nikdy nenechávejte props volně manipulovatelné
  4. Zakazujte nebo omezujte použití dangerouslySetInnerHTML
  5. Sledujte logy a síťové požadavky – neobvyklé requesty mohou naznačit pokus o útok

Závěr

React2Shell je vážná připomínka toho, že vývojářské prostředí není „mimo nebezpečí“. Pokud běží bez zabezpečení, může se stát nejsnazší cestou dovnitř do firmy. V PixelBrothers vám pomůžeme vyhodnotit rizika a nasadit bezpečný vývojový proces, ať už jde o jednoduchý e‑shop nebo komplexní B2B portál.

Máte DevServer přístupný zvenčí nebo potřebujete konzultaci? Ozvěte se nám a společně zabezpečíme vaše prostředí.