พบการโจมตีโดยใช้ช่องโหว่ PHP (CVE-2024-4577) อย่างต่อเนื่อง

เมื่อวันที่ 7 พฤษภาคม 2024 นักวิจัยด้านความปลอดภัยของ Devcore ชื่อ Orange Tsai ได้ค้นพบ และรายงานช่องโหว่การเรียกใช้โค้ดที่เป็นอันตรายจากระยะไกล (RCE) หมายเลข CVE-2024-4577 ให้กับทีมงาน PHP อย่างเป็นทางการ โดยช่องโหว่นี้เกิดจากข้อผิดพลาดในการแปลงรหัสตัวอักษร โดยเฉพาะอย่างยิ่งในฟีเจอร์ “Best Fit” บนระบบปฏิบัติการ Windows

การโจมตีโดยใช้ช่องโหว่นี้อาจทำให้ผู้ไม่หวังดีสามารถเรียกใช้โค้ดใด ๆ ได้จากระยะไกล ซึ่งเป็นความเสี่ยงด้านความปลอดภัยที่สำคัญต่อการติดตั้ง PHP ทุกเวอร์ชันที่ทำงานบนแพลตฟอร์ม Windows เมื่อเห็นถึงความร้ายแรงของปัญหานี้ ทีมพัฒนา PHP ได้แก้ไขช่องโหว่ CVE-2024-4577 อย่างรวดเร็ว โดยการปล่อยแพตช์อัปเดตอย่างเป็นทางการเมื่อวันที่ 6 มิถุนายน 2024

เมื่อวันที่ 8 มิถุนายน 2024 นักวิจัยด้านความปลอดภัยไซเบอร์จาก Imperva ได้รายงานกรณีแรกที่ผู้โจมตีใช้ประโยชน์จากช่องโหว่นี้ โดยผู้โจมตีใช้ช่องโหว่นี้ในการแพร่กระจายแรนซัมแวร์บนระบบที่มีช่องโหว่ โดยปฏิบัติการนี้ถูกระบุว่าเป็นส่วนหนึ่งของแคมเปญแรนซัมแวร์ 'TellYouThePass'

Cyble Global Sensor Intelligence (CGSI) ตรวจพบการพยายามสแกนหลายครั้งที่เกี่ยวข้องกับช่องโหว่ CVE-2024-4577 จากหลาย IP ที่น่าสนใจคือการพยายามสแกนจาก IP 51[.]79[.]19[.]53 ซึ่งเกี่ยวข้องกับแคมเปญของมัลแวร์ Muhstik ที่ถูกระบุโดย Aqua Nautilus เมื่อเร็ว ๆ นี้ การพยายามโจมตีจากที่อยู่ IP นี้ แสดงให้เห็นถึงความเกี่ยวข้องกับผู้โจมตีที่เคยใช้ช่องโหว่ RocketMQ และอาจกำลังพยายามใช้ประโยชน์จากช่องโหว่ CVE-2024-4577 เพื่อเรียกใช้งานเพย์โหลดที่เป็นอันตราย

Muhstik ถูกระบุว่าเป็นภัยคุกคามที่มีเป้าหมายเป็นอุปกรณ์ IoT และเซิร์ฟเวอร์ที่ใช้ระบบปฏิบัติการ Linux โดยมีชื่อเสียงในเรื่องความสามารถในการแพร่กระจายมัลแวร์สู่อุปกรณ์ และใช้อุปกรณ์ที่ติดมัลแวร์ในการดำเนินการต่าง ๆ เช่น การขุด cryptocurrency และการโจมตีแบบ Distributed Denial of Service (DDoS)

Cyble Global Sensor Intelligence (CGSI) findings

WatchTowr Labs ได้เผยแพร่ PoC สำหรับการโจมตี CVE-2024-4577 หนึ่งวันหลังจากที่แพตช์ถูกปล่อยออกมา โดยในวันถัดมา Cyble Global Sensor Intelligence (CGSI) ได้ตรวจพบความพยายามในการใช้ช่องโหว่นี้ โดยเริ่มตั้งแต่วันที่ 8 มิถุนายน 2024

