Ghi chú kỹ thuật của zhaoJian

PHP2Shell khai thác lỗ hổng PHP nghiêm trọng, nhiều nước cảnh báo: giải pháp thay thế WordPress miễn phí cho website doanh nghiệp

Công nghệ ~13862 từ · 35 phút đọc - lượt xem

Ngày 21 tháng 10 năm 2026, PHP phát hành bản cập nhật bảo mật khẩn cấp, vá hai lỗ hổng nghiêm trọng CVE-2026-109618 và CVE-2026-109619. Kẻ tấn công không cần đăng nhập, chỉ cần gửi một request là có thể chạy mã tùy ý trên máy chủ.

Wiz Research, đơn vị phát hiện lỗ hổng, đã ghép hai lỗ hổng này thành một script khai thác tên PHP2Shell và trình diễn việc thực thi mã từ xa không cần đăng nhập trên các phiên bản mới nhất của WordPress, Drupal và Joomla (Wiz).

WordPress chạy trên PHP. Lần này lỗ hổng nằm ở chính PHP, nên dù cập nhật WordPress và plugin lên bản mới nhất cũng không chặn được. Mọi website doanh nghiệp dùng WordPress đều phải xử lý.

Lỗ hổng PHP nghiêm trọng CVE-2026-109618, CVE-2026-109619 và công cụ khai thác PHP2Shell, CVSS 9.2

Tóm tắt lỗ hổng PHP CVE-2026-109618 và CVE-2026-109619

Theo thông báo bảo mật chính thức của PHP:

MụcNội dung
Mã sốCVE-2026-109618, CVE-2026-109619
Tên chính thứcRCE via OOM corruption, RCE via stale global state
ĐiểmCVSS 4.0, 9.2 điểm
Hậu quảThực thi mã từ xa (RCE) không cần đăng nhập
Phạm viMọi PHP xử lý request web: PHP-FPM, Apache mod_php, php-cgi, FrankenPHP, LiteSpeed
Rủi ro cao nhấtApache mod_php, bị tấn công ngay trước khi mã của website chạy
Phiên bản đã váPHP 8.5.12, 8.4.27, 8.3.36, 8.2.35
Không có bản vá chính thứcPHP 8.1 và các bản cũ hơn
  • CVE-2026-109618: khi PHP hết bộ nhớ (OOM), tiến trình có thể dừng lại lúc dữ liệu request mới khởi tạo được một nửa; sau đó khi dọn dẹp request, dữ liệu không hợp lệ đó lại bị dùng như dữ liệu hợp lệ.
  • CVE-2026-109619: sau khi request kết thúc và bộ nhớ được giải phóng, một phần trạng thái nội bộ vẫn còn sót lại; cùng một worker khi xử lý request tiếp theo có thể dùng trước trạng thái đã hết hạn này.

Nhiều nước phát cảnh báo, website khẩn cấp ngừng hoạt động

Các mốc thời gian dưới đây đều là ngày 21 tháng 10 năm 2026.

CERT-EU của Liên minh châu Âu (NL Times), NCSC Anh (Patchstack), NCSC Hà Lan (Sansec), Văn phòng An ninh mạng Quốc gia Nhật Bản cùng IPA (Impress Watch) lần lượt phát cảnh báo, yêu cầu vá càng sớm càng tốt. EU, Anh và Nhật Bản còn khuyến nghị website nào chưa kịp vá thì tạm ngừng trước.

Tấn công đã bắt đầu

Ghi chép trực tiếp của Patchstack, công ty bảo mật WordPress:

  • UTC 07:34: nhiều nhà cung cấp hosting báo cáo website bị tấn công.
  • UTC 07:43: CTO của Cloudflare cho biết đã thấy các cuộc tấn công đầu tiên và đã triển khai quy tắc tường lửa.
  • UTC 13:52: PHP phát hành phiên bản đã vá.
  • UTC 13:57: Patchstack vẫn chỉ thấy các cuộc tấn công thăm dò, dự đoán sẽ tăng sau khi chi tiết bản vá được công khai.

