PolyShell ช่องโหว่ RCE ใหม่บน Magento E-stores

มีการเปิดเผยช่องโหว่ด้านความปลอดภัยตัวใหม่ที่ชื่อว่า 'PolyShell' ซึ่งส่งผลกระทบต่อระบบ Magento Open Source และ Adobe Commerce เวอร์ชัน 2 (เวอร์ชัน stable) ทั้งหมด โดยเป็นช่องโหว่ที่ทำให้ผู้โจมตีสามารถเรียกใช้โค้ด และเข้าควบคุมบัญชีได้โดยไม่ต้องยืนยันตัวตน

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

Adobe ได้ออกแพตช์แก้ไขออกมาแล้ว แต่เป็นแพตช์เฉพาะในเวอร์ชัน 2.4.9 Alpha 2 เท่านั้น ซึ่งหมายความว่าเวอร์ชันที่ใช้งานจริงในปัจจุบันยังคงมีความเสี่ยงอยู่ โดยทาง Sansec ระบุว่า Adobe ได้เสนอ ตัวอย่างการตั้งค่าเว็บเซิร์ฟเวอร์เพื่อจำกัดความเสียหาย แต่ร้านค้าส่วนใหญ่ยังคงต้องพึ่งพาการตั้งค่าจากผู้ให้บริการ hosting ของตนเองเป็นหลัก

ในรายงานประจำสัปดาห์นี้ Sansec ระบุว่าต้นตอของช่องโหว่ความปลอดภัยนี้อยู่ที่ REST API ของ Magento ซึ่งอนุญาตให้มีการอัปโหลดไฟล์ผ่าน custom options ในรายการสินค้าที่อยู่ในตะกร้า

นักวิจัยระบุว่า เมื่อตัวเลือกสินค้าถูกตั้งค่าเป็น file ระบบ Magento จะประมวลผล Object file_info ที่แนบมา ซึ่งภายในประกอบด้วยข้อมูลไฟล์ที่ถูกเข้ารหัสแบบ base64, ประเภทของไฟล์ (MIME type) และชื่อไฟล์ โดยไฟล์ดังกล่าวจะถูกเขียนลงในโฟลเดอร์ pub/media/custom_options/quote/ บนเซิร์ฟเวอร์

Sansec ระบุว่า PolyShell มีที่มาจากการใช้ไฟล์ประเภท Polyglot ซึ่งเป็นไฟล์ที่สามารถทำงานซ้อนทับกันได้ โดยเป็นได้ทั้งไฟล์รูปภาพ และไฟล์สคริปต์ในเวลาเดียวกัน

ช่องโหว่นี้อาจเปิดช่องให้เกิดการเรียกใช้โค้ดที่เป็นอันตรายจากระยะไกล หรือการยึดบัญชีผู้ใช้ผ่านการโจมตีแบบ Stored XSS ทั้งนี้ขึ้นอยู่กับการตั้งค่าของเว็บเซิร์ฟเวอร์ โดยจากผลการวิเคราะห์ของ Sansec พบว่าช่องโหว่นี้ส่งผลกระทบต่อร้านค้าส่วนใหญ่ที่ได้ตรวจสอบ

Sansec ได้ทำการตรวจสอบร้านค้าที่ใช้ระบบ Magento และ Adobe Commerce ที่รู้จักทั้งหมด และพบว่ามีร้านค้าจำนวนมากที่ปล่อยให้ไฟล์ในไดเรกทอรีสำหรับอัปโหลดถูกเข้าถึงได้จากภายนอก

จนกว่า Adobe จะมีการปล่อยแพตช์แก้ไขสำหรับ Production versions ผู้ดูแลระบบร้านค้าควรดำเนินการตามคำแนะนำต่อไปนี้

  • จำกัดการเข้าถึง pub/media/custom_options/
  • ตรวจสอบการตั้งค่าของ nginx หรือ Apache ว่าสามารถป้องกันการเข้าถึงโฟลเดอร์ดังกล่าวได้จริงหรือไม่
  • สแกนหาสิ่งผิดปกติ เพื่อหาไฟล์ Shell, Backdoor หรือมัลแวร์อื่น ๆ ที่อาจแฝงตัวอยู่

ที่มา : bleepingcomputer