PHP2Shell và các lỗ hổng nghiêm trọng tuần qua: Cách vá lỗi cho máy chủ (Tháng 10/2026)
Tuần này chứng kiến một trong những sự cố bảo mật PHP nghiêm trọng nhất trong nhiều năm. Ngày 21/10/2026, dự án PHP phát hành bản vá khẩn cấp cho hai lỗ hổng thực thi mã từ xa (RCE) mức nghiêm trọng, được gọi là PHP2Shell, sau khi thông tin bị rò rỉ sớm một ngày và kẻ tấn công bắt đầu dò quét máy chủ chỉ trong vài giờ. Cùng lúc, đợt Patch Tuesday tháng 10 kỷ lục của Microsoft và hàng loạt lỗ hổng mới trong danh mục CISA KEV khiến các đội IT có thêm nhiều việc cấp bách.
Bài viết này tóm tắt chuyện gì đã xảy ra, hệ thống nào bị ảnh hưởng và chính xác cách vá hoặc giảm thiểu rủi ro, giúp bạn ưu tiên công việc trong 24 đến 72 giờ tới.
Điểm chính cần nắm
- Cập nhật PHP ngay: các phiên bản đã vá là 8.5.12, 8.4.27, 8.3.36 và 8.2.35. PHP khẳng định cập nhật là cách khắc phục triệt để duy nhất.
- Rủi ro cao nhất: Apache mod_php, nơi mã khai thác có thể kích hoạt trước khi mã ứng dụng của bạn chạy. PHP-FPM, php-cgi, FrankenPHP và LiteSpeed cũng bị ảnh hưởng trong một số điều kiện.
- Đã có dò quét khai thác: Cloudflare và watchTowr ghi nhận các nỗ lực khai thác thực tế vào ngày 21/10.
- PHP cũ (8.1, 8.0, 7.4) không có bản vá chính thức: hãy dùng bản build đã vá của nhà phân phối, áp dụng bản backport mã nguồn, hoặc nâng cấp.
- Cũng cần vá trong tuần này: lỗ hổng zero-day Windows Shell CVE-2026-96951 và các lỗi trong danh mục KEV của Ivanti, Palo Alto PAN-OS, Fortinet, Cisco, BeyondTrust và Atlassian.
PHP2Shell là gì?
PHP2Shell là tên gọi của hai lỗ hổng nằm trong chính runtime PHP, không phải trong một framework hay CMS cụ thể. Điều đó có nghĩa là WordPress, WooCommerce, Magento, Laravel và các website PHP tự phát triển đều có thể bị ảnh hưởng nếu máy chủ chạy bản PHP có lỗi. Cả hai đều được PHP chấm 9.2 điểm theo CVSS v4.0 và được báo cáo bởi các nhà nghiên cứu từ Wiz, Calif và OpenAI.
- CVE-2026-109618 (hỏng bộ nhớ do hết bộ nhớ): lỗi out-of-memory làm gián đoạn một request và để dữ liệu ở trạng thái khởi tạo dở dang. Sau đó mã dọn dẹp xử lý trạng thái không hợp lệ này, mở ra khả năng thực thi mã từ xa.
- CVE-2026-109619 (trạng thái toàn cục cũ / use-after-free): PHP giữ tham chiếu tới dữ liệu request sau khi bộ nhớ đã được giải phóng, và một request sau đó trên cùng worker có thể dùng lại chúng. Các nhà nghiên cứu đã chứng minh khả năng thực thi mã qua tính năng session upload progress.
- Lộ dữ liệu bộ nhớ: các nhà nghiên cứu cũng cho thấy có thể đọc trộm bộ nhớ của PHP worker mà không cần xác thực, có thể làm lộ mật khẩu, token phiên và API key.
Các phiên bản PHP bị ảnh hưởng và bản vá
Nhánh PHP | Phiên bản đã vá | Ghi chú |
|---|---|---|
8.5 | 8.5.12 | Đặt thêm fatal_error_backtraces=0 nếu chưa thể vá ngay |
8.4 | 8.4.27 | Nâng cấp ngay |
8.3 | 8.3.36 | Nâng cấp ngay |
8.2 | 8.2.35 | Nhánh này hết hỗ trợ vào 31/12/2026 |
8.1 / 8.0 / 7.4 | Không có bản phát hành chính thức | Dùng bản build đã vá của distro hoặc nhà cung cấp, áp dụng backport mã nguồn, hoặc nâng cấp |
Các bản phân phối Linux thường backport bản vá mà không đổi số phiên bản. Trên Ubuntu, Debian, Red Hat, Alpine và các hệ khác, hãy kiểm tra changelog của gói hoặc thông báo bảo mật của nhà cung cấp để tìm hai mã CVE thay vì chỉ dựa vào chuỗi phiên bản.
Cách vá PHP2Shell từng bước
- Kiểm kê mọi runtime PHP. Bao gồm web server, container, image CI và các bản cài phụ. Lưu ý lệnh
php -vtrên dòng lệnh có thể không phải binary đang phục vụ web; hãy kiểm tra cảphpinfo()hoặc pool FPM. - Cập nhật lên bản đã vá. Ví dụ trên Ubuntu hoặc Debian:
sudo apt update && sudo apt install --only-upgrade php8.3 php8.3-fpm. Trên hệ RHEL dùngdnf update php*. Với Docker, build lại từ tag image php chính thức mới nhất và triển khai lại. - Khởi động lại mọi tiến trình PHP. Restart PHP-FPM, Apache (với mod_php), LiteSpeed hoặc FrankenPHP để không còn worker cũ chạy mã có lỗi.
- Xác minh. Đảm bảo cả gói đã cài và các worker đang chạy đều báo đúng bản đã vá.
- Rà soát cấu hình bộ nhớ sau khi vá. Bản vá áp dụng giới hạn bộ nhớ chặt hơn, có thể dừng các script chạy lâu và shutdown handler, vì vậy hãy kiểm thử các tác vụ nặng như import và báo cáo.
- Thay đổi thông tin bí mật nếu đã bị lộ. Nếu máy chủ từng chạy bản có lỗi trên Internet, hãy cân nhắc đổi mật khẩu database, API key và session secret do rủi ro lộ bộ nhớ.
Biện pháp tạm thời nếu chưa thể vá ngay hôm nay
Các biện pháp này giảm rủi ro nhưng không khắc phục hoàn toàn lỗ hổng. Chỉ dùng chúng như giải pháp tạm trước khi cập nhật chính thức.
- Với CVE-2026-109619: đặt
session.upload_progress.enabled=0trong php.ini hoặc cấu hình pool FPM rồi restart worker. Không dựa vào ini_set() hay .user.ini. Trên PHP 8.5, đặt thêmfatal_error_backtraces=0. - Với CVE-2026-109618: đặt
post_max_size=8M(hoặc 32M nếu cần upload), giữupload_max_filesizenhỏ hơn giá trị đó, giới hạn kích thước request tại Nginx, Apache hoặc WAF, và chặn các request multipart mà ứng dụng không dùng. - Giới hạn bộ nhớ: dùng giới hạn bộ nhớ của container hoặc cgroup thay vì RLIMIT_AS hay RLIMIT_DATA.
- Với PHP-FPM: cân nhắc
pm.max_requests=1nếu hiệu năng cho phép, để mỗi worker chỉ xử lý một request. - Hạn chế phơi nhiễm: đặt trang quản trị và môi trường staging sau VPN hoặc danh sách IP cho phép, đồng thời bật các rule WAF hoặc CDN cho PHP2Shell.
Dấu hiệu máy chủ có thể đã bị nhắm tới
- Các request POST multipart bất thường, theo sau là lỗi vượt giới hạn bộ nhớ trong log
- Số lượng phản hồi HTTP 500 tăng đột biến
- Cookie PHPSESSID có kích thước quá lớn
- PHP worker bị crash hoặc khởi động lại không rõ lý do
- Xuất hiện file PHP mới hoặc bị sửa đổi trong thư mục upload hoặc cache
Các lỗ hổng nghiêm trọng khác trong tuần
PHP không phải vấn đề cấp bách duy nhất. Đợt Patch Tuesday tháng 10/2026 của Microsoft (13/10) đã vá khoảng 1.411 lỗi, trong đó 70 lỗi mức Critical và ba lỗ hổng zero-day. CISA cũng bổ sung nhiều lỗ hổng đang bị khai thác vào danh mục Known Exploited Vulnerabilities (KEV) từ ngày 13 đến 16/10.
CVE | Sản phẩm | Vấn đề | Tình trạng |
|---|---|---|---|
CVE-2026-96951 | Windows Shell | Vượt qua cơ chế Mark of the Web | Đang bị khai thác, vá qua Windows Update |
CVE-2026-108398 | .NET Framework | Vượt qua tính năng bảo mật (WDAC) | Đã công bố công khai |
CVE-2026-104935 | Ivanti Connect Secure | Vượt qua xác thực | Trong CISA KEV |
CVE-2026-0322 | Palo Alto Networks PAN-OS | Chèn mã (code injection) | Trong CISA KEV |
CVE-2025-61624 | Sản phẩm Fortinet | Path traversal | Trong CISA KEV |
CVE-2026-76519 | Cisco Secure Email Gateway | Path traversal | Trong CISA KEV |
CVE-2026-102764 | BeyondTrust Remote Support | Vượt qua xác thực | Trong CISA KEV |
CVE-2026-21589 | Sản phẩm Atlassian | Lộ file và thư mục | Trong CISA KEV, đã có PoC công khai |
Với tất cả các lỗi trên, hãy ưu tiên hệ thống tiếp xúc Internet như VPN gateway, tường lửa, công cụ hỗ trợ từ xa và mail gateway. Áp dụng bản vá của nhà cung cấp, xác nhận phiên bản đã cài, và nếu chưa thể vá ngay, hãy giới hạn giao diện quản trị trong mạng tin cậy hoặc tắt tính năng bị ảnh hưởng.
Lưu ý cho người dùng Windows 10 và 11
Tháng 10/2026 là bản cập nhật bảo mật cuối cùng cho Windows 11 24H2 Home, Pro và Windows 10 Enterprise LTSB 2016. Hãy lên kế hoạch nâng cấp cho các máy còn dùng những phiên bản này.
OneXT Digital có thể hỗ trợ gì?
Nhiều doanh nghiệp vận hành hàng chục website PHP trên nhiều hosting, phiên bản và plugin khác nhau, khiến việc vá khẩn cấp chậm và rủi ro. Đội ngũ OneXT Digital có thể rà soát hệ thống PHP, WordPress, WooCommerce và Magento của bạn, áp dụng bản vá PHP2Shell hoặc các biện pháp gia cố tạm thời, kiểm thử website sau cập nhật và thiết lập gói bảo trì định kỳ để lỗ hổng nghiêm trọng tiếp theo được xử lý trong vài giờ thay vì vài tuần. Liên hệ chúng tôi để được kiểm tra bảo mật website miễn phí.