Vulnerability Summary

CVE-2024-4577: Command injection vulnerability
CVSS:3.1: 9.8
Severity: Critical
Vulnerable Versions:

ช่องโหว่นี้ส่งผลกระทบต่อ PHP ทุกเวอร์ชันที่ทำงานในโหมด CGI (Common Gateway Interface) บนระบบปฏิบัติการ Windows หรือเปิด PHP binary ในเวอร์ชันดังต่อไปนี้

PHP 8.3 < 8.3.8
PHP 8.2 < 8.2.20
PHP 8.1 < 8.1.29

ใน PHP เวอร์ชัน 8.1.* ก่อน 8.1.29, 8.2.* ก่อน 8.2.20, และ 8.3.* ก่อน 8.3.8 เมื่อใช้ Apache และ PHP-CGI บน Windows หากระบบถูกตั้งค่าให้ใช้ code pages บางประเภท Windows อาจใช้ "Best-Fit" เพื่อแทนที่ตัวอักษรใน command line ที่ให้กับฟังก์ชัน Win32 API ซึ่ง โมดูล PHP CGI อาจตีความตัวอักษรเหล่านั้นผิดเป็น PHP options ซึ่งช่วยให้ผู้โจมตีสามารถส่ง options ไปยังไบนารีของ PHP ที่กำลังทำงานอยู่ ทำให้สามารถเรียกใช้งานสคริปต์ หรือรันโค้ด PHP ใด ๆ บนเซิร์ฟเวอร์ได้ เป็นต้น

Vulnerability Details

ช่องโหว่นี้ส่งผลกระทบต่อโหมด CGI ของ PHP ซึ่งเว็บเซิร์ฟเวอร์จะตีความ HTTP request และส่งต่อไปยังสคริปต์ PHP เพื่อประมวลผล ยกตัวอย่างเช่น query strings จะถูกแยก และส่งไปยัง PHP interpreter ผ่านทาง command line เช่น การรัน "php.

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.

LockBit ransomware กลับมาอีกครั้งจากกู้คืนเซิร์ฟเวอร์ หลังถูกจัดการไปโดยเจ้าหน้าที่ตำรวจ

 

กลุ่ม LockBit กำลังกลับมาดำเนินการโจมตีด้วยแรนซัมแวร์อีกครั้ง ภายในระยะเวลาไม่ถึง 1 อาทิตย์ หลังจากที่เจ้าหน้าที่สามารถเจาะเข้าไปยังเซิร์ฟเวอร์ของพวกเขา โดยกลุ่มนี้ได้ย้ายไปยังระบบใหม่ และยังคงข่มขู่ว่าจะมุ่งเน้นโจมตีหน่วยงานรัฐบาลมากขึ้น (more…)

ช่องโหว่ระดับ Critical ใน GitHub ทำให้ Repositories มากกว่า 4,000 รายการถูกโจมตีด้วยวิธีการ Repojacking

พบช่องโหว่ใหม่ใน GitHub อาจทำให้ repositories หลายพันรายการเสี่ยงต่อการถูกโจมตีด้วยวิธีการ Repojacking

จากรายงานของ Elad Rapoport นักวิจัยด้านความปลอดภัยของ Checkmarx ที่แชร์กับ The Hacker News ระบุว่า ช่องโหว่นี้อาจทำให้ผู้โจมตีสามารถใช้ประโยชน์จาก race condition ในการดำเนินการสร้าง repository และเปลี่ยนชื่อผู้ใช้ของ GitHub
(more…)

New PHP Flaw Could Let Attackers Hack Sites Running On Nginx Servers

