Back Sploitus Exploit for Improperly Controlled Sequential Memory Allocation in Php
| CVE-2026-109618 | RCE via OOM corruption | 9.2 Critical | [GHSA-w8hw-w9fx-j79w]( |
| CVE-2026-109619 | RCE via stale global state | 9.2 Critical | [GHSA-6wmf-4rv5-p3rp]( |
**Affected:** PHP ⚠️ **WAF ไม่ใช่ทางแก้ที่สมบูรณ์** — ทาง PHP ระบุว่า **อัปเกรด PHP** เป็นทางแก้เดียวที่ครบ
> repo นี้มีไว้ลดความเสี่ยงระหว่างรออัปเกรดเท่านั้น
- **109618:** ทำให้ PHP หน่วยความจำหมด (OOM) ระหว่างแยก multipart request ตอน request startup → `longjmp()` ทิ้งหน่วยความจำที่ยังไม่ initialize → ใช้ตอน cleanup → RCE
- **109619:** fatal error / OOM ทิ้ง global state ชี้ไปหน่วยความจำที่ free แล้ว → request ถัดไปบน worker เดิมอ่านค่าค้าง (เช่นผ่าน session upload progress) → use-after-free → RCE / memory leak ออกทาง cookie `PHPSESSID`
- **mod_php** = มีการยืนยันแล้วว่าโจมตีได้จริง, **PHP-FPM** = เสี่ยงน้อยกว่าแต่ยังโดนได้
| [`local-vps/`](local-vps/) | VPS ที่ setup เอง: nginx, Apache, ModSecurity, php.ini, PHP-FPM, fail2ban | ✅ (ModSecurity) / ❌ (nginx เปล่า) |
| [`cloudflare/`](cloudflare/) | Cloudflare WAF custom rules | Enterprise เท่านั้น |
| [`aws-waf/`](aws-waf/) | AWS WAFv2 (ALB, API Gateway, CloudFront) | ✅ (8–64 KB แรก) |
| [`gcp-cloud-armor/`](gcp-cloud-armor/) | Google Cloud Armor | ❌ |
| [`tests/`](tests/) | สคริปต์ curl ทดสอบทุก platform | — |
1. block `multipart/form-data` ที่ไม่ได้ส่งไป path สำหรับ upload — **ต้องแก้ allowlist ให้ตรงกับแอปคุณ**
2. block multipart ที่ไม่มี `Content-Length` หรือเป็น `Transfer-Encoding: chunked`
3. block Content-Type multipart ที่ไม่ใช่รูปแบบมาตรฐาน เช่น `multipart/form-data,boundary=x` — PHP ยังมองเป็น multipart แต่ WAF มักแยก body ไม่ได้
4. block ชื่อ `PHP_SESSION_UPLOAD_PROGRESS` ใน query / cookie (และ body ถ้า platform รองรับ)
6. (ถ้า platform รองรับ) จำกัดความลึก `a[b][c]...`, จำนวน part/ไฟล์/ตัวแปร, ตรวจ `PHPSESSID` ขาออกที่ยาวผิดปกติ
2. ถ้ายังไม่ได้: ใส่ [`local-vps/php/99-php2shell.ini`](local-vps/php/99-php2shell.ini) (ทำได้ทุก platform ที่คุมเซิร์ฟเวอร์ได้) + restart worker ทุกตัว
3. deploy WAF rule ของ platform คุณใน **โหมด log/count/preview ก่อน** แล้วดูว่าไม่มี false positive
4. รัน `tests/curl-tests.sh` แล้วเปิด block จริง
./tests/curl-tests.sh /upload/test.php
- [CVE-2026-109618]( · [CVE-2026-109619](
- [Wiz: PHP2Shell](
The full story
This article is one source in a clustered incident — the cluster page carries the summary, timeline and every other outlet covering it.
