Cập nhật ngay PHP để không bị hack – PHP 2026: RCE nghiêm trọng, PHP 8.5.12 và lộ trình 8.6

update php

Ngày 21/10/2026, nhóm phát triển PHP phát hành hàng loạt bản vá bảo mật cho 8.2, 8.3, 8.4 và 8.5. Hai lỗ hổng được chấm CVSS v4.0 9.2 có thể dẫn tới thực thi mã từ xa (RCE) mà không cần đăng nhập. Cùng lúc, PHP 8.6 đang ở RC4, dự kiến GA 19/11/2026. Bài này tổng hợp archive chính thức trên php.net và các nguồn độc lập: PHP Wiki, PHP Foundation, PHP.Watch, Zend.

Tóm tắt nhanh

  • Vá ngay: PHP 8.5.12, 8.4.27, 8.3.36 hoặc 8.2.35.
  • Lỗ hổng: CVE-2026-109618 (OOM corruption) và CVE-2026-109619 (stale global state).
  • Nguy cơ cao nhất: Apache mod_php; PHP-FPM, php-cgi, FrankenPHP, LiteSpeed cũng nằm trong phạm vi.
  • Không có biện pháp giảm thiểu đầy đủ. Chỉ cập nhật mới an toàn.
  • PHP 8.2 hết hỗ trợ bảo mật 31/12/2026. PHP 8.1 trở về trước đã EOL phía upstream.
  • PHP 8.6: RC4 (21/10), RC5 (05/11), GA (19/11). Không dùng RC trên production.

1. Cảnh báo bảo mật 21/10/2026

Theo security advisory trên php.net và bài phân tích của The PHP Foundation, hai lỗi nằm ở quản lý bộ nhớ và xử lý lỗi — hai lớp gần như mọi request đều đi qua.

CVE-2026-109618 — RCE qua OOM

Khi request chạm memory_limit đúng thời điểm, PHP có thể để lại dữ liệu nội bộ khởi tạo dở, rồi cleanup coi đó là dữ liệu hợp lệ. Trên mod_php, đã có exploit chứng minh: request chưa xác thực kích hoạt tấn công trước khi mã ứng dụng chạy, kể cả cấu hình mặc định. PHP-FPM cũng xác nhận RCE qua một số đường mã ứng dụng.

CVE-2026-109619 — RCE qua trạng thái toàn cục cũ

Fatal error đúng lúc có thể để state trỏ vào bộ nhớ của request trước. Worker xử lý request sau dùng lại vùng nhớ đã giải phóng (use-after-free). Đã xác nhận crash worker và RCE trên ứng dụng thật chạy Apache + mod_php.

Ai cần vá

Mọi cài đặt PHP phục vụ HTTP: PHP-FPM, Apache mod_php, php-cgi, FrankenPHP, LiteSpeed. Hosting dùng LiteSpeed (phổ biến ở DirectAdmin Việt Nam) không nằm ngoài phạm vi.

Bản vá theo nhánh

Nhánh Bản vá tối thiểu Ghi chú
PHP 8.5
8.5.12
Active support đến 31/12/2027
PHP 8.4
8.4.27
Active support đến 31/12/2026
PHP 8.3
8.3.36
Chỉ còn security support
PHP 8.2
8.2.35
Security support đến 31/12/2026
PHP 8.6 RC
RC4 trở lên
Chỉ môi trường test
PHP 8.1 trở về trước
Không có bản official
Nhờ vendor LTS hoặc nâng cấp

Nguồn: php.net/supported-versions, php.net/eol.php, php.announce.

Nếu chưa vá được ngay

Advisory nhấn mạnh: các bước dưới đây chỉ giảm một số đường tấn công, không làm hệ thống an toàn.

Với CVE-2026-109618:

  • Ưu tiên memory_limit=-1 bằng php_admin_value (FPM pool / Apache), không để app ghi đè.
  • Giới hạn post_max_size (8M nếu không upload; 32M nếu cần upload), upload_max_filesize nhỏ hơn post_max_size.
  • Giới hạn kích thước request ở web server/proxy; container/cgroup để cô lập worker. Không dùng RLIMIT_AS / RLIMIT_DATA thay thế.

Với CVE-2026-109619:

  • session.upload_progress.enabled=0 rồi restart toàn bộ worker (php.ini / pool, không dùng ini_set() hay .user.ini).
  • PHP 8.5: fatal_error_backtraces=0 rồi restart worker.
  • Sửa fatal error và timeout mà attacker có thể kích hoạt.

Bối cảnh công bố

Ngày 20/10, hai mã CVE bị lan trên mạng kèm CVSS sai (10.0 thay vì 9.2). PHP đưa pre-announcement sớm và dời lịch phát hành từ 22/10 sang 21/10, 14:00 UTC. Bản vá được gửi trước cho distro/LTS. PHP Foundation cho biết lỗi OOM đã lộ dấu hiệu từ audit Quarkslab (2024); đến tháng 8/2026 Calif, OpenAI và Wiz mới làm rõ vector RCE, sau đó vá trở thành ưu tiên cao nhất.

