PHP2Shell-mitigation

PHP2Shell คือ อะไร

php2shell เป็นชื่อ write-up ทาง มี 2 เจ้านะ

  • Calif Research ร่วมการใช้ AI ของทาง OpenAI โดยคุณ Ryan Austin
  • Wiz ใช้โมเดล Gemini 4 Argon (น้องมาทวงบัลลังค์แล้ว) , GPT-5.6 Sol

สรุปเจอ ช่องโหว่ PHP RCE 2 ตัว ได้แก่ CVE-2026-109618 และ CVE-2026-109619 ซึ่งมันเป็น Bug ค้างมาหลาย 10 ปี แล้วมันทำผลเยอะด้วย โดยมันสามารถทำให้ตัว memory server เต็ม ระบบทำงานผิดพลาด จนผู้โจมตีสามารถส่งคำสั่งพิเศาเพื่อสร้าวความเสียหาย หรือ ไปหลอกล่อเอาข้อมูลออกมาก็ได้ โดนทั้ง ทั้ง Apache mod_php และ PHP-FPM

แนวทางการเอาตัวรอดหละ ชั่วคราวนะ

📌 ปิด session upload progress (ใช้กับ PHP-FPM) session.upload_progress.enabled=0
เพื่อกันช่องโหว่ CVE-2026-109619
📌 ตั้ง memory_limit=-1 เพื่อกันช่องโหว่ CVE-2026-109618 (ใช้ทั้ง mod_php และ PHP-FPM) และอย่าใช้ RLIMIT_AS / RLIMIT_DATA ของ OS เพราะทำให้ memory เต็มได้เหมือนกัน แต่วิธีนี้มีข้อควรระวังนะ

ไม่มี Limit ชีวิตเกินร้อยยย ดังนั้นต้องคุมที่ระดับ container/cgroup แทน

📌 ลดขนาด post_max_size ช่วยได้บางส่วน แต่ bypass ได้
📌 ตั้ง pm.max_requests ต่ำ ๆ (เช่น 500) เพื่อรีไซเคิล worker บ่อย ๆ
📌 จำกัดสิทธิ์ worker: ไม่รันเป็น root, ใช้ disable_functions, filesystem แบบ read-only, จำกัด outbound network
📌 ปิดการแสดง error: display_errors=0, fatal_error_backtraces=0 (จริงอันนี้ ควรซ่อนหมดนะให้ไปลง Log แทน

-ถ้ามีพวก Proxy พวก Nginx / พวก WAF ตั้งกันไว้ / Load Balance เพิ่มมาตรการ

📌 จำกัดขนาด request เช่น client_max_body_size 2M;
📌 ตั้ง buffer ให้เหมาะสม เช่น client_body_buffer_size, client_header_buffer_size, large_client_header_buffers
📌 Block Endpoint ไม่ให้รับ multipart เลย ในการ Upload
📌 ดู log หา multipart ที่ชื่อ field ซ้อนลึกผิดปกติ หรือ PHP worker crash ถี่ ๆ

นอกจากนี้ หาภาพรวมระบบให้เจอ แล้วดูด้วยว่า ให้เครื่อง PHP เข้าถึงฐานข้อมูลและระบบอื่นได้เท่าที่จำเป็น หรือ มันเข้าได้ทั้งหมด ตอนนี้อาจจะปรับไม่ทัน แต่หาก่อน แล้วมาปรับระยะยาว

📌 ก่อนจะแก้สุมหัวกันก่อน แล้ว Test นะ

หลายๆ อันมีคนทำ Script ไว้นะ เช่น

แนวทางการเอาตัวรอดหละ ระยะยาว

📌 Update PHP Version

Branchเวอร์ชันที่แก้แล้ว
PHP 8.58.5.12
PHP 8.48.4.27
PHP 8.38.3.36
PHP 8.28.2.35

ถ้าเราใช้ Ver 7.4 อยู่ การเอา AI มารื้อย้าย อาจจะเสี่ยงกว่านะ ทำตาม แนวทางการเอาตัวรอดหละ ชั่วคราวนะ และขยับ PHP โดยไปเอามาจาก PHP Provider อื่นที่ Patch

ดู Change Log หลังขยับด้วยนะ ว่ามี php2shell จดด้วยไหม + แล้วค่อยจัดเวลาย้ายระบบ

📌 คุมการเข้าถึงของ PHP เข้าว่าอาจจะต้องรื้อ Arch

ก่อนจะแก้สุมหัวกันก่อน แล้ว Test นะ ย้ำอีกที เพราะเคสล่าสุด แต่ตลกจิงลูกค้าธนาคาร Update RedHat แล้วพวก Podman มันต้องขยับไปด้วย แต่ไม่ได้ทดสอบ สรุปถ้า Container ที่รันมันตาย เละเลยนะ สร้างใหม่ไม่ได้ มันต้องแก้ Command นิดหน่อยและ แค่งงการสื่อสารย้ำให้ Test แต่ไป Prod เลยจ้า

เอาจริงสัปดาห์นี้มองว่าวันวินาศเลยก็ได้ เพราะมีอีกหลายตัวประกาศ CVSS แบบ ตัว GitLab เนี่ย เจอระดับไคจู 10 เต็ม เพิ่งขยับไปเสาร์ก่อนด้วย / Node.js / eMudhra ผู้ออกใบรับรองเข้ารหัสทำกุญแจลับรั่วไหล

ผมว่า AI มันทำให้เราละเลยอะไรหลายๆอย่าง มันมาเยอะไว ทั้งคนสร้าง และคนเจาะเลย

อ๋ฮ ถ้าใครใช้ Azure มี Guide มาแล้วนะ - Addressing PHP2Shell CVE-2026-109618 and CVE-2026-109619: upgrade guidance and Azure WAF mitigations

Reference