PHP แก้ไขช่องโหว่ RCE ระดับ Critical ที่ส่งผลกระทบต่อ Windows ทุกเวอร์ชัน

PHP ออกอัปเดตเพื่อแก้ไขช่องโหว่การเรียกใช้โค้ดที่เป็นอันตรายจากระยะไกล (Remote Code Execution (RCE)) บน Windows ซึ่งส่งผลกระทบตั้งแต่เวอร์ชัน 5.x และอาจส่งผลกระทบต่อเซิร์ฟเวอร์จำนวนมากทั่วโลก

PHP เป็น open-source scripting language ที่ใช้กันอย่างแพร่หลาย โดยถูกออกแบบมาเพื่อการพัฒนาเว็บ และใช้กันทั่วไปบนเซิร์ฟเวอร์ทั้งบน Windows และ Linux

CVE-2024-4577 (คะแนน CVSS 9.8/10 ความรุนแรงระดับ Critical) เป็นช่องโหว่การเรียกใช้โค้ดที่เป็นอันตรายจากระยะไกล (RCE) ที่เกิดจากการจัดการ character encoding โดยเฉพาะฟีเจอร์ 'Best-Fit' บน Windows เมื่อใช้ PHP ในโหมด CGI

ทำให้ Hacker ที่ไม่ต้องผ่านการยืนยันตัวตนสามารถ bypass การป้องกันของช่องโหว่ CVE-2012-1823 ก่อนหน้านี้ ด้วย character ที่เฉพาะเจาะจง ทำให้สามารถดำเนินการได้บน PHP servers ผ่านการโจมตีแบบ argument injection attack ซึ่งช่องโหว่ถูกค้นพบโดย Orange Tsai นักวิจัยด้านความปลอดภัยของ Devcore Principal เมื่อวันที่ 7 พฤษภาคม 2024 และได้รายงานช่องโหว่ให้แก่นักพัฒนา PHP ในเวลาต่อมา

ช่องโหว่ CVE-2024-4577 ส่งผลกระทบต่อ PHP ทุกเวอร์ชันบน Windows หากผู้ใช้งานใช้ PHP 8.0 (End of Life), PHP 7.x (End of Life) หรือ PHP 5.x (End of Life) ควรอัปเดตให้เป็นเวอร์ชันที่ใหม่กว่า หรือใช้วิธีการลดผลกระทบของช่องโหว่

นักวิจัยระบุว่า แม้ว่า PHP จะไม่ได้ใช้งาน CGI mode แต่ช่องโหว่ CVE-2024-4577 ก็อาจยังคงสามารถถูกโจมตีได้ ตราบใดที่ไฟล์ปฏิบัติการ PHP (เช่น php.exe หรือ php-cgi.exe) อยู่ในไดเร็กทอรีที่สามารถเข้าถึงได้โดย web server และเนื่องจากการกำหนดค่าเริ่มต้นบน XAMPP สำหรับ Windows ทำให้ XAMPP ทั้งหมดบน Windows มีแนวโน้มว่าจะมีความเสี่ยงต่อช่องโหว่ดังกล่าว

รวมถึงปัญหาจะมากยิ่งขึ้นเมื่อมีการใช้ encoding ที่มีความเสี่ยง เช่น Traditional Chinese, Simplified Chinese และ Japanese

ขณะนี้มีการออกอัปเดตเพื่อแก้ไขช่องโหว่ CVE-2024-4577 แล้ว รวมถึงปัจจุบันได้มีการเปิดเผยชุดสาธิตการโจมตี (PoC) ออกมาแล้ว และปัจจุบัน Shadowserver Foundation ได้ตรวจพบ IP addresses หลายรายการที่กำลังสแกนหาเซิร์ฟเวอร์ที่มีช่องโหว่ดังกล่าว จึงแจ้งเตือนให้ผู้ดูแลระบบทำการอัปเดตให้เป็นเวอร์ชัน PHP 8.3.8, PHP 8.2.20 และ PHP 8.1.29 เพื่อแก้ไขช่องโหว่ดังกล่าวโดยด่วน

การลดผลกระทบช่องโหว่ CVE-2024-4577

สำหรับระบบที่ไม่สามารถอัปเดตได้ทันที และผู้ใช้เวอร์ชันที่ End of Life ไปแล้ว แนะนำให้ใช้ mod_rewrite rule เพื่อป้องกันการโจมตี ดังต่อไปนี้:

  • RewriteEngine On
    RewriteCond %{QUERY_STRING} ^%ad [NC]
    RewriteRule .? – [F,L]

หากผู้ดูแลระบบใช้ XAMPP และไม่ต้องการฟีเจอร์ PHP CGI ให้ค้นหาคำสั่ง 'ScriptAlias' ใน Apache configuration file (โดยทั่วไปจะอยู่ที่ 'C:/xampp/apache/conf/extra/httpd-xampp.conf') และ comment บรรทัดดังกล่าวออกไป

ผู้ดูแลระบบสามารถระบุได้ว่าตนใช้ PHP-CGI หรือไม่ โดยใช้ฟังก์ชัน phpinfo() และตรวจสอบค่า 'Server API' ในเอาต์พุต นอกจากนี้ยังแนะนำให้ผู้ดูแลระบบพิจารณาย้ายจาก CGI ไปยังทางเลือกที่ปลอดภัยกว่า เช่น FastCGI, PHP-FPM และ Mod-PHP

ที่มา : bleepingcomputer.com