2. Lịch hỗ trợ: đừng để 8.2 “chết” vào cuối năm

Mỗi nhánh PHP: 2 năm active + 2 năm chỉ vá bảo mật.

Nhánh Phát hành Active đến Security đến
8.5
20/11/2025
31/12/2027
31/12/2029
8.4
21/11/2024
31/12/2026
31/12/2028
8.3
23/11/2023
31/12/2025 (đã hết active)
31/12/2027
8.2
08/12/2022
31/12/2024
31/12/2026

Việc cần làm trên hosting: kiểm tra PHP Selector / MultiPHP. Site còn 8.1, 8.0, 7.4 là ngoài hỗ trợ upstream. 8.2 nên lên 8.3+ trước Tết dương lịch 2027.

3. PHP 8.5: những gì đã ổn định trong production

PHP 8.5 ra mắt 20/11/2025. Năm 2026 chủ yếu là point release (8.5.2 → 8.5.12). Theo trang 8.5 và migration manual:

  • Pipe |>: xâu hàm trái sang phải, bớt biến trung gian.
  • URI extension luôn bật: Uri\Rfc3986\Uri và Uri\WhatWg\Url — thay parse_url() khi cần chuẩn RFC 3986 / WHATWG.
  • Clone with: clone($obj, ['prop' => $val]) cho pattern wither trên readonly.
  • #[\NoDiscard]: cảnh báo khi bỏ qua giá trị trả về.
  • Closure / first-class callable trong constant expression.
  • cURL share handle bền qua nhiều request.

Ví dụ pipe:

$slug = $title
|> trim(…)
|> (fn($str) => str_replace(‘ ‘, ‘-‘, $str))
|> strtolower(…);

4. PHP 8.6: đang RC, GA dự kiến 19/11/2026

Lịch từ wiki.php.net/todo/php86 (RM: Daniel Scherzer, Matteo Beccati, Joe Ferguson):

Alpha (02–30/07) → Beta (13/08–10/09) → RC2 (24/09, bỏ RC1 do lỗi đóng gói) → RC3 (08/10) → RC4 (21/10, kèm vá RCE) → RC5 (05/11) → GA 19/11.

Theo manual 8.6 và Zend, điểm đáng chú ý:

  • Partial function application: add(1, ?), str_replace(' ', '', ?).
  • Readonly property được gán default.
  • #[\Override] cho class constant / enum case.
  • __debugInfo() trên enum.
  • Time\Duration (độ chính xác nanosecond).
  • clamp($value, $min, $max).
  • Stream: poll API, error handling nhất quán hơn, TLS session resumption.

RFC pipe assignment |>= đã bị từ chối — không có trong 8.6.

Khuyến nghị: test staging trên RC4/RC5; production chờ GA và bản vá đầu tiên. Đọc UPGRADING trong tarball trước khi lên.

5. Timeline tin PHP 2026 (rút gọn)

Thời điểm Sự kiện
15/01
8.5.2, 8.4.17, 8.3.30 (bugfix)
02/07
Alpha 1 của 8.6; đồng thời 8.5.8 / 8.4.23 / 8.3.32 / 8.2.32 (security)
13/08
8.6 Beta 1, soft feature freeze
24/08
State of PHP Survey (PHP Foundation + JetBrains)
24/09
8.6 RC2; security 8.5.11 / 8.4.26 / 8.3.35 / 8.2.34
08/10
8.6 RC3
20/10
Pre-announcement vá critical
21/10
Advisory RCE + 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35 + 8.6 RC4
05/11
8.6 RC5 (kế hoạch)
19/11
8.6 GA (kế hoạch)
31/12
8.2 EOL

Cộng đồng 2026–2027: PHPverse (09/06), Laracon US Boston (28–29/07), LonghornPHP Austin (15–16/10), IPC Munich (26–30/10), PHPBenelux Antwerp (23/01/2027), Dutch PHP Conference Amsterdam (16–19/03/2027).

6. Việc nên làm trên server / WordPress

  1. Xem phiên bản: php -v hoặc PHP Selector (DirectAdmin / cPanel).
  2. Nâng lên 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35 từ distro, CloudLinux, hoặc build source. Remi repo được php.net lưu ý không có bản vá ngay trong ngày 21/10.
  3. Restart php-fpm / LiteSpeed / Apache.
  4. WordPress: Site Health, tắt plugin không rõ nguồn, không để display_errors trên production.
  5. Lên lịch migrate khỏi 8.2 trước 31/12/2026.
  6. Theo dõi php.net và advisory vendor.

FAQ

Có thể chỉ sửa php.ini mà không nâng phiên bản?
Không. Chỉ nâng bản vá mới đủ.

LiteSpeed / DirectAdmin có bị không?
Có. Mọi SAPI phục vụ web đều trong phạm vi.

Nên lên 8.5 hay chờ 8.6?
Production: 8.5.12 hoặc 8.4.27 ngay. 8.6 khi đã GA và plugin/theme tương thích.

PHP 8.1 còn vá không?
Upstream không. Một số distro LTS có thể backport; xác nhận với nhà cung cấp hoặc nâng 8.2+.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *