Website/23 tháng 10, 2026/8 phút đọc

PHP2Shell: 2 Lỗ Hổng PHP Do AI Phát Hiện Và Website Của Bạn Cần Làm Gì

Hai lỗ hổng nghiêm trọng trong lõi PHP, được tìm ra nhờ AI, khiến hàng loạt website chính phủ ở châu Âu phải tạm tắt để vá. Đây là PHP2Shell là gì, phiên bản nào bị ảnh hưởng, ai đã phát hiện, và checklist để chủ website tại Việt Nam kiểm tra, vá lỗi ngay hôm nay.

Bella Ng
Bella NgĐồng sáng lập, Growthtrait
PHP2Shell: 2 Lỗ Hổng PHP Do AI Phát Hiện Và Website Của Bạn Cần Làm Gì

Ngày 21/10/2026, PHP, ngôn ngữ đứng sau khoảng 70% website, phát hành bản vá khẩn cho hai lỗ hổng nghiêm trọng. Chỉ trong vòng một ngày, hàng loạt website chính phủ ở Hà Lan, Pháp, Bỉ, Đức và nhiều nước khác chủ động tắt để vá. Nếu website của bạn chạy WordPress, WooCommerce, Laravel hay bất kỳ nền tảng PHP nào, câu chuyện này liên quan trực tiếp đến bạn.

Hai lỗi có tên chung là PHP2Shell, mã CVE-2026-109618 và CVE-2026-109619, đều được chấm CVSS 9.2 trên thang 10 theo thông báo chính thức của PHP. Chúng cho phép kẻ tấn công chạy mã trên máy chủ mà không cần đăng nhập, và điểm đặc biệt là cả hai được tìm ra với sự hỗ trợ của AI.

Bài viết này giải thích PHP2Shell là gì, phiên bản nào bị ảnh hưởng, AI nào đã phát hiện, vì sao nhiều chính phủ phải tắt website, và checklist cụ thể để chủ website tại Việt Nam kiểm tra, vá lỗi ngay hôm nay.

PHP2Shell là gì?

PHP2Shell là tên gọi chung của hai lỗ hổng an toàn bộ nhớ nằm trong lõi PHP, không phải trong plugin hay theme. Cả hai xảy ra khi PHP dọn dẹp không sạch sau khi một request bị ngắt giữa chừng, chủ yếu do hết bộ nhớ.

  • CVE-2026-109618 (RCE via OOM corruption): kẻ tấn công gửi một request upload được thiết kế để PHP hết bộ nhớ đúng lúc dữ liệu của request mới khởi tạo dở. Bước dọn dẹp sau đó đọc phải dữ liệu rác, mở đường cho việc chạy mã.
  • CVE-2026-109619 (RCE via stale global state): các tiến trình PHP chạy lâu có thể giữ con trỏ tới vùng nhớ mà request trước đã giải phóng, và request kế tiếp dùng lại chính vùng nhớ đó.

Theo Wiz, ghép hai lỗi lại cho phép chiếm quyền website WordPress, Drupal và Joomla ở bản cài đặt gốc, không cần bất kỳ lỗi nào trong ứng dụng. Kẻ tấn công còn có thể đọc dữ liệu rò rỉ từ request của người dùng khác như mật khẩu, token hay API key, thông qua cookie phiên PHPSESSID, kể cả khi website không dùng session.

Những phiên bản PHP nào bị ảnh hưởng?

Mọi phiên bản từ PHP 5.4 (phát hành năm 2012) đến 8.5.11 đều chứa ít nhất một trong hai lỗi, nghĩa là lỗi đã nằm im khoảng 14 năm. Mọi cách chạy PHP phổ biến đều bị ảnh hưởng: PHP-FPM, Apache mod_php, php-cgi, FrankenPHP và LiteSpeed, trong đó PHP đánh giá mod_php có rủi ro cao nhất.

  • Đã có bản vá chính thức: PHP 8.5.12, 8.4.27, 8.3.36 và 8.2.35, phát hành ngày 21/10/2026.
  • PHP 7.4, 8.0 và 8.1: chỉ có bản vá dạng mã nguồn, không có bản phát hành chính thức. Cần lấy bản vá qua hệ điều hành, panel hosting hoặc nhà cung cấp hỗ trợ dài hạn.
  • PHP 7.3 trở xuống: không có bản vá. Cách duy nhất là nâng cấp.

Nhánh 8.2 cũng sẽ hết hỗ trợ vào ngày 31/12/2026, nên nếu đằng nào cũng phải nâng cấp, hãy đi thẳng lên 8.4 hoặc 8.5.

