Site Logo
ctdohub
cong-nghe • 31 min read
0

Lỗ hổng PHP2Shell: AI tìm ra lỗi PHP nghiêm trọng, cần vá ngay

Đ
Đỗ Thành Xem hồ sơ → Xuất bản ngày October 23, 2026
Lỗ hổng PHP2Shell: AI tìm ra lỗi PHP nghiêm trọng, cần vá ngay
Xem ảnh phóng to

Ngày 21/10/2026, dự án PHP phát hành khẩn bốn bản PHP 8.5.12, 8.4.27, 8.3.36 và 8.2.35 để vá hai lỗ hổng nghiêm trọng mang mã CVE-2026-109618 và CVE-2026-109619, được giới bảo mật gọi chung là PHP2Shell. Cả hai đều có điểm CVSS 9.2 và cho phép kẻ tấn công chưa đăng nhập chạy mã trên máy chủ chạy PHP.

Điều khiến PHP2Shell khác các lỗi thông thường: lỗi nằm ngay trong lõi PHP chứ không phải trong WordPress hay plugin nào, đã tồn tại hơn một thập kỷ, và được tìm ra, khai thác thành công nhờ các model AI.

PHP2Shell là gì?

Theo PHP Foundation, cả hai lỗi đều nằm ở phần quản lý bộ nhớ và xử lý lỗi, nơi gần như mọi request đi qua:

  • CVE-2026-109618: khi một request chạm giới hạn memory_limit đúng thời điểm "xấu", PHP để lại dữ liệu nội bộ mới khởi tạo dở rồi sau đó coi nó là hợp lệ, dẫn tới hỏng bộ nhớ. Trên Apache với mod_php, một request không cần đăng nhập có thể kích hoạt lỗi trước khi code ứng dụng kịp chạy, và việc chạy mã từ xa đã được chứng minh với cấu hình mặc định.

  • CVE-2026-109619: một lỗi fatal xảy ra sai thời điểm có thể khiến trạng thái nội bộ vẫn trỏ vào vùng nhớ của request trước. Request sau do cùng worker xử lý sẽ dùng lại vùng nhớ đã giải phóng (use-after-free).

Bảng phiên bản PHP bị ảnh hưởng bởi PHP2Shell (5.4 tới 8.5.11) và các bản đã vá 8.5.12, 8.4.27, 8.3.36, 8.2.35

Ảnh hưởng gồm mọi bản PHP từ 5.4 tới 8.5.11. Nhóm Wiz Research, một trong các bên báo lỗi, cho biết họ đã ghép các lỗi thành một script khai thác và chạy được mã từ xa không cần đăng nhập trên bản container mới nhất của WordPress, Drupal và Joomla. Wiz nhấn mạnh ngay cả một ứng dụng "Hello World" chạy trên PHP lỗi cũng có thể bị tấn công.

Ngoài chạy mã, lỗi còn cho phép đọc trộm bộ nhớ của tiến trình PHP, kiểu như vụ Heartbleed năm 2014. Vùng nhớ này có thể chứa mật khẩu, token đăng nhập, API key và chứng chỉ của request khác hoặc của chính máy chủ.

AI đã tìm ra lỗi như thế nào?

Gốc rễ của lỗi không mới. Năm 2024, trong đợt kiểm toán bảo mật do Quarkslab thực hiện, một lập trình viên lõi PHP đã thấy dấu hiệu đầu tiên của vấn đề tràn bộ nhớ (OOM). Nhưng khi đó chưa ai tìm được cách khai thác cụ thể, còn các phương án sửa đều có đánh đổi, nên việc vá bị đình trệ nhiều tháng. PHP Foundation thừa nhận thẳng đây là "một thất bại mang tính cấu trúc".

Tình hình đổi hẳn vào tháng 8/2026. Ngày 11/8, nhà nghiên cứu Ryan A của hãng bảo mật Calif báo một lỗi chạy mã từ xa có cùng gốc rễ. OpenAI độc lập báo cùng vấn đề, còn Wiz gửi báo cáo ngày 24/8. Wiz cho biết họ dùng Wiz Atlas, Gemini 4 Argon và GPT-5.6 Sol trong suốt quá trình nghiên cứu, trong đó Gemini 4 Argon đóng góp lớn vào việc tìm lỗi, viết exploit và kiểm tra bản vá.

Theo Wiz, phần khó nhất là ghép nhiều lỗi lại và chỉnh exploit cho khớp cách PHP cấp phát bộ nhớ trên từng phiên bản, từng cấu hình. Việc trước đây cần một đội chuyên gia hàng đầu làm trong nhiều tháng, nay một nhà nghiên cứu có AI hỗ trợ làm xong trong khoảng một tuần. Wiz ví PHP2Shell có thể là bước ngoặt giống Heartbleed hay Log4Shell, nhưng cho thời đại AI.

