Cẩm nangNghiêm trọng

PHP phát hành bản vá khẩn cấp cho hai lỗ hổng zero-day

Vào ngày 20 tháng 10 năm 2026, dự án PHP công bố bản vá cho hai lỗ hổng nghiêm trọng có thể dẫn đến thực thi mã từ xa (RCE). Cả hai lỗ hổng đều cho phép thực thi mã từ xa mà không cần xác thực. PHP đã phát hành bản vá cho các phiên bản 8.5.12, 8.4.27, 8.3.36 và 8.2.35 vào ngày 21 tháng 10 năm 2026.

SACERT-EU Security AdvisoriesBiên tập & Phân tích
0 lượt xem
PHP phát hành bản vá khẩn cấp cho hai lỗ hổng zero-day

Vào ngày 20 tháng 10 năm 2026, dự án PHP công bố bản vá cho hai lỗ hổng nghiêm trọng có thể dẫn đến thực thi mã từ xa (RCE). Cả hai lỗ hổng đều cho phép thực thi mã từ xa mà không cần xác thực. PHP đã phát hành bản vá cho các phiên bản 8.5.12, 8.4.27, 8.3.36 và 8.2.35 vào ngày 21 tháng 10 năm 2026.

Nội dung chính

  • PHP phát hành bản vá cho hai lỗ hổng zero-day trong phiên bản 8.5.12, 8.4.27, 8.3.36 và 8.2.35.
  • Lỗ hổng CVE-2026-109618 cho phép thực thi mã từ xa thông qua lỗi xử lý bộ nhớ.
  • Lỗ hổng CVE-2026-109619 cho phép thực thi mã từ xa thông qua trạng thái toàn cầu cũ.
  • PHP không phát hành bản vá khẩn cấp cho lỗ hổng mới phát hiện nhưng khuyên tổ chức áp dụng biện pháp khắc phục.
  • CERT-EU khuyên tổ chức cập nhật PHP ngay lập tức hoặc cách ly ứng dụng internet khỏi mạng công cộng.

Chi tiết sự việc

vào ngày 20 tháng 10 năm 2026, dự án PHP thông báo về một bản phát hành bảo mật sắp tới để khắc phục hai lỗ hổng nghiêm trọng trong PHP [1]. Theo các báo cáo công khai, những lỗ hổng này có thể dẫn đến thực thi mã từ xa (RCE) [2,3].

Nhóm PHP đã phát hành các sửa chữa vào ngày 21 tháng 10 năm 2026 lúc 13:30 UTC, trong các phiên bản PHP 8.5.12, 8.4.27, 8.3.36 và 8.2.35 [4]. Cả hai lỗ hổng đều cho phép thực thi mã từ xa không xác thực. Chi tiết kỹ thuật đang được thảo luận công khai và các chứng minh nguyên tắc (PoCs) đã bắt đầu lan truyền. Điều này làm tăng khả năng nhóm tấn công đã khai thác các lỗ hổng.

ngày 23 tháng 10, PHP công bố thêm một lỗ hổng RCE. Tuy nhiên, nó chỉ ảnh hưởng đến các ứng dụng web được cấu hình một cách không thông thường và PHP coi đây là một rủi ro không xác định. PHP không phát hành bản vá khẩn cấp cho lỗ hổng này [8]. Thay vào đó, các tổ chức được khuyên nên áp dụng các biện pháp khắc phục để bảo vệ khỏi vector RCE này [4].

CERT-EU khuyên các tổ chức nên vá các tài sản bị ảnh hưởng ngay lập tức. Nếu không thể, các tổ chức nên xem xét cách tách các ứng dụng internet khỏi mạng công cộng cho đến khi vá và kiểm tra được áp dụng.

Chi tiết kỹ thuật của lỗ hổng CVE-2026-109618 (GHSA-w8hw-w9fx-j79w), với điểm CVSS là 9.2, cho phép thực thi mã từ xa thông qua sự cố bộ nhớ trong quá trình xử lý ngoại bộ bộ nhớ (OOM) [4,6]. PHP thực thi giới hạn bộ nhớ_configurable_bằng cách sử dụng longjmp() để ngắt bất kỳ yêu cầu nào vượt quá giới hạn, gây ra lỗi OOM. Điều này có thể ngắt PHP khi dữ liệu yêu cầu nội bộ chỉ được khởi tạo một phần, ví dụ, khi phân tích một tệp tải lên dựa trên biểu mẫu. Việc dọn dẹp yêu cầu sau đó có thể coi dữ liệu không hợp lệ là hợp lệ và cố gắng giải phóng bộ nhớ chưa được khởi tạo. Bộ nhớ đó có thể vẫn chứa dữ liệu từ các phân bổ trước do nhóm tấn công kiểm soát.

Lỗ hổng CVE-2026-109619 (GHSA-6wmf-4rv5-p3rp), với điểm CVSS là 9.2, cho phép thực thi mã từ xa thông qua trạng thái toàn cầu cũ [4,7]. Trạng thái nội bộ do yêu cầu sở hữu có thể tồn tại sau khi bộ nhớ hỗ trợ đã được giải phóng, ví dụ, sau một lỗi nghiêm trọng. Yêu cầu sau này được xử lý bởi cùng một worker có thể sử dụng trạng thái cũ đó trước khi trạng thái bình thường được khởi tạo đặt lại.