AI nào đã phát hiện ra lỗ hổng PHP2Shell?

Nói lỗi này do một mô hình AI duy nhất tìm ra là chưa chính xác. Hai nhóm đã tìm ra độc lập với nhau, và cả hai đều có AI hỗ trợ:

  • Calif, một công ty bảo mật ở California tham gia chương trình Patch the Planet của OpenAI. Nhà nghiên cứu Ryan Austin tìm ra lỗi đầu tiên ngày 1/8/2026 và báo cho PHP ngày 11/8. Fortune cho biết Calif dùng GPT-5.6 Sol, dù trang công bố của Calif không nêu tên mô hình nào.
  • Wiz, công ty bảo mật thuộc Google, tìm ra lỗi bằng công cụ Wiz Atlas kết hợp Gemini 4 Argon và GPT-5.6 Sol, rồi báo cho PHP ngày 24/8.

OpenAI dẫn dắt nhóm công bố có phối hợp gồm PHP, Wiz, Calif, Cloudflare và một số cơ quan chính phủ Mỹ. Điểm đáng chú ý là gốc rễ của lỗi từng bị một cuộc kiểm toán năm 2024 gắn cờ, nhưng bị bỏ qua vì không ai chứng minh được nó khai thác được. Có AI hỗ trợ, cả hai nhóm đều dựng được chuỗi tấn công hoàn chỉnh chỉ trong vài tuần. Dù vậy, Calif nhấn mạnh rằng kiến thức của con người vẫn là thứ định hướng AI.

Vì sao website chính phủ nhiều nước phải ngừng hoạt động?

Kế hoạch công bố ban đầu đã bị phá vỡ. Ngày 17/10, hệ thống bẫy của Amazon ghi nhận một lần thử khai thác, bốn ngày trước khi lỗi được công bố. Ngày 20/10, chi tiết lỗi rò rỉ trên mạng xã hội. Khi PHP phát hành bản vá ngày 21/10, CEO Cloudflare cho biết đã có hàng chục nghìn lượt thử khai thác trong 45 phút đầu và hàng triệu lượt đến tối cùng ngày.

NSA và NCSC Anh khuyến cáo hệ thống nào chưa vá được thì đưa ra khỏi mạng. Nhiều chính phủ đã làm đúng như vậy:

  • Hà Lan: DigiD, Hạ viện, trung tâm an ninh mạng quốc gia NCSC, cổng Overheid.nl và viện y tế công cộng RIVM.
  • Pháp: các trang của Bộ Nội vụ và chính quyền các tỉnh.
  • Bỉ: website Bộ Ngoại giao.
  • Đức, Phần Lan, Séc và Đan Mạch: một số trang và dịch vụ công trực tuyến tạm ngừng để vá.
  • Anh: website hội đồng thành phố Edinburgh.

Reuters xác nhận đây đều là các đợt tắt phòng ngừa và chưa có website chính phủ nào bị xâm nhập thành công. Tuy vậy, Sophos đã ghi nhận ít nhất một máy chủ bị khai thác thành công và bị cài mã độc Mirai, nên rủi ro là có thật. Quy mô phơi nhiễm cũng rất lớn: Palo Alto Networks đếm được khoảng 22,6 triệu máy chủ có khả năng bị ảnh hưởng.

Chủ website cần làm gì ngay hôm nay?

Lỗi nằm trong PHP chứ không nằm trong WordPress, nên cập nhật WordPress hay plugin không bảo vệ được bạn. Việc cần làm là cập nhật chính PHP trên máy chủ. Dưới đây là checklist theo thứ tự ưu tiên:

  • Kiểm kê: liệt kê mọi website, máy chủ, môi trường thử nghiệm và container đang chạy PHP, kể cả những trang cũ ít ai còn nhớ tới.
  • Cập nhật PHP: nâng lên 8.5.12, 8.4.27, 8.3.36 hoặc 8.2.35. Nếu dùng hosting chia sẻ, hãy liên hệ nhà cung cấp để xác nhận họ đã vá.
  • Kiểm tra đúng cách: nhiều hệ điều hành và panel như Ubuntu, RHEL, cPanel, Plesk đã vá nhưng giữ nguyên số phiên bản cũ, nên lệnh php -v có thể gây hiểu nhầm. Hãy kiểm tra changelog của gói hoặc ngày build.
  • Khởi động lại: sau khi vá, khởi động lại PHP-FPM, Apache và các worker để bản vá có hiệu lực.
  • Bật WAF: Cloudflare đã triển khai rule chặn cho mọi gói, kể cả gói miễn phí. WAF chỉ hiệu quả khi máy chủ gốc không cho truy cập trực tiếp qua IP.
  • Giảm thiểu tạm thời nếu chưa vá được: tắt session.upload_progress.enabled, đặt memory_limit=-1 ở cấp máy chủ, và trên PHP 8.5 tắt fatal_error_backtraces. Đây chỉ là biện pháp một phần.
  • Cô lập hệ thống không vá được: tạm tắt hoặc đặt sau lớp đăng nhập mạng, theo khuyến cáo của CERT-EU, NSA và NCSC Anh.
  • Rà soát dấu vết từ ngày 17/10: tìm lỗi hết bộ nhớ lặp lại, chuỗi lỗi HTTP 500, cookie PHPSESSID dài bất thường, file lạ trong thư mục /tmp và tiến trình PHP khởi động lại bất thường.

