數以百萬計以React和Next.js為基本的網站,包括為人熟識的Airbnb和Netflix,面臨容易被攻擊者利用的安全漏洞CVE-2025-55182,後果可能導致網站完全被操控,管理員應盡快檢查伺服器是否受影響,以及學會防護的方法。
React4Shell安全漏洞
React是有名的JavaScript library,可以為web application創建用戶界面,有懶RSC元年在2020年於React 18面世,網頁組裝不在瀏覽器中完成,而是在伺服器之上,網頁編碼可以呼叫React功能然後在伺服器上執行,然後取得執行結果到加入到網頁,令部份網站運行得更快,瀏覽器無需讀取不需要編碼,RSC分開應用程式到伺服器和客端元件,前者可以執行伺服器操作(資料庫查詢、存取基密和複雜計算),後者則在用戶裝置上保持互動,一種特殊輕量HTTP協議名為Flight,用於客端和伺服器間快速傳輸序列化資訊。
CVE-2025-55182安全漏洞存在於Flight請求過程,精確的話應該是存在於資料流的不安全反序列化過程,React Server Component版本19.0.0、19.1.0、19.1.1、19.2.0,更具體地說是react-server-dom-parcel、react-server-dom-turbopack和react-server-dom-webpack封包存在漏洞,Next.js的15.0.4、15.1.8、15.2.5、15.3.5、15.4.7、15.5.6和16.0.6也存在安全漏洞。
要利用此安全漏洞,攻擊者只需要簡單地發送HTTP請求到伺服器,即使在試證和任何檢查之前,該請求能以React特權啟動伺服器的程序。儘管暫時未有使用CVE-2025-55182的個案,但專家認為它可行而且很大機會大規模被利用。有網絡保安公司聲稱測試利用RCE結果接近100%可靠,攻擊的原型已經存在於GitHub,所以攻擊者不難去應用作大規模攻擊。
React原來的設計是創建客端編碼在瀏覽器上運行,伺服器方元件含安全漏洞相對新,很多基於舊版React設置的項目,或停用React伺服器端元件的項目不受漏洞影響。然而,即使項目沒有使用伺服器方功能,並不意味著安全,RSC可能仍然存在,使用最新版本React和預設設定建立網站和服務(例如使用create-next-app建立Next.js應用程式),都存在安全漏洞。
防禦性考量應對CVE-2025-55182
React用戶應該更新至版本19.0.1、19.1.2或19.2.1,Next.js用戶則更新至版本15.1.9、15.2.6、15.3.6、15.4.8、15.5.7或16.0.7,為React Router、Expo、Redwood SDK、Waku和其他項目的詳細指引可以在React blog找到。
雲端供應商防護:主要供應商已發佈應用層面Web過濾器(WAF)規則,以防止漏洞被利用,包括Akamai、AWS、Cloudflare、Google Cloud和Vercel,不過所有供應商的WAF防護只是為計劃內的補丁程序爭取時間,所有項目中的RSC元件仍需要更新。
防範自己伺服器上的服務:最少入侵性的解決方案是使用偵測規則來防止被用於WAF或防火牆,大部份供應商已經推出需要的規則集,用戶也可以自備,例如基於我們的危險POST請求清單。
如果環境中無法對網絡流量進行仔細分析和過濾,可識別所有提供RSC的伺服器,大幅限制這些伺服器的存取,內部服務的話,可以封鎖所有不受信任IP範圍的請求,公用服務的話,可加加IP信譽過濾和速率限制。在安裝了RSC的伺服器,EPP或EDR代理可提供額外保障,協助偵測被利用漏洞的react-server行為異常,並阻止進一步攻擊。
深入調查:即使未證實安全漏洞已被實際利用,但不排除已經發生,建議密切注意網路流量和雲端環端日誌,一旦發現可疑請求應即快採取全面應對措施,包括輪換伺服器上的金鑰和其他敏感資訊,重點關注滲透活動跡象,例如伺服器環境偵察、搜尋敏感資訊(.env、CI或CD token等),以及安裝web shell。
資料來源:Kaspersky Blog


