ช่องโหว่ RCE ระดับ Critical ในแพ็คเกจ NPM ยอดนิยมของ React Native ทำให้นักพัฒนาเสี่ยงต่อการถูกโจมตี

พบช่องโหว่การรันโค้ดที่เป็นอันตรายจากระยะไกล (RCE) ระดับ Critical หมายเลข CVE-2025-11953 ในแพ็คเกจ NPM @react-native-community/cli

แพ็คเกจนี้มียอดดาวน์โหลดเกือบ 2 ล้านครั้งต่อสัปดาห์ โดยทำหน้าที่เป็นเครื่องมือ command-line interface (CLI) สำหรับ React Native ซึ่งเป็น JavaScript framework ที่นักพัฒนาใช้ในการสร้างแอปฯ มือถือแบบ cross-platform

ช่องโหว่นี้ได้คะแนน CVSS 9.8 เนื่องจากสามารถเข้าถึงได้ผ่านเครือข่าย มีความซับซ้อนในการโจมตีต่ำ และอาจสร้างความเสียหายร้ายแรง โดยทำให้ผู้โจมตีที่ไม่ต้องผ่านการยืนยันตัวตน สามารถรันคำสั่งบนระบบปฏิบัติการบนเครื่องของนักพัฒนาผ่านทาง development server ของแพ็คเกจได้

CLI ของ React Native ซึ่งถูกแยกออกจากโค้ดหลักเมื่อหลายปีก่อนเพื่อให้บำรุงรักษาง่ายขึ้น ทำหน้าที่จัดการงานที่สำคัญ เช่น การเริ่มต้นโปรเจกต์ และการรัน Metro bundler

คำสั่งอย่าง “npm start” หรือ “npx react-native run-android” จะเป็นการเปิดใช้งานเซิร์ฟเวอร์นี้ ซึ่งทำหน้าที่ bundle JavaScript สำหรับ emulators หรืออุปกรณ์

แต่นักวิจัยของ JFrog พบว่า /open-url endpoint ของเซิร์ฟเวอร์ จัดการ user input ผิดพลาด โดยส่งข้อมูลนั้นโดยตรงไปยังฟังก์ชัน open() ที่ไม่ปลอดภัยของไลบรารี NPM ที่ชื่อ “open”

บน Windows เหตุการณ์นี้ทำให้เกิดการรันคำสั่ง shell ที่สามารถควบคุมพารามิเตอร์ได้อย่างเต็มที่ ตัวอย่าง PoC พิสูจน์ด้วยการเปิดโปรแกรม calc.

Vulnerability in ‘netmask’ npm Package Affects 280,000 Projects

พบช่องโหว่ใน netmask npm package ส่งผลให้การใช้งาน private network ไม่ปลอดภัย และสามารถถูกนำไปใช้โจมตีกับวิธีอื่นๆ ได้หลากหลาย

netmask package ดังกล่าวถูกใช้อย่างแพร่หลาย ช่องโหว่นี้ได้รับเป็น CVE-2021-28919 เป็นปัญหาที่เกิดจากการอ่านข้อมูลที่ถูก encode ไม่ถูกต้อง ส่งผลให้แปลความหมายของ IP Address ผิดพลาด ทำให้ netmask เข้าใจว่า Private IP Address เป็น External IP Address และอาจเปิดช่องทางให้สามารถเข้าถึงจากภายนอกได้ ขึ้นอยู่กับว่ามีการใช้งาน Package ดังกล่าวในลักษณะอย่างไร การโจมตีที่อาจถูกใช้ผ่านช่องโหว่นี้ประกอบด้วย Server-side request forgery, remote file inclusion และ local file inclusion เป็นต้น

นักวิจัยที่ใช้ชื่อว่า Sick Codes เป็นผู้ค้นพบช่องโหว่ดังกล่าว และพบว่าปัญหาอยู่ในส่วนของการแปลความหมายในส่วน octet แรกของ IP Address ที่ขึ้นต้นด้วยเลข 0 เป็น decimal เช่น การแปลผลข้อมูลที่ถูกส่งมาเป็น 012.0.0.1 (10.0.0.1) เป็น 12.0.0.1 (Public) ส่งผลให้ผู้ไม่หวังดีสามารถอาศัย IP Address ดังกล่าวเป็นช่องทางในการเข้าถึงภายในได้ ด้วยการส่ง Package มาหลอกลวงแอพพลิเคชั่นที่ใช้งาน netmask package ที่มีช่องโหว่ดังกล่าว

ที่มา: securityweek