Quay lại Tin tức

PHP2Shell: lỗ hổng RCE 9.2 bị khai thác, cần vá

Bản vá cho PHP2Shell đã phát hành từ 21/10, nhưng CISA đã thêm hai CVE vào danh mục lỗ hổng bị khai thác sau khi ghi nhận RCE trong honeypot. Đây không còn là rủi ro lý thuyết cho các hệ thống PHP chưa vá.

Đội ngũ TechShield

Khối máy chủ PHP với chuỗi bộ nhớ bị đứt gãy, biểu thị lỗ hổng PHP2Shell
Ảnh minh họa: TechShield

Vì sao cần xử lý ngay

Hai lỗ hổng CVE-2026-109618 và CVE-2026-109619, được gọi chung là PHP2Shell, cho phép kẻ tấn công chưa xác thực thực thi mã từ xa trên hệ thống PHP chưa vá. Điểm CVSS v4.0 là 9.2, và RCE đã được xác nhận trên Apache với mod_php theo SecurityWeek. Theo PHP Foundation, cả hai lỗ hổng nằm ở phần quản lý bộ nhớ và xử lý lỗi mà hầu như mọi request PHP đều chạm tới, khiến chúng nghiêm trọng và khó sửa.

Theo Unit 42, CVE-2026-109618 bắt nguồn từ luồng điều khiển sai khi xử lý lỗi out-of-memory bằng longjmp(), khiến bộ nhớ request chưa được khởi tạo. CVE-2026-109619 khiến bộ nhớ toàn cục trỏ tới vùng đã được giải phóng sau khi xử lý lỗi nghiêm trọng bằng longjmp(); vùng này có thể bị đọc hoặc rẽ nhánh trong request kế tiếp. SecurityWeek cũng nêu lỗ hổng có thể bị khai thác để đọc dữ liệu nhạy cảm trong tiến trình như thông tin xác thực và API key.

Phạm vi ảnh hưởng và bản vá

Bản vá nằm trong PHP 8.5.12, 8.4.27, 8.3.36 và 8.2.35. Ngoài ra, bản backport nguồn tối giản cho PHP 7.4, 8.0 và 8.1 cũng được phát hành. Nhóm bảo trì PHP cho biết mọi cài đặt PHP xử lý web request đều có nguy cơ, bao gồm PHP-FPM, Apache với mod_php, php-cgi, FrankenPHP và LiteSpeed.

Nhánh PHP Bản vá Trạng thái hỗ trợ
8.5 8.5.12 Hỗ trợ chủ động đến 31/12/2027
8.4 8.4.27 Hỗ trợ chủ động đến 31/12/2026
8.3 8.3.36 Chỉ bản vá bảo mật đến 31/12/2027
8.2 8.2.35 Chỉ bản vá bảo mật đến 31/12/2026

Các nhánh 8.1 trở về trước đã hết hỗ trợ chính thức. Bản backport cho 7.4, 8.0 và 8.1 không thay thế việc nâng cấp lên nhánh còn hỗ trợ, vì các nhánh này không còn nhận bản vá bảo mật thường xuyên. SecurityWeek cũng nêu hai lỗ hổng ảnh hưởng gần như mọi bản phát hành PHP từ 5.4 trở đi.

Về quy mô, PHP chạy khoảng 70% website toàn cầu, với hơn 5,1 triệu PHP host lộ trên Internet và khoảng 3,8 triệu instance có ít nhất một cổng mở, theo ước tính VirusTotal được BleepingComputer nêu. Unit 42 ghi nhận hơn 22,6 triệu instance lộ diện có khả năng bị ảnh hưởng dựa trên dữ liệu telemetry.

Diễn biến khai thác

Thông tin rò rỉ xuất hiện ngày 20/10, khiến PHP đẩy bản vá sớm hơn một ngày so với kế hoạch và phát hành ngày 21/10. Trước thời điểm vá, PoC bắt đầu lan truyền. Theo PHP security team, chưa có PoC nào hoạt động trước khi bản vá chính thức, nhưng Amazon ghi nhận kẻ tấn công bắt đầu nhắm tới hai lỗ hổng từ bốn ngày trước khi bản vá ra. Cloudflare, Hadrian, Patchstack, Previdian và watchTowr cũng quan sát nỗ lực khai thác diện rộng; ban đầu các đơn vị này chưa ghi nhận khai thác thành công.