Mỗi cài đặt PHP phục vụ yêu cầu web, bao gồm PHP-FPM, Apache với mod_php, php-cgi, FrankenPHP và LiteSpeed, đều có rủi ro. Nhóm PHP coi mod_php là cấu hình có rủi ro cao nhất. Một chứng minh thực thi cho thấy một yêu cầu không xác thực có thể kích hoạt cuộc tấn công trước khi bất kỳ mã ứng dụng nào chạy [4].

Không có chi tiết về lỗ hổng CVE-2026-115560 có thể dẫn đến thực thi mã từ xa. Nhóm PHP sẽ công bố một thông báo đầy đủ với bản phát hành tiếp theo.

Chỉ có bản cập nhật đầy đủ mới khắc phục hoàn toàn các lỗ hổng zero-day. Các biện pháp dưới đây giảm thiểu rủi ro cho các đường tấn công cụ thể nhưng không làm cho hệ thống an toàn.

Đặt memory_limit=-1 một cách không thể thay đổi bởi ứng dụng, như php_admin_value trong FPM pool hoặc cấu hình Apache. Kiểm tra rằng không có pool, thư mục hoặc cài đặt ứng dụng nào đặt giới hạn hữu hạn trở lại. Điều này loại bỏ khả năng thất bại của giới hạn bộ nhớ có thể kiểm soát, nhưng sự thất bại trong phân bổ cơ bản vẫn có thể đạt đến con đường mã bị tấn công.

Đặt post_max_size thấp: 8M cho các ứng dụng không cần tải lên tệp, 32M nếu tải lên là bắt buộc. Giữ upload_max_filesize dưới post_max_size.

Xem xét áp dụng giới hạn tại cấp server web hoặc proxy cho kích thước yêu cầu đã giải mã, số trường đầu vào, số phần multipart, số đầu vào và độ sâu lồng.

Những giới hạn này cũng phải bao gồm các yêu cầu không có Content-Length hữu ích.

Sử dụng giới hạn bộ nhớ container hoặc cgroup như một ranh giới khả dụng, tốt nhất là với chính sách chỉ kill worker bị ảnh hưởng. Không sử dụng RLIMIT_AS hoặc RLIMIT_DATA thay vào đó, vì chúng có thể gây ra sự thất bại phân bổ có thể bị tấn công.

Đặt session.upload_progress.enabled=0 và khởi động lại mỗi worker. Áp dụng điều này trong php.ini, FPM pool hoặc cấu hình server hoạt động trước khi phân tích yêu cầu. Không dựa vào ini_set() hoặc FPM .user.ini. Điều này chặn các đường dẫn xác nhận session nhưng không chặn các biến thể khác.

Trên PHP 8.5, đặt fatal_error_backtraces=0 và khởi động lại mỗi worker. Điều này chặn con đường xác nhận backtrace chết.

Loại bỏ các cài đặt yêu cầu không hợp lệ hoặc đã bị deprecate phát hành thông tin trước khi khởi động. Che dấu thông tin với error_reporting, display_errors hoặc @ không giúp gì.

Khắc phục các lỗi chết và thời gian chờ thực thi mà kẻ tấn công có thể đạt được, bao gồm sự thất bại trong các hàm gọi lại, xử lý tải lên hoặc nhập, và việc làm sạch.

Đặt session.upload_progress.enabled=0 và khởi động lại mỗi worker cho đến bản vá lỗi tiếp theo, để bảo vệ hoàn toàn khỏi CVE-2026-115560.

Tham khảo [1] https://www.php.net/archive/2026.php#2026-10-20-1 [2] https://cyberplace.social/@GossiTheDog/117474220875882526 [3] https://x.com/watchtowrcyber/status/2112611507749982605 [4] https://www.php.net/index.php#2026-10-20-1 [5] https://github.com/NCSC-NL/php2shell [6] https://github.com/php/php-src/security/advisories/GHSA-w8hw-w9fx-j79w [7] https://github.com/php/php-src/security/advisories/GHSA-6wmf-4rv5-p3rp [8] https://thehackernews.com/2026/10/urgent-php-warns-of-another-unpatched.html

Khuyến nghị

  • Cập nhật tất cả các phiên bản PHP bị ảnh hưởng lên phiên bản 8.5.12, 8.4.27, 8.3.36 hoặc 8.2.35.
  • Đặt memory_limit=-1 trong cấu hình FPM hoặc Apache để loại bỏ giới hạn bộ nhớ có thể kiểm soát.
  • Đặt post_max_size và upload_max_filesize phù hợp với nhu cầu của ứng dụng.
  • Xác định giới hạn tại cấp web server hoặc proxy cho kích thước yêu cầu, số trường đầu vào, số phần multipart, số header và độ sâu lồng.
  • Sử dụng container hoặc cgroup làm giới hạn khả dụng, ưu tiên chính sách chỉ kill worker bị ảnh hưởng.

Lưu ý: Bài viết được biên dịch và tóm tắt tự động bằng AI từ nguồn CERT-EU Security Advisories. Vui lòng đối chiếu bài gốc trước khi sử dụng.

📰 Tin liên quan cùng sự kiện (6)

Từ khoá:#rce
SA
CERT-EU Security AdvisoriesXem tất cả bài viết →

Tin tổng hợp tự động từ CERT-EU Security Advisories (https://cert.europa.eu). Mỗi bài đều dẫn liên kết tới bài gốc của nguồn.

Bài viết liên quan

Cùng chuyên mục & chủ đề

PHP phát hành bản vá khẩn cấp cho hai lỗ hổng zero-day — HueCA-CYBER