แฮ็กเกอร์ใช้ช่องโหว่ระดับ Critical ใน React Native Metro เพื่อโจมตีระบบของนักพัฒนา

แฮ็กเกอร์กำลังมุ่งเป้าไปที่กลุ่มนักพัฒนาโดยใช้ช่องโหว่ระดับ Critical หมายเลข CVE-2025-11953 ใน Metro server ของ React Native เพื่อฝัง Payloads ที่เป็นอันตรายเข้าสู่ระบบปฏิบัติการ Windows และ Linux

บน Windows ผู้โจมตีที่ไม่ผ่านการยืนยันตัวตนจะสามารถใช้ช่องโหว่ดังกล่าวเพื่อรันคำสั่งใด ๆ บน OS ก็ได้ผ่าน POST request ส่วนบน Linux และ macOS ช่องโหว่นี้อาจนำไปสู่การรันไฟล์โปรแกรมใด ๆ ก็ตาม แต่จะมีการจำกัดการควบคุม Parameter บางส่วน

Metro คือ JavaScript bundler ที่เป็นค่า Default สำหรับโปรเจกต์ React Native และเป็นเครื่องมือสำคัญสำหรับการสร้าง และรันแอปพลิเคชันในช่วงระหว่างการพัฒนา

โดยค่า Default ของ Metro สามารถเชื่อมต่อกับ Interfaces เครือข่ายภายนอก และเปิดให้เข้าถึง HTTP endpoints ที่ออกแบบมาสำหรับขั้นตอนการพัฒนาเท่านั้น (เช่น /open-url) เพื่อให้ใช้งานแบบ Local ได้

นักวิจัยจาก JFrog บริษัทด้านความปลอดภัยของ Supply-chain ซอฟต์แวร์ ได้ค้นพบช่องโหว่ดังกล่าว และออกมาเปิดเผยเมื่อต้นเดือนพฤศจิกายนที่ผ่านมา ซึ่งหลังจากที่มีการเปิดเผยข้อมูลต่อสาธารณะ ก็เริ่มมีการปล่อยโค้ด Proof-of-Concept exploits ออกมาหลายตัว

ในบทความที่เผยแพร่ระบุว่า ต้นตอของปัญหาอยู่ที่ endpoint /open-url นั้นยอมรับคำสั่งแบบ POST request ที่แนบค่า URL ซึ่งผู้ใช้ป้อนเข้ามา และค่าเหล่านั้นถูกส่งต่อไปประมวลผลในฟังก์ชัน open() โดยไม่ผ่านการตรวจสอบความปลอดภัยเสียก่อน

ช่องโหว่ดังกล่าวส่งผลกระทบต่อแพ็กเกจ @react-native-community/cli-server-api ตั้งแต่เวอร์ชัน 4.8.0 ถึง 20.0.0-alpha.2 และได้รับการแก้ไขแล้วในเวอร์ชัน 20.0.0 ขึ้นไป

เมื่อวันที่ 21 ธันวาคม 2025 บริษัทด้านข่าวกรองความปลอดภัย VulnCheck ตรวจพบผู้ไม่หวังดีกำลังใช้ประโยชน์จากช่องโหว่ CVE-2025-11953 ซึ่งถูกเรียกว่า "Metro4Shell" โดยพบกิจกรรมการโจมตีเพื่อปล่อย Payloads แบบเดิมต่อเนื่องในวันที่ 4 และ 21 มกราคมที่ผ่านมา

VulnCheck ระบุว่า “การโจมตีดังกล่าวมีการส่ง Payloads อันตรายทั้งบน Linux และ Windows ซึ่งแสดงให้เห็นว่า Metro4Shell เป็นกลไกการเข้าถึงระบบเบื้องต้น (Initial Access Mechanism) แบบข้ามแพลตฟอร์มที่สามารถนำมาใช้โจมตีได้จริง”

ในการโจมตีทั้ง 3 ครั้ง นักวิจัยพบการส่ง PowerShell Payloads ชุดเดียวกันที่ถูกเข้ารหัสแบบ Base-64 โดยซ่อนมาในส่วน Body ของ HTTP POST Request ที่เป็นอันตราย ซึ่งพุ่งเป้าไปยัง Endpoints ที่เปิดทิ้งไว้

เมื่อโค้ดถูกถอดรหัส และเริ่มทำงาน Payloads จะดำเนินการดังต่อไปนี้

  1. ปิดการทำงานของระบบป้องกัน โดยใช้คำสั่ง Add-MpPreference เพื่อเพิ่ม Exclusion paths ใน Microsoft Defender ให้กับทั้ง Directory ปัจจุบันที่กำลังทำงานอยู่ และ Directory ชั่วคราวของระบบ
  2. สร้างการเชื่อมต่อแบบ Raw TCP ไปยังเซิร์ฟเวอร์ของผู้โจมตี และส่งคำสั่ง GET /windows เพื่อดึง Payload ในระยะถัดไปออกมา
  3. บันทึกข้อมูลที่ได้รับ ลงใน Disk เป็นไฟล์โปรแกรมไว้ใน Directory ชั่วคราวของระบบ
  4. สั่งรันไฟล์ Binary ที่ดาวน์โหลดมา พร้อมแนบ Argument string ขนาดใหญ่ตามที่ผู้โจมตีกำหนดไว้

Payload สำหรับ Windows ที่พบในการโจมตีเหล่านี้ เป็นไฟล์ Binary ที่พัฒนาด้วยภาษา Rust และถูกบีบอัดด้วย UPX โดยมีกลไกพื้นฐานเพื่อป้องกันการถูกตรวจสอบวิเคราะห์ (Anti-analysis logic) นอกจากนี้ บนโครงสร้างพื้นฐานเดียวกันยังพบไฟล์ Binary สำหรับ Linux เก็บไว้อยู่ด้วย ซึ่งแสดงให้เห็นว่าการโจมตีนี้ครอบคลุมทั้งสองแพลตฟอร์ม

ข้อมูลจากการสแกนด้วย ZoomEye (เครื่องมือค้นหาสำหรับอุปกรณ์ที่เชื่อมต่อเครือข่าย, บริการ และเว็บแอปพลิเคชัน) ระบุว่า ปัจจุบันมี React Native Metro servers ประมาณ 3,500 แห่งที่เปิดเผยอยู่บนอินเทอร์เน็ต

แม้ว่าจะมีการตรวจพบการโจมตีอย่างต่อเนื่องมานานกว่าหนึ่งเดือน แต่ช่องโหว่ดังกล่าวยังมีคะแนนต่ำใน Exploit Prediction Scoring System (EPSS) ซึ่งเป็นกรอบการประเมินความเสี่ยงที่ใช้คาดการณ์แนวโน้มที่จะถูกใช้ในการโจมตี

นักวิจัยระบุว่า "องค์กรต่าง ๆ ไม่สามารถรอให้ CISA นำช่องโหว่ดังกล่าวลงในรายการ KEV (Known Exploited Vulnerabilities), รอรายงานจากผู้ผลิต, หรือรอให้เกิดฉันทามติในวงกว้างก่อนแล้วค่อยลงมือจัดการ"

รายงานของ VulnCheck ได้ระบุ IoCs (Indicators of Compromise) สำหรับทั้งโครงสร้างเครือข่ายของผู้โจมตี รวมถึง Payloads ที่ใช้โจมตีบนระบบ Windows และ Linux เอาไว้ด้วย

ที่มา : bleepingcomputer