Cuối tuần sau đó, Perplexity xác nhận ghi nhận RCE trong honeypot nhắm vào Apache mod_php chạy PHP 8.4.26. CISA đã thêm CVE-2026-109618 và CVE-2026-109619 vào Known Exploited Vulnerabilities Catalog ngày thứ Hai, đồng thời yêu cầu các cơ quan FCEB xử lý xong trước thứ Năm theo Binding Operational Directive 26-04. BOD 26-04 chỉ áp dụng cho FCEB, nhưng CISA khuyến nghị mọi tổ chức ưu tiên các mục trong KEV Catalog theo quản lý lỗ hổng dựa trên rủi ro.

Hadrian cho biết phần lớn tấn công quan sát được lạm dụng session upload-progress path của PHP. Nếu hệ thống chưa thể vá ngay, đội vận hành nên đưa đường này vào diện giám sát khẩn cấp: rà soát log với request tới cơ chế upload session và chặn nếu không có nhu cầu sử dụng.

Việc cần làm cho đội vận hành

  • Dựng danh sách đầy đủ PHP xử lý web request, gồm PHP-FPM, Apache mod_php, php-cgi, FrankenPHP, LiteSpeed, container và máy chủ sau reverse proxy.
  • Ưu tiên vá lên 8.5.12, 8.4.27, 8.3.36 hoặc 8.2.35 theo nhánh đang chạy.
  • Với 7.4, 8.0 và 8.1, áp dụng backport nguồn nhưng song song lập kế hoạch nâng cấp lên nhánh còn hỗ trợ.
  • Nếu chưa thể vá, áp dụng biện pháp giảm lộ diện theo hướng dẫn của PHP Foundation. Các biện pháp này chỉ giảm một số đường tấn công, không làm hệ thống an toàn.
  • Cập nhật rule phát hiện từ nhà cung cấp bảo mật và theo dõi CISA KEV để cập nhật phạm vi khai thác.

Việc kiểm kê này nên chạy song song với bản tin lỗ hổng bị khai thác tuần trước để không bỏ sót các ưu tiên xử lý khác.

Điều cần theo dõi tiếp

Hadrian dự báo sẽ có thêm đường khai thác trước và sau khi bản vá được triển khai. Wiz lưu ý CVE-2026-109618 và CVE-2026-109619 nhóm bốn vấn đề an toàn bộ nhớ, không bao phủ mọi biến thể; biến thể đã theo dõi và có thể chưa theo dõi vẫn tồn tại. Vá hai CVE này là ưu tiên bắt buộc, nhưng không nên coi là điểm dừng.

Cuối tuần, PHP security team cũng chia sẻ biện pháp giảm thiểu cho CVE-2026-115560, một lỗ hổng RCE riêng chưa có bản vá, nhưng chỉ khai thác được khi hệ thống có tổ hợp cấu hình và mã ứng dụng bất thường. Với hạ tầng lớn, việc lập bản đồ lộ diện PHP và ưu tiên vá theo rủi ro thực tế thường nhanh hơn khi có đội hỗ trợ chuyên sâu; TechShield có thể đồng hành trong kiểm kê và lập kế hoạch xử lý khẩn cấp.

Nguồn tham khảo

  1. PHP2Shell Patches Land as First Exploitation Attempts Hit Sensors
  2. CISA confirms PHP2Shell vulnerabilities now exploited in attacks
  3. PHP2Shell: Two Unpatched Critical PHP RCE Flaws (CVSS 9.2) Trigger Emergency Security Alert
  4. Threat Brief: Critical Vulnerabilities in PHP: CVE-2026-109618, CVE-2026-109619

Đánh giá mức độ an toàn của doanh nghiệp bạn

Liên hệ tư vấn