ด่วน! ช่องโหว่ร้ายแรงใน React Native CLI เปิดช่องให้ถูกโจมตีระยะไกล กระทบนักพัฒนาหลายล้านคน


มีรายละเอียดของช่องโหว่ด้านความปลอดภัยที่ถูกแก้ไขแล้วในแพ็กเกจ npm ยอดนิยมอย่าง "@react-native-community/cli" ซึ่งอาจถูกนำไปใช้เพื่อรันคำสั่งระบบปฏิบัติการ (OS) ที่เป็นอันตรายภายใต้เงื่อนไขบางประการ ซึ่งส่งผลกระทบต่อนักพัฒนาหลายล้านคน

Or Peles นักวิจัยด้านความปลอดภัยอาวุโสของ JFrog ระบุในรายงานว่า "ช่องโหว่นี้เปิดโอกาสให้ผู้โจมตีจากระยะไกลที่ไม่ได้ผ่านการตรวจสอบสิทธิ์ สามารถกระตุ้นให้เกิดการดำเนินการคำสั่ง OS โดยอำเภอใจบนเครื่องที่กำลังรันเซิร์ฟเวอร์สำหรับนักพัฒนาของ react-native-community/cli ได้อย่างง่ายดาย ซึ่งก่อให้เกิดความเสี่ยงอย่างใหญ่หลวงต่อนักพัฒนา" โดยถือเป็นช่องโหว่ที่มีระดับความรุนแรงสูงมาก

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

เครื่องมือสำคัญที่ถูกใช้ทั่วโลก

แพ็กเกจเครื่องมือบรรทัดคำสั่ง (command-line tools) นี้ได้รับการดูแลโดยบริษัท Meta โดยทำให้นักพัฒนาสามารถสร้างแอปพลิเคชันมือถือด้วย React Native ได้ โดยมีการดาวน์โหลดประมาณ 1.5 ล้านถึง 2 ล้านครั้งต่อสัปดาห์

สาเหตุของช่องโหว่คืออะไร?

ตามข้อมูลจากบริษัทด้านความปลอดภัยห่วงโซ่อุปทานซอฟต์แวร์ ช่องโหว่นี้เกิดขึ้นจากข้อเท็จจริงที่ว่า Metro development server ที่ React Native ใช้ในการสร้างโค้ดและเนื้อหา JavaScript ผูกเข้ากับอินเทอร์เฟซภายนอกโดยค่าเริ่มต้น (แทนที่จะเป็น localhost) และมีการเปิดเผย endpoint "/open-url" ที่เสี่ยงต่อการถูกแทรกคำสั่ง OS (OS command injection)

Peles กล่าวว่า "endpoint '/open-url' ของเซิร์ฟเวอร์ จัดการคำขอ POST ที่รวมถึงค่าที่ผู้ใช้ป้อน ซึ่งจะถูกส่งต่อไปยังฟังก์ชัน open() ที่ไม่ปลอดภัยจากแพ็กเกจ open NPM ซึ่งจะทำให้เกิดการดำเนินการคำสั่ง OS"

ผลกระทบและความเสี่ยง

ผลลัพธ์คือ ผู้โจมตีทางเครือข่ายที่ไม่ได้ผ่านการตรวจสอบสิทธิ์สามารถใช้ช่องโหว่นี้เพื่อส่งคำขอ POST ที่สร้างขึ้นเป็นพิเศษไปยังเซิร์ฟเวอร์ และรันคำสั่งตามอำเภอใจได้

  • บน Windows: ผู้โจมตีสามารถรันคำสั่งเชลล์ (shell commands) ตามอำเภอใจด้วยอาร์กิวเมนต์ที่ควบคุมได้อย่างสมบูรณ์
  • บน Linux และ macOS: สามารถถูกใช้เพื่อรันไบนารีตามอำเภอใจได้ แต่มีการควบคุมพารามิเตอร์ที่จำกัด

แม้ว่าปัญหานี้จะได้รับการแก้ไขแล้ว แต่นักพัฒนาที่ใช้ React Native ร่วมกับเฟรมเวิร์กที่ไม่พึ่งพา Metro เป็นเซิร์ฟเวอร์สำหรับนักพัฒนาจะไม่ได้รับผลกระทบ

Peles ย้ำว่า "ช่องโหว่แบบ Zero-day นี้อันตรายอย่างยิ่งเนื่องจาก ง่ายต่อการโจมตี ไม่ต้องการการตรวจสอบสิทธิ์ และมี พื้นที่การโจมตีที่กว้าง" พร้อมเน้นย้ำถึงความเสี่ยงที่ซ่อนอยู่ในโค้ดของบุคคลที่สาม

"สำหรับทีมนักพัฒนาและทีมรักษาความปลอดภัย นี่เป็นการตอกย้ำถึงความจำเป็นในการมี การสแกนความปลอดภัยที่ครอบคลุมและเป็นอัตโนมัติ ตลอดทั้งห่วงโซ่อุปทานซอฟต์แวร์ เพื่อให้มั่นใจว่าช่องโหว่ที่ง่ายต่อการโจมตีจะได้รับการแก้ไขก่อนที่จะส่งผลกระทบต่อองค์กรของคุณ"

#ดรกฤษฎาแก้ววัดปริง #ไทยสมาร์ทซิตี้ #SmartCity #DRKRIT #สมาร์ทซิตี้คลิก