Vì sao phải vá ngay?

PHP chạy phía sau WordPress, Drupal, Joomla, MediaWiki và một phần rất lớn website trên thế giới; Wiz ước tính khoảng 70% số website trên thế giới chạy PHP và có nguy cơ bị ảnh hưởng. Quá trình công bố cũng không suôn sẻ:

  • Ngày 20/10, hai mã CVE bị lộ trên mạng (kèm điểm CVSS sai là 10.0), buộc PHP dời ngày phát hành bản vá sớm một ngày, sang 21/10.

  • Cùng tối đó, Calif lỡ đăng một video demo exploit rồi xoá, nhưng bản sao vẫn lan truyền và giúp nhiều người viết PoC nhanh hơn.

  • Amazon Threat Intelligence cho biết đã ghi nhận một lượt thử khai thác PHP2Shell nhắm vào honeypot từ ngày 17/10, bốn ngày trước khi lỗi được công bố.

  • Hãng bảo mật Hadrian báo đã thấy các đợt thử khai thác quy mô lớn ngoài thực tế từ ngày 21/10, chủ yếu qua tính năng session upload progress.

Cơ quan an ninh mạng Mỹ CISA kêu gọi vá ngay, ưu tiên các hệ thống mở ra Internet, và khuyên tạm đưa hệ thống PHP offline nếu chưa thể cập nhật. Tại Latvia, một số dịch vụ nhà nước bị giới hạn chỉ cho IP trong nước truy cập, nền tảng website chung của nhà nước và chính quyền địa phương bị tắt một buổi tối để vá.

Cần làm gì ngay?

Danh sách 5 việc cần làm ngay để chống lỗ hổng PHP2Shell

Nếu bạn chạy website PHP, kể cả trên hosting dùng chung, hãy làm theo thứ tự sau:

  • Kiểm tra phiên bản bằng lệnh php -v, php-fpm -v hoặc trang thông tin trong cPanel/hosting. Lưu ý bản CLI và bản PHP-FPM/Apache đang thực sự chạy website có thể khác nhau.

  • Cập nhật lên 8.5.12, 8.4.27, 8.3.36 hoặc 8.2.35 rồi khởi động lại toàn bộ PHP-FPM hoặc Apache. Đây là cách sửa trọn vẹn duy nhất.

  • Bản 8.1 trở xuống đã hết hạn hỗ trợ và không có bản vá chính thức. Cần nâng lên nhánh còn hỗ trợ hoặc dùng bản backport từ nhà cung cấp.

  • Nếu chưa vá kịp: đặt session.upload_progress.enabled = 0 trong php.ini, hoặc thêm php_admin_flag[session.upload_progress.enabled] = off vào file pool PHP-FPM (không dùng ini_set() hay .user.ini vì áp dụng quá muộn), rồi khởi động lại PHP, đặt site sau WAF/CDN đã có rule chặn PHP2Shell và chặn truy cập thẳng vào IP gốc. Các biện pháp này chỉ giảm rủi ro, không thay được bản vá.

  • Soát dấu hiệu bị tấn công: request POST có chuỗi PHP_SESSION_UPLOAD_PROGRESS, nhiều lỗi 500 hay lỗi memory limit bất thường, cookie PHPSESSID dài hoặc lạ, tiến trình php-fpm/apache tự mở shell hoặc tải công cụ về. Nếu thấy, hãy coi máy chủ đã bị xâm nhập: cô lập, giữ log, tìm web shell, cron job và tài khoản lạ, rồi đổi toàn bộ mật khẩu, API key.

Với người dùng hosting, nhiều nhà cung cấp đã hoặc đang cập nhật PHP. Dù vậy, đừng đợi: hãy vào bảng điều khiển kiểm tra phiên bản đang chạy, hoặc nhắn hỏi nhà cung cấp xem đã vá chưa.

Bài học cho thời AI

PHP2Shell cho thấy AI là con dao hai lưỡi trong bảo mật. Cùng một công cụ giúp Wiz, Calif và OpenAI tìm ra lỗi tồn tại hơn mười năm cũng có thể giúp kẻ xấu viết exploit nhanh hơn bao giờ hết. PHP Foundation cho biết từ 1/7 đội bảo mật đã công bố 15 CVE và xử lý hơn 100 báo cáo không hợp lệ hoặc trùng lặp, phần lớn do số báo cáo nhờ AI tăng vọt.

Khi khoảng cách từ lúc công bố lỗi tới lúc bị khai thác ngày càng ngắn, cập nhật phần mềm sớm không còn là việc "để cuối tuần làm". Với PHP2Shell, đó là việc nên làm ngay hôm nay.

Nguồn

Thảo luận

0 ý kiến
Đang kiểm tra tài khoản...
Đang tải thảo luận...