PHP2Shell: ช่องโหว่ RCE ไม่ต้องล็อกอินใน PHP แทบทุกเวอร์ชันย้อนถึง 5.4 — Wiz ใช้ Gemini 4 Argon กับ GPT-5.6 Sol ช่วยหา และ PHP Foundation ยอมรับว่ารากปัญหาเห็นตั้งแต่ปี 2024 แต่ "ล้มเหลวเชิงโครงสร้าง" จนแก้ช้า
21 ต.ค. 2026 โครงการ PHP ปล่อย PHP 8.5.12, 8.4.27, 8.3.36 และ 8.2.35 เพื่อแก้ช่องโหว่ระดับวิกฤต 2 ตัวที่ทำ remote code execution ได้โดยไม่ต้องยืนยันตัวตน — Wiz ตั้งชื่อชุดนี้ว่า PHP2Shell และระบุว่า “แทบทุกเวอร์ชันของ PHP ได้รับผลกระทบจากอย่างน้อยหนึ่งในปัญหาเหล่านี้ รวมถึง release ย้อนไปถึง PHP 5.4” ประกาศของ php.net บอกชัดว่ากลุ่มเสี่ยงคือ ทุกการติดตั้ง PHP ที่เสิร์ฟ web request ทั้ง PHP-FPM, Apache mod_php, php-cgi, FrankenPHP และ LiteSpeed โดยเสี่ยงที่สุดบน mod_php ที่มี exploit สาธิตแล้วว่า request ที่ไม่ล็อกอินยิงได้ ก่อนโค้ดของแอปจะได้รันเลย
เรื่องนี้ขึ้นอันดับต้นของ Hacker News ทั้งวัน (ประกาศของ php.net ได้กว่า 1,500 คะแนน) และ Cloudflare, Fastly, Vercel ออก WAF rule ป้องกันให้ทันที สิ่งที่ทำให้มันเป็นข่าว AI ด้วย คือบั๊กชุดนี้ถูกขุดและพัฒนาเป็น exploit โดยทีมที่ใช้โมเดล frontier เป็นเครื่องมือหลัก
บั๊กคืออะไร
- CVE-2026-109618 — RCE ผ่าน OOM corruption: ถ้า request ชน
memory_limitในจังหวะที่ข้อมูล request ภายในยังเตรียมไม่เสร็จ ขั้นตอน cleanup จะถือข้อมูลที่ไม่สมบูรณ์นั้นว่าใช้ได้ ทำให้หน่วยความจำเสียหาย บน mod_php ยิงได้ก่อนแอปทำงานด้วยค่าเริ่มต้น และยืนยัน RCE บน FPM ผ่าน code path ของแอปได้ด้วย - CVE-2026-109619 — RCE ผ่าน stale global state: fatal error ในจังหวะผิดทำให้ state ภายในยังชี้ไปที่หน่วยความจำของ request ก่อนหน้าที่ถูก free แล้ว (use-after-free) และ request ถัดไปที่ worker เดิมรับอาจใช้ state นั้นก่อนถูกรีเซ็ต
Wiz อธิบายเงื่อนไขว่าใช้ multipart request (RFC1867) ระหว่างการเริ่มต้น request, การจัดการ session upload-progress และ worker เดิมที่รับ request ถัดไป — โดยบั๊กการรั่วของหน่วยความจำ ไม่จำเป็นที่แอปต้องเรียก session_start() Wiz สาธิตกับ container image ล่าสุดของ WordPress, Drupal และ Joomla และยังไม่พบการโจมตีจริงในวงกว้าง CVSS สูงสุดของชุดนี้คือ 9.2
AI อยู่ตรงไหนในเรื่องนี้
อ่านให้ละเอียด บทบาทของ AI มีหลายชั้นและไม่ใช่ “AI เจอบั๊กเองทั้งหมด”:
- ต้นตอเห็นตั้งแต่ปี 2024 — PHP Foundation เล่าว่าระหว่าง audit ภายนอกที่ Sovereign Tech Agency สนับสนุน (ทำโดย Quarkslab) นักพัฒนา core คนหนึ่งที่กำลังแก้ปัญหาที่ Quarkslab รายงาน “พบสัญญาณแรกของปัญหา OOM” มีการตั้งทฤษฎีว่าอาจ exploit ได้แต่ยังไม่เจอเส้นทางจริง
- 11 ส.ค. 2026 Calif รายงาน RCE แบบไม่มีเงื่อนไข จากรากเดียวกัน OpenAI รายงานในวันเดียวกัน และ Wiz ตามมาวันที่ 24 ส.ค. — Calif เริ่ม audit PHP วันที่ 30 ก.ค. ภายใต้โครงการ Patch the Planet ของ OpenAI ที่ PHP Foundation พา PHP เข้าร่วม
- Wiz ระบุว่าใช้ Wiz Atlas, Gemini 4 Argon และ GPT-5.6 Sol และให้เครดิต Gemini 4 Argon ในการค้นพบ, พัฒนา exploit, ตรวจจับการโจมตี และตรวจ patch
- ฝั่ง PHP เอง ปีนี้เคยร่วมกับ Alpha-Omega สแกนโค้ดด้วย Claude Mythos ของ Anthropic และตอนนี้ใช้ Daybreak Red ของ OpenAI ช่วยตรวจ report และ exploit — แต่ย้ำว่า “คนเป็นผู้ตัดสินทุกครั้ง” ตั้งแต่ 1 ก.ค. ทีมออก CVE ไป 15 ตัว และต้องจัดการ report ที่ใช้ไม่ได้/ซ้ำ/ทำซ้ำไม่ได้กว่า 100 ฉบับ
ที่ตรงไปตรงมาคือ PHP Foundation เขียนเองว่า ทีมมีวิธีแก้หลายแบบที่ต่างก็มีข้อแลกเปลี่ยน การตัดสินแบบเอกฉันท์ทำให้งาน “หยุดแล้วเริ่มใหม่ซ้ำ ๆ เป็นเดือน” และ “ความล่าช้าเป็นความล้มเหลวเชิงโครงสร้าง ทั้งจากกระบวนการตัดสินใจของทีม security และการขาดทรัพยากร” จึงเปลี่ยนไปใช้เสียงข้างมาก ให้ผู้นำเข้ามาเร็วขึ้นเมื่อการแก้ติดขัด และจ้างวิศวกร security เพิ่ม 3 คน รวมถึงตำแหน่ง AI Security Engineer in Residence
ต้องทำอะไร
- อัปเดตเป็น 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35 ทันที — distro และผู้ขาย LTS ได้ patch ล่วงหน้าแล้ว ให้เช็กแพ็กเกจของ vendor
- PHP 8.1 และเก่ากว่า ไม่ได้รับอัปเดตจากโครงการแล้ว แต่ด้วยความรุนแรง ทีม security ทำ source backport แบบขั้นต่ำให้ 7.4, 8.0 และ 8.1 สำหรับคนที่ build เอง
- ถ้ายังอัปเดตไม่ได้ (php.net ย้ำว่าลดความเสี่ยงได้บางเส้นทางเท่านั้น ไม่ได้ทำให้ปลอดภัย): ตั้ง
session.upload_progress.enabled=0ในphp.ini/FPM pool แล้วรีสตาร์ททุก worker (ห้ามพึ่งini_set()หรือ.user.ini), บน 8.5 ตั้งfatal_error_backtraces=0, ลดpost_max_size, จำกัดขนาด/จำนวน multipart part ที่ระดับ web server หรือ proxy และพิจารณาmemory_limit=-1ผ่านphp_admin_valueคู่กับ cgroup limit — ห้ามใช้RLIMIT_AS/RLIMIT_DATAแทน เพราะจะทำให้เกิด allocation failure ที่เข้าทางบั๊กพอดี
มุมมอง AI Curator
PHP2Shell เป็นตัวอย่างที่ดีที่สุดของปีว่า “AI หาช่องโหว่” หน้าตาจริงเป็นอย่างไร: บั๊กที่มนุษย์เห็นเค้าลางตั้งแต่ 2024 แต่ไม่มีใครพิสูจน์ได้ว่า exploit ได้ ถูกทีมที่มีโมเดล frontier ช่วยเปลี่ยนเป็น RCE ใช้งานได้จริงบน WordPress ภายในไม่กี่สัปดาห์ — และหลายทีมไปถึงพร้อมกันในวันเดียว (Calif กับ OpenAI วันที่ 11 ส.ค.) นั่นแปลว่าต้นทุนการเปลี่ยน “บั๊กแปลก ๆ” ให้เป็น exploit ลดลงมากจนผู้ดูแลโครงการโอเพนซอร์สไม่มีเวลาลังเลเป็นเดือนอีกต่อไป คนที่ได้ประโยชน์จากความช้าครั้งต่อไปอาจไม่ใช่นักวิจัยที่รายงานอย่างรับผิดชอบ
ด้านที่น่าชื่นชมคือ PHP Foundation เขียนยอมรับความล้มเหลวตรง ๆ แทนที่จะโทษความซับซ้อนของบั๊ก ซึ่งเป็นแบบอย่างที่โครงการใหญ่อื่นควรทำตาม ส่วนบทเรียนที่ใหญ่กว่าคือภาระทั้งหมดตกอยู่กับทีมอาสาที่มีคนไม่กี่คน ขณะที่บริษัท AI ได้ผลงานโฆษณาความสามารถของโมเดล — การที่ OpenAI, Anthropic และ Alpha-Omega ให้เครื่องมือและทุนบางส่วนเป็นจุดเริ่มต้นที่ดี แต่ยังห่างจากระดับที่เหมาะกับปริมาณ report ที่ AI สร้างขึ้น
สำหรับไทย PHP ยังเป็นแกนของเว็บราชการ เว็บมหาวิทยาลัย และ WordPress ของธุรกิจ SME จำนวนมาก ซึ่งหลายแห่งรันบน shared hosting หรือ mod_php เวอร์ชันเก่าที่หมดอายุแล้ว — ในกรณีนี้ backport สำหรับ 7.4–8.1 และ WAF rule ของ Cloudflare คือทางรอดระยะสั้น แต่ระยะยาวควรถือว่าเว็บที่ยังรัน PHP ที่ไม่ได้รับอัปเดตเป็นหนี้ความปลอดภัยที่ต้องจ่ายทันที เพราะเมื่อ exploit ถูกสร้างได้ด้วย AI ช่วงเวลาระหว่างประกาศ patch กับการสแกนโจมตีจำนวนมากจะสั้นลงเรื่อย ๆ
แหล่งข่าว
อ่านเพิ่มในหมวด การแฮ็ก
ลิงก์แชร์ ChatGPT ลิงก์เดียวยึดบัญชีได้ ต้นตอคือ MathLive ไลบรารีที่มียอดดาวน์โหลดกว่า 4 แสนต่อสัปดาห์ เพิ่งออกแพตช์ 31 ต.ค.
Parameter Labs เปิดเผยเมื่อ 28 ต.ค. ว่าลิงก์แชร์ ChatGPT สามารถรัน JavaScript ในเซสชันของคนเปิด อ่านแชตส่วนตัวและส่งข้อมูลออกนอกได้ OpenAI แก้แล้วเมื่อ 26 ต.ค. แต่ไลบรารี MathLive ที่เป็นจุดเริ่มต้นเพิ่งออกการแก้ด้านความปลอดภัยเมื่อ 31 ต.ค.
Talos พบมัลแวร์ VOLTA ขโมยข้อมูลแล้วส่งให้ LLM จัดอันดับว่าเหยื่อคุ้มค่าแค่ไหน พร้อมสลับโมเดลอัตโนมัติเมื่อถูกปฏิเสธ
Cisco Talos เผยแพร่รายงาน VOLTA-AUTODOXER เมื่อ 31 ต.ค. มัลแวร์ขโมยข้อมูลบน Windows ที่ส่งหลักฐานของเหยื่อผ่าน OpenRouter ให้ LLM เขียนรายงานจัดลำดับมูลค่า ถ้าโมเดลแรกปฏิเสธจะไล่ไปโมเดลถัดไป และตัวสร้างแบบแทนค่าบ่งชี้ว่าอาจถูกขายเป็นสินค้า
ส่วนขยาย Claude Code ปลอมฝังแบ็กดอร์ SSH บน Cursor Marketplace — อยู่ 11 ชั่วโมง กระทบไม่เกิน 5,000 คน ถอนส่วนขยายอย่างเดียวไม่พอ
Cursor ยืนยันว่า Anthropic.claude-code เวอร์ชัน 2.1.312 และ 2.1.313 ที่ถูกดัดแปลงอยู่ใน marketplace ราว 11 ชั่วโมงเมื่อ 29 ต.ค. พยายามเปิดแบ็กดอร์ SSH บน macOS และ Windows พนักงาน Anthropic ยืนยันว่า 2.1.313 ไม่เคยถูกเผยแพร่จากบริษัท เรื่องที่ยังไม่เปิดเผยคือคนร้ายเข้าไปวางไฟล์ได้อย่างไร