Bảo mật

Lỗ hổng PHP2Shell: Website PHP và WordPress cần làm gì ngay?

Lỗ hổng PHP2Shell đe dọa 22,6 triệu máy chủ PHP. Giải thích dễ hiểu cách tấn công, phiên bản bị ảnh hưởng và checklist bảo vệ website WordPress.

Trong bài này

    Lỗ hổng PHP2Shell (CVE-2026-109618 và CVE-2026-109619) là sự cố bảo mật PHP nghiêm trọng nhất trong hơn một thập kỷ, theo đánh giá của nhiều chuyên gia. Hai lỗi này cho phép kẻ tấn công thực thi mã từ xa (RCE) mà không cần đăng nhập trên máy chủ chạy PHP – ngôn ngữ đứng sau khoảng 70% website trên Internet, trong đó có WordPress.

    Nếu bạn đang vận hành website WordPress, WooCommerce hay bất kỳ ứng dụng PHP nào, bài viết này giải thích ngắn gọn chuyện gì đang xảy ra, mức độ rủi ro thực tế và những việc cần làm ngay hôm nay.

    Lỗ hổng PHP2Shell là gì?

    PHP2Shell là tên gọi chung của hai lỗ hổng trong lõi PHP, bị lộ ra ngày 21/10/2026 và được phát hiện với sự hỗ trợ của AI:

    • CVE-2026-109619: lỗi use-after-free trong tính năng theo dõi tiến trình tải tệp (upload progress) của session PHP. Dữ liệu cũ bị giải phóng nhưng con trỏ vẫn được dùng lại, mở đường cho việc ghi đè bộ nhớ.
    • CVE-2026-109618: lỗi hỏng bộ nhớ xảy ra khi PHP hết bộ nhớ và bỏ qua bước dọn dẹp thông thường, để lại vùng nhớ chưa khởi tạo bị đọc lại khi kết thúc request.

    Điểm nguy hiểm: kẻ tấn công chỉ cần gửi một request POST dạng multipart/form-data tới bất kỳ địa chỉ nào nhận tải tệp. Lớp session của PHP xử lý tiến trình upload trước khi mã ứng dụng chạy, nên plugin hay theme của bạn có kiểm tra kỹ đến đâu cũng không chặn được.

    Mức độ ảnh hưởng của PHP2Shell

    Theo Palo Alto Networks, tính đến ngày 29/10 có hơn 22,6 triệu máy chủ PHP lộ ra Internet có khả năng bị ảnh hưởng. Ngày 26/10, CISA (Mỹ) đã đưa cả hai lỗ hổng vào danh sách lỗ hổng đang bị khai thác thực tế.

    Những con số đáng chú ý

    • Một nhóm tin tặc đã kết hợp PHP2Shell với lỗi leo thang đặc quyền nhân Linux để chiếm quyền root ít nhất 25 tường lửa Palo Alto có giao diện quản trị lộ ra Internet.
    • Cato Networks ghi nhận khoảng 96% lượt tấn công nhắm vào CVE-2026-109618, trong đó 41% cố thực thi lệnh từ xa.
    • Hãng bảo mật Defiant (Wordfence) ghi nhận hơn 77.000 request khai thác từ hơn 2.000 địa chỉ IP nhắm vào website WordPress.

    Tin tốt cho người dùng WordPress

    Tính đến 28/10, Defiant chưa ghi nhận website WordPress nào bị xâm nhập qua PHP2Shell. Lý do: mã khai thác thường phải tinh chỉnh theo từng máy chủ (bản build PHP, extension, giới hạn bộ nhớ, ASLR…). Tuy nhiên, Defiant cảnh báo kẻ tấn công vẫn đang cải tiến công cụ, và nếu thành công chúng có thể truy cập toàn bộ tệp, cơ sở dữ liệu và mật khẩu của website.

    Phiên bản PHP nào bị ảnh hưởng?

    Theo phân tích của Akamai, lỗ hổng ảnh hưởng PHP từ phiên bản 5 trở lên. Các bản đã được vá lần lượt là:

    • PHP 8.5: cập nhật lên 8.5.12 trở lên
    • PHP 8.4: cập nhật lên 8.4.27 trở lên
    • PHP 8.3: cập nhật lên 8.3.36 trở lên
    • PHP 8.2: cập nhật lên 8.2.35 trở lên
    • PHP 8.1, 8.0, 7.x trở xuống: đã hết hỗ trợ, cần nâng cấp lên nhánh còn được vá

    Lưu ý: một số bản phân phối Linux (Ubuntu, Debian, RHEL…) vá ngược (backport) vào phiên bản cũ, nên hãy đối chiếu thêm thông báo bảo mật của nhà cung cấp hệ điều hành hoặc hosting.

    Checklist bảo vệ website trước PHP2Shell

    1. Kiểm tra phiên bản PHP đang chạy

    Trong WordPress, vào Công cụ → Tình trạng website → Thông tin → Máy chủ để xem phiên bản PHP. Với VPS, chạy lệnh php -v và kiểm tra cả PHP-FPM.

    2. Cập nhật PHP ngay

    Nếu dùng shared hosting, đổi phiên bản trong cPanel/DirectAdmin hoặc liên hệ nhà cung cấp. Nhiều hosting và Cloudflare đã triển khai luật WAF chặn PHP2Shell, nhưng WAF chỉ là lớp bảo vệ tạm thời – vá PHP mới là giải pháp gốc.

    3. Tạm tắt upload progress nếu chưa thể vá

    Lỗi CVE-2026-109619 cần tùy chọn session.upload_progress.enabled (mặc định đang bật). Nếu chưa vá được ngay, bạn có thể cân nhắc đặt giá trị này về Off trong php.ini sau khi xác nhận website không dùng tính năng thanh tiến trình upload. Đây là biện pháp giảm thiểu, không thay thế bản vá.

    4. Sao lưu và rà soát dấu hiệu xâm nhập

    • Tạo bản sao lưu đầy đủ (tệp + cơ sở dữ liệu) và lưu ở nơi tách biệt máy chủ.
    • Quét mã độc, tìm tệp PHP lạ trong thư mục wp-content/uploads.
    • Kiểm tra tài khoản quản trị mới xuất hiện và log truy cập có nhiều POST bất thường.

    5. Cập nhật WordPress lên 7.1.4

    Cùng tuần này WordPress cũng phát hành bản 7.1.4 vá 22 lỗ hổng. Xem chi tiết tại bài WordPress 7.1.4: Bản vá bảo mật.

    Bài học dài hạn: đừng chờ đến khi có sự cố

    PHP2Shell cho thấy AI đang giúp tìm lỗ hổng nhanh hơn bao giờ hết – và kẻ xấu cũng khai thác nhanh hơn. Một quy trình bảo trì định kỳ (cập nhật PHP, core, plugin, sao lưu, giám sát) sẽ giúp bạn phản ứng trong vài giờ thay vì vài tuần. Bạn có thể tham khảo checklist bảo trì WordPress hằng tháng để bắt đầu.

    Kết luận

    Lỗ hổng PHP2Shell ảnh hưởng gần như mọi máy chủ PHP chưa vá. Việc quan trọng nhất bạn cần làm ngay: kiểm tra phiên bản PHP, cập nhật lên bản đã vá, sao lưu dữ liệu và rà soát dấu hiệu bất thường. Nếu bạn không chắc website của mình đã an toàn, hãy liên hệ Gnurt để được kiểm tra và hỗ trợ cập nhật.

    Nguồn tham khảo: SecurityWeek, Akamai, VnExpress.

    Thẻ:An ninh mạngBảo mậtPHPWordPress
    Gnurt

    Lập trình viên full-stack

    Trao đổi về dự án của bạn