PHP nói rõ không có thay đổi cấu hình nào giảm thiểu hoàn toàn được lỗi, nên cập nhật vẫn là giải pháp duy nhất. Vá sau ngày 17/10 cũng chưa chắc máy chủ còn sạch, vì vậy bước rà soát dấu vết đừng bỏ qua.

PHP2Shell nói gì về bảo mật website trong thời đại AI?

Bài học lớn nhất không nằm ở hai mã CVE. Một lỗi từng bị gác lại vì “chưa ai khai thác được” đã trở thành lỗi khai thác được chỉ sau vài tuần có AI hỗ trợ. Kẻ tấn công cũng có những công cụ tương tự, nên khoảng thời gian từ lúc công bố đến lúc bị tấn công giờ tính bằng giờ, không còn bằng tuần. Chính PHP Foundation nhận định các công cụ hiện nay tìm ra lỗi nhanh hơn bao giờ hết, cho cả bên phòng thủ lẫn bên tấn công.

Với doanh nghiệp, điều đó có nghĩa là website cần một quy trình cập nhật rõ ràng: biết mình đang chạy phiên bản gì, ai chịu trách nhiệm vá, và có thể vá trong vòng một ngày. Một website bị bỏ quên trên PHP 7.x giờ là rủi ro thật, không còn là chuyện kỹ thuật để sau.

Nếu bạn không chắc website của mình đang chạy phiên bản PHP nào hay đã được vá chưa, đội ngũ phát triển website của Growthtrait có thể giúp bạn kiểm tra và lên kế hoạch cập nhật. Liên hệ với chúng tôi để được hỗ trợ.

Câu hỏi thường gặp

PHP2Shell là gì?

PHP2Shell là tên chung của hai lỗ hổng CVE-2026-109618 và CVE-2026-109619 trong lõi PHP, được chấm CVSS 9.2. Chúng cho phép kẻ tấn công chạy mã trên máy chủ mà không cần đăng nhập, ảnh hưởng mọi phiên bản từ PHP 5.4 đến 8.5.11.

Phiên bản PHP nào đã được vá?

PHP 8.5.12, 8.4.27, 8.3.36 và 8.2.35, phát hành ngày 21/10/2026. Nhánh 7.4, 8.0 và 8.1 chỉ có bản vá dạng mã nguồn, còn 7.3 trở xuống không có bản vá và cần nâng cấp.

Website WordPress có bị ảnh hưởng không?

Có, nếu máy chủ chạy PHP chưa vá. Lỗi nằm trong PHP chứ không nằm trong WordPress, nên cập nhật WordPress hay plugin không đủ. Bạn cần cập nhật PHP trên máy chủ hoặc nhờ nhà cung cấp hosting xác nhận đã vá.

AI nào đã phát hiện lỗ hổng PHP2Shell?

Hai nhóm tìm ra độc lập: Calif, trong chương trình Patch the Planet của OpenAI, và Wiz, dùng Wiz Atlas cùng Gemini 4 Argon và GPT-5.6 Sol. Báo chí cho biết Calif dùng GPT-5.6 Sol, dù Calif không công bố tên mô hình.

Làm sao biết máy chủ của tôi đã được vá chưa?

Nhiều hệ điều hành và panel hosting vá nhưng giữ nguyên số phiên bản cũ, nên đừng chỉ dựa vào lệnh php -v. Hãy kiểm tra changelog của gói PHP xem có nhắc tới CVE-2026-109618 và CVE-2026-109619 không, hoặc hỏi trực tiếp nhà cung cấp hosting.

Cần hỗ trợ triển khai?

Growthtrait có thể giúp bạn áp dụng điều này vào thực tế. Cùng trao đổi về mục tiêu của bạn.

Liên hệ ngay