Công cụ khai thác PHP2Shell của Wiz Research tấn công WordPress, tự động nhận diện mục tiêu và thực thi lệnh

Trung tâm An ninh mạng Quốc gia Hà Lan (NCSC) khi đó cho biết chưa xác nhận tấn công thực tế. Tham khảo lần trước: tháng 6 năm 2024, sau khi lỗ hổng PHP CVE-2024-4577 được công bố, Akamai đã thấy các nỗ lực tấn công trong vòng 24 giờ (The Hacker News).

Website chính phủ Hà Lan, Phần Lan ngừng hoạt động

  • Website Hạ viện Hà Lan (Tweede Kamer) tạm ngừng. Website của câu lạc bộ bóng đá Fortuna Sittard, công đoàn cảnh sát ACP, Hiệp hội Dược sĩ Hoàng gia Hà Lan KNMP, công ty xe buýt EBS, cùng một phần mạng IT dùng chung của các trường đại học và viện nghiên cứu Hà Lan cũng tạm dừng (NL Times).
  • Chính website của NCSC Hà Lan, trang công nghệ Tweakers và trang tin bảo mật Security.NL ngừng hoạt động (Sansec).
  • Hệ thống xác thực danh tính của chính phủ Hà Lan DigiD và cổng dịch vụ công MijnOverheid tạm ngừng dịch vụ (Patchstack).
  • Valtori, trung tâm IT của chính phủ Phần Lan, đã tắt website công khai của nhiều cơ quan nhà nước, bao gồm Cục Đo đạc Đất đai Quốc gia Phần Lan và Trung tâm Hội chợ và Hội nghị Helsinki (Pasquale Pillitteri).

Nhật Bản: Thủ tướng Takaichi kêu gọi giữa đêm, pixiv, DMM và nhiều dịch vụ bảo trì khẩn cấp

Lúc 21:55 giờ Nhật Bản, Thủ tướng Takaichi Sanae đăng trên X (được Impress Watch dẫn lại):

皆様に、今夜に対応して頂きたい大至急のお願いです。(中略)公開しているウェブサイトでPHPを使用しているか確認し、今夜、10月21日午後11時(日本時間)に公開される修正パッチについて、可及的速やかに適用できるよう準備をお願いします。修正パッチを速やかに適用することが困難な場合は、例えばウェブサイト等を一時的に停止させることも、リスクを低減させるための有効策の一つと考えられます。

Ý chính: tối nay hãy kiểm tra website có dùng PHP không, và vá ngay khi bản vá phát hành lúc 23 giờ giờ Nhật Bản; nếu không kịp vá, có thể tạm ngừng website trước.

Văn phòng An ninh mạng Quốc gia Nhật Bản và IPA cũng phát cảnh báo, một số chính quyền địa phương thông báo tạm ngừng hệ thống. Các dịch vụ được nêu trong cùng bài báo:

  • Nền tảng cửa hàng trực tuyến BASE và dịch vụ cho nhà trẻ CoDMON bảo trì từ buổi chiều;
  • pixiv, DMM.com, niconico, Sakura Internet bảo trì khẩn cấp một phần dịch vụ, sau 20 giờ hàng loạt dịch vụ tạm ngừng;
  • Các game như Granblue Fantasy, Umamusume: Pretty Derby tạm ngừng dịch vụ.

Chế độ bảo trì của WordPress không chặn được

Sansec chỉ ra: chế độ bảo trì có sẵn của WordPress và Magento không có tác dụng, vì PHP đã phân tích request trước khi chương trình kiểm tra công tắc bảo trì. Cách hiệu quả là dừng PHP-FPM, để web server trả thẳng một trang bảo trì tĩnh.

Vì vậy đêm đó website WordPress chỉ có hai lựa chọn: có người đăng nhập máy chủ để nâng cấp PHP, hoặc tắt toàn bộ website. Website không ai quản lý thì chỉ có thể để mở và chờ.

Vì sao website doanh nghiệp dùng WordPress nguy hiểm nhất