ข้อบกพร่องใหม่ใน PHP อาจทำให้แฮกเกอร์โจมตีเว็บไซต์ที่ทำงานบนเซิร์ฟเวอร์ Nginx
หากคุณใช้งานเว็บไซต์ที่ใช้ PHP บนเซิร์ฟเวอร์ NGINX และเปิดใช้งานฟีเจอร์ PHP-FPM เพื่อเพิ่มประสิทธิภาพที่ดีขึ้น ควรระวังช่องโหว่ใหม่ที่อาจทำให้ผู้โจมตีทำการแฮกเซิร์ฟเวอร์เว็บไซต์ของคุณจากระยะไกล
ช่องโหว่ CVE-2019-11043 มีผลกระทบต่อเว็บไซต์ที่มีการกำหนดค่าบางอย่างของ PHP-FPM
PHP-FPM เป็นอีกทางเลือกหนึ่งของการติดตั้ง PHP FastCGI ที่นำเสนอการประมวลผลขั้นสูงและมีประสิทธิภาพสูงสำหรับสคริปต์ที่เขียนด้วยภาษาการเขียนโปรแกรม PHP
ช่องโหว่หลักคือปัญหา "env_path_info" memory corruption (underflow) ในโมดูล PHP-FPM และการเชื่อมโยงกับปัญหาอื่น ๆ อาจทำให้ผู้โจมตีใช้ช่องโหว่รันโค้ดอันตรายจากระยะไกล (RCE) บนเว็บเซิร์ฟเวอร์ได้
ช่องโหว่ดังกล่าวถูกพบโดย Andrew Danau นักวิจัยด้านความปลอดภัยที่ Wallarm ในขณะที่ค้นหาข้อบกพร่องในการแข่งขัน Capture The Flag ซึ่งต่อมาได้รับความรู้จากนักวิจัยสองคนคือ Omar Ganiev และ Emil Lerner เพื่อพัฒนาการใช้ประโยชน์จากช่องโหว่ในการรันโค้ดอันตราย
แม้ว่า PoC exploit ที่ถูกปล่อยออกมาได้รับการออกแบบมาเพื่อเป้าหมายเฉพาะเซิร์ฟเวอร์ที่มีช่องโหว่ที่ใช้งาน PHP 7+ แต่ bug underflow ของ PHP-FPM ก็อาจส่งผลกระทบต่อ PHP เวอร์ชันก่อนหน้าด้วย ซึ่งจะมีความเสี่ยงต่อการโจมตีถ้าตรงกับเงื่อนไขดังต่อไปนี้
- NGINX ได้รับการกำหนดค่าให้ส่งต่อคำขอ PHP ไปยังตัวประมวลผล PHP-FPM
- คำสั่ง fastcgi_split_path_info มีอยู่ในการกำหนดค่าและรวมถึง regular expression ที่เริ่มต้นด้วยสัญลักษณ์ '^' และลงท้ายด้วยสัญลักษณ์ '$'
- ตัวแปร PATH_INFO ถูกกำหนดด้วยคำสั่ง fastcgi_param
-ไม่มีการตรวจสอบเช่น try_files $ uri = 404 หรือถ้า (-f $ uri) เพื่อตรวจสอบว่ามีไฟล์อยู่หรือไม่
หนึ่งในผู้ให้บริการเว็บโฮสติ้งที่ได้รับผลกระทบคือ Nextcloud ผู้ออกคำแนะนำเตือนผู้ใช้ว่า "การกำหนดค่าเริ่มต้น Nextcloud NGINX นั้นยังเสี่ยงต่อการถูกโจมตีครั้งนี้ และแนะนำผู้ดูแลระบบให้ดำเนินการทันที
ผู้ใช้ควรทำการอัพเดท PHP เป็น PHP 7.3.11 และ PHP 7.2.24 ล่าสุดเพื่อป้องกันการโจมตี

ที่มา thehackernews

Multiple Vulnerabilities in PHP Could Allow for Arbitrary Code Execution

PHP ประกาศแพตช์ช่องโหว่ด้านความปลอดภัย 7 รายการในรุ่น 7.1.19 และ 7.2.7 วันนี้โดยช่องโหว่ที่ร้ายแรงสูงสุดใน 7 รายการนั้นสามารถทำให้ผู้โจมตีรันโค้ดที่เป็นอันตรายเพื่อโจมตีระบบที่มีช่องโหว่ได้จากระยะไกล ยังไม่พบการใช้ช่องโหว่ดังกล่าวในการโจมตีจริงในตอนนี้
ผู้ใช้งานสามารถทำการอัปเดต PHP เพื่อรับแพตช์ช่องโหว่ด้านความปลอดภัยดังกล่าวได้โดยสำหรับรุ่น 7.2 นั้นให้ผู้ใช้งานอัปเดตไปยังรุ่น 7.2.7 ส่วนในรุ่น 7.1 นั้นให้ผู้ใช้งานอัปเดตไปยังรุ่น 7.1.19 PHP รุ่น 7.2 ก่อนหน้ารุ่น 7.2.7 และ PHP รุ่น 7.1. ก่อนหน้ารุ่น 7.1.19

ที่มา : Center for Internet Security

MS-ISAC Releases Advisory on PHP Vulnerabilities

MS-ISAC ประกาศแจ้งเตือนช่องโหว่ใน PHP หลายช่องโหว่ซึ่งส่งผลให้ผู้โจมตีสามารถรันโค้ดที่เป็นอันตรายจากระยะไกลเพื่อควบคุมระบบหรือซอฟต์แวร์ที่มีช่องโหว่ได้ โดยในขณะนี้ยังตรวจไม่พบการใช้ช่องโหว่ดังกล่าวในการโจมตี

สำหรับช่องโหว่ในรอบนี้นั้นมีการถูกค้นพบกว่าหลาย 10 รายการ โดยส่งมีความรุนแรงของช่องโหว่อยู่ในระดับสูง (High) กระทบ PHP ตั้งแต่รุ่น 7.2 (ก่อน 7.2.5), 7.1 (ก่อน 7.1.17), 7.0 (ก่อน 7.0.30) และ 5.0 (ก่อน 5.6.36)
สำหรับผู้ใช้งานหรือนักพัฒนาที่มีการใช้ซอฟต์แวร์ในรุ่นที่มีช่องโหว่อยู่นั้น MS-ISAC แนะนำให้อัปเกรดเป็นรุ่นย่อยของแต่ละเวอร์ชัน ได้แก่ 7.2.5, 7.1.17, 7.0.30 และ 5.6.36 โดยทันที รวมไปถึงให้มีการตรวจสอบควบคู่ไปด้วยว่าระบบยังคงทำงานโดยปกติ ไม่มีการเข้าถึงหรือแก้ไขข้อมูลโดยที่ไม่ได้รับอนุญาต

ที่มา : us-cert

Multiple Vulnerabilities in PHP Could Allow for Arbitrary Code Execution Edit Comment Assign More Canceled Done Export

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

ความเสี่ยงที่อยู่ในระดับสูงของหน่วยงานต่างๆ

รัฐบาล:

- หน่วยงานภาครัฐขนาดใหญ่และขนาดกลาง
- หน่วยงานรัฐบาลขนาดเล็ก

ธุรกิจ

- องค์กรธุรกิจขนาดใหญ่และขนาดกลาง
- หน่วยงานธุรกิจขนาดเล็ก

ส่วนผู้ใช้งานทั่วไปๆจัดอยู่ในระดับต่ำ

สรุปทางเทคนิค:

เวอร์ชั่น 7.2.3

