พบช่องโหว่ RCE ใน ImunifyAV ที่อาจทำให้เว็บไซต์ที่ Host อยู่บน Linux หลายล้านแห่งตกอยู่ในความเสี่ยง

ImunifyAV ซึ่งเป็นโปรแกรมสแกนมัลแวร์สำหรับเซิร์ฟเวอร์ Linux ที่มีเว็บไซต์มากกว่า 10 ล้านแห่งใช้งานอยู่ ถูกพบว่ามีช่องโหว่การเรียกใช้โค้ดที่เป็นอันตรายจากระยะไกล (Remote Code Execution) ที่อาจถูกใช้เพื่อโจมตีระบบ hosting ได้

ช่องโหว่ดังกล่าวส่งผลกระทบต่อ AI-bolit malware scanning component ในเวอร์ชันก่อน 32.7.4.0 ซึ่ง component ดังกล่าวมีอยู่ใน Imunify360, ImunifyAV+ แบบชำระเงิน และ ImunifyAV ที่เป็นโปรแกรมสแกนมัลแวร์เวอร์ชันฟรี

ตามรายงานจากบริษัทด้านความปลอดภัย Patchstack ระบุว่า ช่องโหว่ดังกล่าวเป็นช่องโหว่ที่ถูกพบมาตั้งแต่ปลายเดือนตุลาคมที่ผ่านมา เมื่อ CloudLinux ผู้จำหน่าย ImunifyAV ได้ปล่อยแพตช์แก้ไขออกมา และปัจจุบันช่องโหว่ดังกล่าวยังไม่ได้รับการกำหนดหมายเลข CVE

เมื่อวันที่ 10 พฤศจิกายนที่ผ่านมา ผู้ผลิตได้นำแพตช์แก้ไขไปปรับใช้ย้อนหลังกับ Imunify360 AV เวอร์ชันเก่าด้วย ในคำแนะนำเมื่อวันที่ 12 พฤศจิกายนที่ผ่านมา ทาง CloudLinux ได้เตือนลูกค้าเกี่ยวกับ "ช่องโหว่ความปลอดภัยระดับ Critical" และแนะนำให้ "อัปเดตซอฟต์แวร์โดยเร็วที่สุด" เป็นเวอร์ชัน 32.7.4.0

ImunifyAV เป็นส่วนหนึ่งของชุดความปลอดภัย Imunify360 ซึ่งส่วนใหญ่ใช้โดยผู้ให้บริการ web-hosting หรือสภาพแวดล้อม Linux shared hosting แบบทั่วไป

โดยทั่วไป ผลิตภัณฑ์นี้จะถูกติดตั้งในระดับแพลตฟอร์ม hosting ไม่ใช่โดยผู้ใช้งานโดยตรง และเป็นที่นิยมอย่างมากในบริการ shared hosting, managed WordPress hosting, เซิร์ฟเวอร์ cPanel/WHM และเซิร์ฟเวอร์ Plesk

เจ้าของเว็บไซต์ไม่ค่อยได้โต้ตอบกับมันโดยตรง แต่มันก็ยังเป็นเครื่องมือที่ใช้กันอย่างแพร่หลายซึ่งทำงานอยู่เบื้องหลังเว็บไซต์กว่า 56 ล้านแห่งอย่างเงียบ ๆ ตามข้อมูลของ Imunify ณ เดือนตุลาคม 2024 ซึ่งอ้างว่ามีการติดตั้ง Imunify360 มากกว่า 645,000 ครั้งด้วย

สาเหตุหลักของช่องโหว่ดังกล่าวคือ deobfuscation logic ของ AI-bolit ที่โปรแกรมสแกนดันไปเรียกใช้คำสั่ง และข้อมูลที่แฮ็กเกอร์ควบคุมไว้ โดยข้อมูลเหล่านี้ถูกดึงมาจากไฟล์ PHP ที่ถูกซ่อนโค้ดเอาไว้ในตอนที่มันพยายามจะ unpack ไฟล์นั้นออกมาเพื่อสแกนหามัลแวร์

เหตุการณ์นี้เกิดขึ้นเพราะเครื่องมือดังกล่าวใช้ 'call_user_func_array' โดยไม่ตรวจสอบความถูกต้องของชื่อฟังก์ชัน ทำให้สามารถเรียกใช้ฟังก์ชัน PHP ที่อันตรายได้ เช่น system, exec, shell_exec, passthru, eval และอื่น ๆ

Patchstack ตั้งข้อสังเกตว่า การใช้การโจมตีจากช่องโหว่ดังกล่าวจำเป็นต้องให้ Imunify360 AV ทำการถอดรหัสแบบ active ในระหว่างขั้นตอนการวิเคราะห์ ซึ่งฟังก์ชันนี้ถูกปิดใช้งานในการกำหนดค่า default ของ AI-Bolit CLI (Command Line Interface) แบบ standalone

อย่างไรก็ตาม เมื่อ scanner component นี้ถูกนำไปรวมไว้ใน Imunify360 มันกลับถูกบังคับให้ 'เปิดทำงานตลอดเวลา' (always on) ไม่ว่าจะเป็นการสแกนเบื้องหลัง, การสแกนตามความต้องการ, การสแกนที่ผู้ใช้สั่ง หรือการสแกนแบบรวดเร็ว ซึ่งก็เข้าเงื่อนไขที่จำเป็นสำหรับการโจมตีพอดี

นักวิจัยได้แบ่งปันโค้ด Proof of Concept (PoC) ที่จะสร้างไฟล์ PHP ไว้ใน /tmp directory ซึ่งจะทำให้เกิดการเรียกใช้โค้ดที่เป็นอันตรายจากระยะไกล เมื่อไฟล์นั้นถูกสแกนโดยโปรแกรม antivirus

เหตุการณ์นี้อาจทำให้เกิดการโจมตีเว็บไซต์ได้อย่างสมบูรณ์ และหากโปรแกรมสแกนทำงานด้วยสิทธิ์ที่สูงกว่าปกติในการตั้งค่าแบบ shared hosting ผลกระทบอาจจะขยายไปถึงการควบคุมเซิร์ฟเวอร์ได้ทั้งหมด

การแก้ไขของ CloudLinux ได้เพิ่มกลไก whitelisting ที่อนุญาตให้เฉพาะฟังก์ชันที่ปลอดภัย และทำงานตามที่กำหนดไว้เท่านั้นที่สามารถทำงานได้ในระหว่างการถอดรหัส ซึ่งจะบล็อกการเรียกใช้ฟังก์ชันตามที่ต้องการได้

แม้ว่าจะไม่มีคำเตือนที่ชัดเจนจากผู้ผลิต หรือหมายเลข CVE-ID ที่จะช่วยแจ้งเตือน และติดตามช่องโหว่ดังกล่าว ผู้ดูแลระบบก็ควรอัปเกรดเป็นเวอร์ชัน v32.7.4.0 หรือใหม่กว่า

ในปัจจุบัน ยังไม่มีคำแนะนำอย่างเป็นทางการเกี่ยวกับวิธีตรวจสอบการถูกโจมตีระบบ, ไม่มีคำแนะนำในการตรวจจับ และไม่มีการยืนยันว่ามีการโจมตีจากช่องโหว่ดังกล่าวจริงแล้วหรือไม่

ที่มา : bleepingcomputer