Lỗ hổng ở tầng PHP thì plugin WordPress không xử lý được. Với mod_php, tấn công xảy ra trước khi mã của website chạy, nên plugin bảo mật, captcha hay ẩn trang quản trị đều vô dụng. Sansec cũng nói chỉ có thể nâng cấp PHP trên máy chủ; ai không tự quản lý máy chủ thì chỉ biết hối thúc nhà cung cấp hosting.

Rất nhiều máy chủ vẫn dùng PHP đã hết hỗ trợ. Công ty bảo mật Mallory ngày 20 tháng 10 thống kê qua Shodan khoảng 884 nghìn máy chủ công khai có header phản hồi cho thấy PHP 8.1 hoặc cũ hơn, chiếm 59% số máy chủ có báo phiên bản (khoảng 1,5 triệu). Đây là thống kê theo header, không có nghĩa tất cả đều bị ảnh hưởng (The Hacker News). Các phiên bản này không có bản vá chính thức, chỉ có thể xin nhà cung cấp hosting bản vá backport hoặc nâng cấp PHP, mà theme và plugin cũ thường lỗi ngay khi nâng cấp.

Năm nào cũng tốn tiền. Gia hạn hosting, phí bảo trì, phí plugin trả phí hằng năm, có sự cố còn thêm chi phí dọn dẹp. Một website chỉ giới thiệu công ty, dịch vụ, dự án, tin tức và tuyển dụng lại phải chạy PHP + MySQL liên tục, và còn cần người canh máy chủ vào những đêm như 21 tháng 10.

Giải pháp của tôi: Astro + Cloudflare / GitHub / Vercel / Netlify

Từ hai năm trước tôi đã không còn khuyên khách hàng dùng WordPress và PHP, và đã chuyển toàn bộ website của khách sang bộ đôi Astro cùng Cloudflare, GitHub, Vercel, Netlify. Gói miễn phí của các nền tảng này hoàn toàn đủ cho website doanh nghiệp, hosting không tốn một đồng, lại nhanh hơn, an toàn hơn, nhàn hơn website WordPress cũ.

Với lỗ hổng PHP lần này, website của các khách hàng đó không cần xử lý gì, đêm đó vẫn truy cập bình thường. Blog của tôi zhaojian.net cũng được xây theo cách này, đồng thời có 12 phiên bản ngôn ngữ.

Cách làm rất đơn giản:

  • Astro tạo toàn bộ trang khi build, thứ đưa lên mạng chỉ có HTML, CSS, JS và hình ảnh;
  • mã nguồn đặt trên GitHub, sửa chữ hay thêm tin tức thì commit;
  • Cloudflare Pages / Vercel / Netlify nhận commit là tự động build và xuất bản, vài phút là lên mạng, trang được phân phối từ CDN toàn cầu.

An toàn hơn: trên máy chủ không có PHP, cơ sở dữ liệu hay trang đăng nhập quản trị, công cụ khai thác như PHP2Shell không có chỗ để ra tay. Sau này PHP, WordPress hay plugin có lỗ hổng nữa cũng không liên quan đến website.

Nhanh hơn: trang là các file dựng sẵn, gửi thẳng từ node CDN gần khách truy cập nhất, truy cập từ Nhật Bản, Trung Quốc, châu Âu hay châu Mỹ đều nhanh.

Không tốn tiền, không cần bảo trì: không phải gia hạn hosting và máy chủ, chỉ còn phí tên miền. Không có máy chủ để đăng nhập, không có chương trình để nâng cấp.

So sánh WordPress và website tĩnh Astro

Website WordPressWebsite tĩnh Astro
Chương trình đang chạyPHP + MySQL + theme + pluginKhông có, chỉ có file tĩnh
Lỗ hổng PHP lần nàyBị ảnh hưởng, phải nâng cấp xuyên đêm hoặc đóng webKhông bị ảnh hưởng
Chi phí hostingGia hạn hosting / máy chủ hằng nămMiễn phí
Bảo trì thường xuyênĐịnh kỳ nâng cấp WordPress, plugin, PHPKhông cần
Tốc độ truy cậpTùy hiệu năng máy chủ và cấu hình cacheGửi thẳng từ CDN
Cập nhật nội dungĐăng nhập trang quản trị để sửaCommit xong tự động build và xuất bản
Đa ngôn ngữDựa vào plugin đa ngôn ngữTạo trang từng ngôn ngữ khi build

