Lỗ hổng PHP2Shell là lời nhắc rằng bảo mật website cần bắt đầu từ cả nền tảng máy chủ. Dù website vẫn hoạt động bình thường, doanh nghiệp nên xác nhận ngay tình trạng cập nhật PHP với đơn vị quản trị hoặc nhà cung cấp hosting.
Trong bài viết này, Qweb tổng hợp những thông tin cần biết và đề xuất quy trình xử lý để chủ website phối hợp với đội ngũ kỹ thuật. Nội dung được đối chiếu với các cảnh báo chính thức, cập nhật ngày 25/10/2026.
PHP2Shell là gì và vì sao chủ website cần quan tâm?
PHP2Shell là tên gọi của hai lỗ hổng trong lõi PHP: CVE-2026-109618 và CVE-2026-109619. Chúng có thể cho phép thực thi mã từ xa mà không cần đăng nhập. Đây là vấn đề của môi trường chạy PHP, vì vậy chỉ cập nhật mã nguồn website chưa đủ để xử lý.
Theo thông báo bảo mật của PHP ngày 21/10/2026, các triển khai phục vụ yêu cầu web cần được rà soát, gồm PHP-FPM, Apache mod_php, php-cgi, FrankenPHP và LiteSpeed. PHP đánh giá rủi ro cao nhất với mod_php, nơi đã chứng minh được khả năng khai thác trước khi mã ứng dụng chạy.
Hai lỗ hổng hoạt động như thế nào?
CVE-2026-109618: xử lý hết bộ nhớ không an toàn
Khi một yêu cầu khiến PHP hết bộ nhớ, việc xử lý có thể dừng ở thời điểm dữ liệu nội bộ chưa được khởi tạo đầy đủ. Quá trình dọn dẹp sau đó có thể sử dụng trạng thái không hợp lệ và dẫn đến thực thi mã. Các yêu cầu multipart được tạo đặc biệt là một trong những đường dẫn có thể kích hoạt tình huống này. Xem phân tích chính thức về lỗi OOM.
CVE-2026-109619: trạng thái cũ tồn tại giữa các yêu cầu
Một số trạng thái toàn cục có thể tiếp tục trỏ đến vùng nhớ đã được giải phóng. Khi worker xử lý yêu cầu tiếp theo và truy cập trạng thái cũ trước khi khởi tạo lại, lỗi use-after-free có thể xảy ra. Trong điều kiện khai thác phù hợp, hậu quả là thực thi mã từ xa. Thông tin chi tiết có trong cảnh báo về stale global state.
Với người quản lý doanh nghiệp, điều cần làm là yêu cầu kiểm tra môi trường máy chủ thay vì chỉ tìm một plugin để cài thêm.
Phiên bản PHP nào cần cập nhật?
Bản tin bảo mật AWS liệt kê các mốc vá đầu tiên như sau:
| Nhánh PHP | Phiên bản bị ảnh hưởng | Bản vá đầu tiên |
|---|---|---|
| 8.2 | 8.2.0–8.2.34 | 8.2.35 |
| 8.3 | 8.3.0–8.3.35 | 8.3.36 |
| 8.4 | 8.4.0–8.4.26 | 8.4.27 |
| 8.5 | 8.5.0–8.5.11 | 8.5.12 |
Đây là mốc vá cho hai CVE nêu trên, không phải cam kết rằng phiên bản đó không còn lỗi bảo mật khác. Với PHP 8.1 trở xuống, hãy lập kế hoạch chuyển sang nhánh còn hỗ trợ. Nếu dùng gói do nhà cung cấp bảo trì và vá ngược, cần đối chiếu thông báo của chính nhà cung cấp; không kết luận chỉ từ số phiên bản gốc.
Quy trình Qweb đề xuất cho chủ website
1. Xác nhận đúng hệ thống đang vận hành
Lập danh sách website chính, website phụ, trang thử nghiệm và ứng dụng nội bộ. Gửi cho đơn vị hosting ba câu hỏi: phiên bản PHP nào đang phục vụ từng website, gói đã có bản vá cho cả hai CVE chưa, và thời điểm hoàn tất triển khai là khi nào? Nên yêu cầu phản hồi bằng văn bản để thuận tiện theo dõi.
2. Chuẩn bị bản sao lưu và kiểm tra tương thích
Trước khi đổi nhánh PHP, sao lưu cơ sở dữ liệu và tệp website, đồng thời xác nhận cách khôi phục. Với WordPress hoặc WooCommerce, hãy thử các luồng quan trọng trên môi trường thử nghiệm: đăng nhập, gửi biểu mẫu, tìm kiếm, đặt hàng và thanh toán. Phân công rõ người kiểm tra nội dung, người cập nhật máy chủ và người quyết định khôi phục khi có lỗi.
3. Cài bản vá và thay thế tiến trình đang chạy
Đội kỹ thuật cần cập nhật đúng runtime phục vụ web, sau đó khởi động lại hoặc thay thế các worker để bản mới có hiệu lực. Với container, triển khai lại image đã cập nhật. JFrog cũng nhấn mạnh việc cập nhật và khởi động lại worker trong hướng dẫn xử lý.
4. Kiểm tra sau cập nhật
Yêu cầu xác nhận phiên bản của PHP phục vụ website, vì PHP dòng lệnh có thể khác PHP-FPM hoặc cấu hình hosting. Kiểm tra lại các chức năng đã chọn, theo dõi lỗi phát sinh và ghi nhận kết quả. Một phiếu xử lý chỉ nên đóng khi có bằng chứng triển khai và kiểm tra hoạt động.
Chưa thể vá ngay: cần ưu tiên điều gì?
Các biện pháp tạm thời chỉ giảm một phần bề mặt tấn công. Cần đặt thời hạn hoàn thành bản vá, giao người chịu trách nhiệm và cân nhắc hạn chế truy cập dịch vụ chưa xử lý được.
Lưu ý cập nhật ngày 23/10/2026: PHP còn khuyến nghị đặt session.upload_progress.enabled=0 cho đến bản sửa lỗi định kỳ tiếp theo để phòng một đường dẫn RCE khác trong tổ hợp cấu hình và mã ứng dụng hiếm gặp. Quản trị viên cần kiểm tra phạm vi cấu hình và khởi động lại worker. Xem thông báo Session upload progress của PHP.
Không nên tự thay đổi giới hạn bộ nhớ trên máy chủ đang hoạt động nếu chưa đánh giá tài nguyên và tác động. Quy tắc WAF, giới hạn yêu cầu và cấu hình PHP cần được đội quản trị áp dụng theo cảnh báo tương ứng với hệ thống thực tế.
Câu hỏi thường gặp
Cập nhật WordPress và plugin có đủ không?
Không. PHP2Shell nằm ở lớp PHP. Cần phối hợp với bên quản trị máy chủ để vá runtime, đồng thời duy trì cập nhật WordPress, giao diện và plugin như một phần công việc bảo trì.
Website không có nút tải tệp có cần kiểm tra không?
Có. Việc không hiển thị chức năng tải tệp không chứng minh máy chủ không xử lý yêu cầu multipart. Hãy để kỹ thuật xác định mức độ phơi nhiễm thay vì suy luận từ giao diện.
WAF có thay thế được bản vá PHP không?
Không. WAF là lớp hỗ trợ giảm rủi ro. Cập nhật runtime vẫn là ưu tiên để khắc phục hai lỗ hổng này.
Đưa cập nhật nền tảng vào kế hoạch bảo trì website
Doanh nghiệp nên duy trì danh sách phiên bản nền tảng, lịch rà soát bản vá, bản sao lưu và đầu mối xử lý sự cố. Khi có cảnh báo mới, danh sách này giúp xác định nhanh hệ thống cần ưu tiên và tránh bỏ sót website ít sử dụng.
Bạn chưa rõ website đang chạy PHP nào? Hãy liên hệ Qweb.com.vn, cung cấp tên miền và thông tin đơn vị hosting để trao đổi nhu cầu rà soát, bảo trì hoặc nâng cấp website. Không gửi mật khẩu quản trị trong bình luận công khai.
Bài viết phục vụ tham khảo và phối hợp xử lý. Khuyến nghị kỹ thuật cần được đối chiếu với cấu hình thực tế và thông báo mới nhất của nhà cung cấp.


