Ngày 21/10, PHP phát hành cùng lúc bốn bản bảo mật: 8.5.12, 8.4.27, 8.3.36 và 8.2.35, vá hai lỗ hổng CVE-2026-109618 và CVE-2026-109619, cả hai đều được chấm 9.2 theo CVSS v4.0. Kẻ tấn công từ xa chưa cần đăng nhập vẫn có thể khai thác, và hậu quả xấu nhất là thực thi mã từ xa. Trong thông báo, phía PHP nói không có biện pháp giảm thiểu tạm thời nào đầy đủ; nâng cấp là cách khắc phục triệt để duy nhất.
Nhóm phát hiện ra loạt lỗ hổng này là công ty bảo mật đám mây Wiz, và họ đặt tên cho sự việc là PHP2Shell. Trong quá trình săn lỗi, nhóm nghiên cứu của Wiz đã dùng Wiz Atlas của chính họ, cùng Gemini 4 Argon của Google và GPT-5.6 Sol của OpenAI.
Vấn đề nằm ngay trong lõi PHP
Hai CVE này bao gồm bốn lỗi: use-after-free trong bộ giải tuần tự hóa tiến trình tải lên, đọc bộ nhớ tiến trình từ xa, use-after-free trong backtrace của lỗi nghiêm trọng, và nhầm lẫn kiểu (type confusion) trong OPcache. Gốc rễ chung nằm ở cách PHP xử lý lỗi nghiêm trọng, đặc biệt là loại do cạn bộ nhớ gây ra.
Khi một yêu cầu bị ngắt bất thường, dữ liệu hỏng vẫn còn sót lại trong trạng thái nội bộ; tiến trình worker đó lại tiếp tục xử lý yêu cầu kế tiếp và dùng lại trạng thái cũ này, dẫn tới rò rỉ hoặc làm hỏng bộ nhớ. Ngay cả khi không chạy được mã, kẻ tấn công vẫn có thể đọc mật khẩu, token và khóa API từ bộ nhớ tiến trình.
Lỗ hổng nằm trong engine PHP, không liên quan đến việc ứng dụng phía trên viết có an toàn hay không. Wiz đã trình diễn khai thác trên các container image mới nhất của WordPress, Drupal và Joomla; ngay cả một trang chỉ in ra Hello World cũng có thể bị tấn công, và dù ứng dụng chưa từng gọi session_start(), việc rò rỉ bộ nhớ vẫn xảy ra. Phạm vi ảnh hưởng truy ngược tới tận PHP 5.4, và mọi phiên bản phát hành trong mười năm qua đều dính ít nhất một trong các lỗi này.
AI đóng vai trò ở khâu nào
Theo dòng thời gian của Wiz: lỗ hổng đầu tiên được phát hiện ngày 19/8, báo cho nhóm bảo mật PHP ngày 24/8, PHP xác nhận và bắt đầu chuẩn bị bản vá phối hợp ngày 21/9, rồi công bố ngày 21/10. Từ lúc báo cáo đến khi bản vá lên sóng mất gần hai tháng, phần lớn thời gian dành cho việc sửa lỗi và phối hợp.
Theo lời Wiz, Argon tham gia vào các khâu phát hiện lỗ hổng, viết mã khai thác, phát hiện tấn công và kiểm chứng bản vá; mô hình lớn giúp các nhà nghiên cứu điều chỉnh mã khai thác cho phù hợp với nhiều phiên bản PHP, cấu hình và bố cục bộ nhớ khác nhau, và khi thất bại thì phân tích nguyên nhân rồi lặp lại. Nguyên văn của Wiz:
"Frontier AI models substantially reduced that barrier, turning a longstanding flaw into an exploit."
(Các mô hình tiên phong đã hạ thấp rào cản đáng kể, biến một lỗi tồn tại từ lâu thành một mã khai thác dùng được.)
Wiz cho biết một nhà nghiên cứu hoàn thành trong một tuần khối lượng công việc mà trước đây các nhóm hàng đầu phải mất nhiều tháng. OpenAI cũng đã đăng bài về đợt công bố phối hợp này; theo các báo cáo công khai, OpenAI còn tung ra một kỹ năng Codex giúp website tự kiểm tra xem mình có bị ảnh hưởng không, nhưng hiện chưa thể xác minh từng trường hợp mà kỹ năng này bao phủ.
Rắc rối của các website cũ ở Trung Quốc
Rất nhiều website vừa và nhỏ, trang chủ doanh nghiệp và diễn đàn ở Trung Quốc chạy trên PHP, thường là môi trường cài sẵn bằng một cú nhấp trong bảng điều khiển dựng web, và không hiếm trường hợp phiên bản vẫn dừng ở 7.x. Theo danh sách phát hành chính thức, đợt vá lần này chỉ bao phủ bốn nhánh từ 8.2 đến 8.5; 7.x đã ngừng hỗ trợ từ lâu nên không nhận được bản sửa chính thức, còn 8.2 cũng chỉ được duy trì đến ngày 31/12 năm nay.
Với những website chưa nâng cấp, Wiz liệt kê một số dấu hiệu để rà soát: yêu cầu multipart bất thường theo sau là lỗi vượt giới hạn bộ nhớ, HTTP 500 lặp đi lặp lại, cookie PHPSESSID lớn bất thường hoặc sai định dạng, và tiến trình worker PHP khởi động lại bất thường với tần suất cao. Cloudflare, Fastly, Google và một số nhà cung cấp khác đã triển khai quy tắc bảo vệ, nên website đặt sau CDN có thể chặn được một phần, nhưng kết luận chính thức không đổi: chỉ khi đã cài bản vá thì mới coi là xong.
Nguồn tham khảo: thông báo bảo mật chính thức của PHP, blog nghiên cứu của Wiz, CocoLoop, thông báo bảo mật của OpenAI; đã đối chiếu số hiệu phiên bản vá, mã CVE, điểm CVSS v4.0 và phạm vi phiên bản bị ảnh hưởng.