Các tính năng đọc ghi dữ liệu theo thời gian thực như cửa hàng trực tuyến, đăng nhập thành viên, hệ thống đặt lịch cần lên kế hoạch riêng. Các tính năng website doanh nghiệp hay dùng như form liên hệ, tin tức, dự án, tuyển dụng, đa ngôn ngữ đều làm được bằng website tĩnh kết hợp dịch vụ form bên thứ ba.

Các bước chuyển WordPress sang Astro

  1. Rà soát trang: liệt kê toàn bộ trang, bài viết, hình ảnh và form.
  2. Xuất nội dung: xuất bài viết và trang ra Markdown, tải kèm toàn bộ hình ảnh.
  3. Giữ nguyên URL: cố gắng giữ URL cũ, URL nào thay đổi thì đặt chuyển hướng 301 để tránh tụt thứ hạng tìm kiếm.
  4. Làm lại thiết kế: dựng lại y như cũ, hoặc đổi sang thiết kế mới, đồng thời tương thích di động.
  5. Thay thế tính năng: form chuyển sang dịch vụ form bên thứ ba, thống kê chuyển sang giải pháp không cần máy chủ.
  6. Chuyển tên miền: kiểm tra kỹ xong thì trỏ tên miền sang nền tảng mới, máy chủ cũ hết hạn thì không gia hạn nữa.

Câu hỏi thường gặp

Website WordPress có bị PHP2Shell tấn công không?

Có. Lỗ hổng nằm ở chính PHP, chỉ cần PHP trên máy chủ không phải bản 8.5.12, 8.4.27, 8.3.36, 8.2.35 hoặc bản đã được nhà cung cấp hosting vá, thì đều bị ảnh hưởng, không liên quan đến phiên bản WordPress.

Bật chế độ bảo trì của WordPress có chặn được không?

Không. PHP đã xử lý request trước khi chế độ bảo trì có hiệu lực. Hoặc nâng cấp PHP, hoặc dừng PHP-FPM và dùng trang bảo trì tĩnh.

Dùng PHP 8.1 hoặc cũ hơn thì làm sao?

PHP không còn phát hành bản cập nhật cho các phiên bản này. Có thể xin nhà cung cấp hosting bản vá backport, hoặc nâng cấp lên PHP 8.2 trở lên; nếu theme và plugin không tương thích, có thể cân nhắc chuyển thẳng sang website tĩnh.

Website tĩnh thật sự không tốn tiền?

Gói miễn phí của Cloudflare Pages, Vercel, Netlify, GitHub Pages đủ dùng cho website doanh nghiệp, chỉ cần trả phí tên miền.

Muốn thay website WordPress của doanh nghiệp? Liên hệ tôi

Bạn nên liên hệ tôi nếu:

  • website doanh nghiệp dùng WordPress, và đêm 21 tháng 10 không biết có nên đóng web không, nhờ ai vá;
  • máy chủ vẫn dùng PHP 8.1 hoặc cũ hơn;
  • hằng năm phải gia hạn hosting, máy chủ và trả phí bảo trì;
  • không liên lạc được với người làm website ngày trước, website không ai quản lý;
  • hướng đến thị trường Nhật Bản hoặc quốc tế, cần website đa ngôn ngữ như tiếng Nhật, tiếng Anh.

Tôi có thể chuyển website doanh nghiệp WordPress của bạn sang website tĩnh Astro: nhanh hơn, an toàn hơn, không phải gia hạn hosting và máy chủ hằng năm, commit xong tự động build và xuất bản, không phải tìm người bảo trì nữa.

Liên hệ tôi qua WeChat (757118) trên trang Giới thiệu hoặc X (@zhaoJianNet), gửi địa chỉ website và nhu cầu, tôi sẽ đưa ra phương án chuyển đổi cụ thể.

Tham khảo

Chia sẻ:

Bình luận