- Bug #49876 (Fix LDAP path lookup on 64-bit distros).
- Bug #54289 (Phar::extractTo() does not accept specific directories to be extracted). Phar :: extractTo () ไม่ยอมรับไดเรกทอรีเฉพาะที่จะแยกออก
- Bug #65414 (deal with leading slash when adding files correctly). จัดการกับเครื่องหมาย / เมื่อเพิ่มไฟล์
- Bug #65414 (deal with leading slash while adding files correctly). จัดการกับเครื่องหมาย / ขณะที่เพิ่มไฟล์
- Bug #68406 (calling var_dump on a DateTimeZone object modifies it). เรียกใช้งาน var_dump ที่ DateTimeZone
- Bug #73725 (Unable to retrieve value of varchar(max) type). ไม่สามารถดึงข้อมูลค่าของ varchar (สูงสุด) ได้
- Bug #74519 (strange behavior of AppendIterator). พฤติกรรมแปลก ๆ ของ AppendIterator
- Bug #75729 (opcache segfault when installing Bitrix). opcache segfault เมื่อติดตั้ง Bitrix
- Bug #75838 (Memory leak in pg_escape_bytea()). หน่วยความจำรั่วไหลใน pg_escape_bytea ()
- Bug #75857 (Timezone gets truncated when formatted). เวลาไม่ถูกต้อง
- Bug #75864 ("stream_isatty" returns wrong value on s390x). stream_isatty ส่งคืนค่าผิดพลาดใน s390x
- Bug #75871 (use pkg-config where available). ใช้งาน pkg-config ได้
- Bug #75882 (a simple way for segfaults in threadsafe php just with configuration). กำหนดค่า segfaults ใน threadsafe php
- Bug #75893 (file_get_contents $http_response_header variable bugged with opcache). ตัวแปร $ http_response_header ถูกบีบอัดด้วย opcache
- Bug #75916 (DNS_CAA record results contain garbage).
- Bug #75928 (Argument 2 for DateTimeZone::listIdentifiers() should accept null). อาร์กิวเมนต์ 2 ควรใช้ค่า Null ได้
- Bug #75938 (Modulus value not stored in variable). ค่าโมดูไม่ได้เก็บไว้ในตัวแปร
- Bug #75981 (Prevent reading beyond buffer start in http wrapper). ป้องกันไม่ให้อ่านนอกเหนือจากบัฟเฟอร์ที่มีค่าเริ่มต้นใน http wrapper

เวอร์ชั่น 7.0.28

- Bug #75981 (stack-buffer-overflow while parsing HTTP response). เกิดการ stack-buffer-overflow ในขณะที่มีการตอบกลับจาก HTTP

เวอร์ชั่น 5.6.34

- Bug #75981 (stack-buffer-overflow while parsing HTTP response). เกิดการ stack-buffer-overflow ในขณะที่มีการตอบกลับจาก HTTP

ระบบที่ได้รับผลกระทบ:

- PHP 7.2 ก่อนหน้า 7.2.3
- PHP 7.0 ก่อนหน้า 7.0.28
- PHP 5.0 ก่อนหน้า 5.6.34
- PHP 7.1 ก่อนหน้า 7.1.15

ข้อแนะนำ

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

ที่มา : cisecurity

PHP Community Takes Steps to Stop Installation of Libraries with Unpatched Bugs

กลุ่มนักพัฒนาซึ่งใช้ PHP เป็นภาษาหลักกำลังพยายามเรียกความมั่นใจและลบล้างคำปรามาสว่า "PHP ไม่ปลอดภัย" อีกครั้ง โดยในรอบนี้นั้นมาพร้อมกับแพ็คเกจบน Compoerser "Roave/SecurityAdvisories" ที่สามารถช่วยให้นักพัฒนาอื่นๆ สามารถตรวจสอบได้ว่า dependency หรือ library ที่มีการใช้งานในแอปนั้นมีช่องโหว่ด้านความปลอดภัยหรือไม่ รวมไปถึงป้องกันไม่ให้มีการติดตั้งลงในระบบ production ด้วย

Roave/SecurityAdvisories นั้นอ้างอิงฐานข้อมูลช่องโหว่มาจาก repository ชื่อดัง "FriendsOfPHP/security-advisories" ซึ่งบันทึกรายละเอียดของช่องโหว่เอาไว้และยังมีการอัปเดตโดยกลุ่มนักพัฒนาอย่างสม่ำเสมอ

นักพัฒนาที่สนใจในการใช้งาน Roave/SecurityAdvisories สามารถตรวจสอบวิธีการติดตั้งและขั้นตอนการใช้งานเบื้องต้นได้จาก https://github.