VnExpress Thứ sáu, 23/10/2026
Thứ năm, 22/10/2026, 23:44 (GMT+7)

Lỗ hổng bảo mật PHP: AI khiến điều bị lãng quên thành mối đe dọa

Việc phát hiện lỗ hổng PHP cho thấy cuộc đua bảo mật đang bước sang giai đoạn mới, khi khả năng phát hiện và khai thác lỗ hổng ngày càng nhanh chóng, nhưng việc khắc phục vẫn phụ thuộc vào hàng triệu hệ thống và nhiều tổ chức khác nhau.

Nếu các website không nhanh chóng cập nhật bản vá lỗi, tin tặc có thể khai thác các lỗ hổng bảo mật PHP để chiếm quyền điều khiển từ xa. Thiết kế: Ngô Hà

Ngày 21/10, nhiều cơ quan chính phủ, trường học và bệnh viện tại châu Âu đã chủ động ngắt kết nối hoặc tạm đóng cửa website do thông tin về hai lỗ hổng bảo mật nghiêm trọng trong ngôn ngữ lập trình PHP, ngôn ngữ của 70% số website, bị rò rỉ, trước khi các hệ thống kịp cập nhật bản vá.

Hai lỗ hổng bảo mật mang mã CVE-2026-109618 và CVE-2026-109619 được đánh giá ở mức nguy hiểm 9,2/10.

GS. Phan Dương Hiệu, trưởng nhóm An ninh mạng - Mật mã tại Trường Viễn thông thuộc Đại học Bách khoa Paris, Pháp, giải thích: "Các lỗ hổng này có thể bị truy vấn từ xa, không cần tài khoản đăng nhập mà vẫn có thể kiểm soát và lấy được dữ liệu trên máy chủ".

Các lỗ hổng được phát hiện từ tháng Tám. Trong khi nhóm chuyên gia bảo mật và đội ngũ phát triển PHP âm thầm chuẩn bị bản vá, thông tin về các lỗ hổng đã bị rò rỉ vào phút chót, khiến nhiều chính phủ lo ngại rằng tin tặc có thể lợi dụng AI để rút ngắn quá trình khai thác các lỗ hổng. Ước tính hiện có khoảng 1,5 triệu trong số 2,6 triệu máy chủ đang sử dụng phiên bản PHP chưa vá lỗi.

Trước nguy cơ này, cơ quan an ninh mạng các nước đồng loạt đưa ra hướng dẫn khẩn cấp: Tất cả các tổ chức đang sử dụng ngôn ngữ lập trình PHP cho hệ thống của mình cần cập nhật bản vá hoặc tạm thời ngắt kết nối mạng cho đến khi rủi ro được khắc phục hoàn toàn.

Vì sao lỗ hổng PHP nguy hiểm?

PHP là một ngôn ngữ lập trình kịch bản mã nguồn mở cho máy chủ, được phát triển từ đầu những năm 1990. Khi người dùng truy cập một website, máy chủ sẽ xử lý thông tin, truy xuất dữ liệu, xử lý thông qua những dòng mã PHP, rồi đưa kết quả đó dưới dạng HTML về trình duyệt của người dùng. Vì thế, một lỗ hổng nghiêm trọng trong PHP có khả năng ảnh hưởng đến nhiều hệ thống khác nhau, từ website đến các nền tảng quản trị.

Hai lỗ hổng CVE-2026-109618 và CVE-2026-109619 - mà giới bảo mật gọi là PHP2Shell - liên quan đến cách PHP quản lý bộ nhớ trong quá trình xử lý yêu cầu của người dùng.

Cụ thể, lỗ hổng CVE-2026-109618 liên quan đến tình huống "làm việc dở dang". Khi PHP đang làm việc mà bị hết bộ nhớ, nó buộc phải dừng đột ngột, các thao tác chưa được hoàn tất, dẫn đến các dữ liệu còn "dở dang". Khi hệ thống tiến hành "quét dọn" bộ nhớ tạm, nó đọc nhầm các dữ liệu "dở dang" thành dữ liệu chuẩn, gây rối loạn bộ nhớ. Kẻ tấn công có thể lợi dụng sự hỗn loạn để chèn lệnh độc hại vào hoặc chiếm quyền điều khiển chương trình từ xa.

Nói nôm na, điều này giống với một nhà hàng cạn nguyên liệu, buộc đầu bếp phải dừng nấu giữa chừng. Khi quay lại, nhân viên nhầm những thứ còn sót lại là nguyên liệu chuẩn và tiếp tục nấu. Kẻ xấu lợi dụng sơ hở này để đưa nguyên liệu giả, công thức giả vào, khiến nhà bếp vô tình thực hiện những thao tác nguy hiểm.

Lỗ hổng CVE-2026-109619 lại là tình huống "lấy nhầm đồ cũ". Khi PHP hết bộ nhớ, nó giải phóng vùng nhớ cũ để tiếp tục sử dụng nhưng lại quên xóa địa chỉ trỏ đến vùng nhớ đó. Khi có công việc mới, PHP vẫn tìm đến địa chỉ cũ để làm việc. Kẻ tấn công có thể lợi dụng việc PHP dùng lại vùng nhớ "ma" để thao túng cấu trúc bộ nhớ, và chiếm quyền điều khiển hệ thống.

Có thể hình dung tình huống này là khách A được phát thẻ bàn số 19 để gọi món. Sau khi khách rời đi, nhân viên thu hồi thẻ nhưng quản lý lại quên xóa thông tin thẻ khỏi hệ thống. Kẻ gian B lấy được thẻ cũ, ngồi vào bàn và giả làm khách A. Do hệ thống vẫn nhận diện thẻ số 19 là hợp lệ, B có thể lợi dụng sơ hở này để thực hiện những yêu cầu trái phép.

Các lỗi liên quan đến cạn bộ nhớ (out-of-memory, OOM) này đặc biệt khó xử lý vì chương trình có thể vẫn hoạt động bình thường sau khi lỗi xuất hiện.

Nắm bắt được điểm yếu đó, hacker có thể cố tình tạo ra các kịch bản bất thường để xáo trộn bộ nhớ, khiến hệ thống PHP hiểu sai dữ liệu và hành động mất kiểm soát. Khi chuỗi thao tác gài bẫy thành công, kẻ tấn công có thể ép máy chủ chạy các đoạn mã độc do chúng chỉ định.

Trong giới bảo mật, đây được gọi là lỗ hổng thực thi mã từ xa (RCE - remote code execution), một trong những loại lỗ hổng nguy hiểm nhất. Thay vì chỉ đánh cắp dữ liệu hoặc làm ngưng trệ website, RCE cho phép kẻ tấn công đoạt quyền điều khiển, biến máy chủ của nạn nhân thành "tay sai" để thực hiện mọi mệnh lệnh theo ý muốn.

AI giúp phát hiện lỗ hổng bị lãng quên trên con voi PHP

Một điểm đáng chú ý trong vụ PHP2Shell là vai trò của AI trong việc phát hiện lỗ hổng bảo mật. Công ty an ninh mạng Calif (do kỹ sư Dương Ngọc Thái dẫn dắt) sử dụng mô hình GPT-5.6 Sol của OpenAI, phát hiện vấn đề trước. Sau đó, Wiz (thuộc Google) tiếp tục tìm thêm lỗ hổng dựa trên Wiz Atlas, công cụ AI tự động nghiên cứu lỗ hổng do công ty họ phát triển, cùng với Gemini 4 Argon của Google và GPT-5.6 Sol.

Theo kỹ sư Dương Ngọc Thái, lỗ hổng cạn bộ nhớ thực ra đã tồn tại trong mã nguồn PHP - với biểu tượng chú voi màu xanh - từ cả thập kỷ. Nhưng phải đến năm 2026, khi OpenAI mở ra sáng kiến hỗ trợ các mã nguồn mở - trong đó PHP hết sức được quan tâm vì ngôn ngữ lập trình này có tác động lớn - thì các chuyên gia bảo mật mới nghiêm túc khai thác sâu vào vấn đề này.

Calif được mời tham gia chương trình của OpenAI. Họ đã bắt tay với chuyên gia bảo mật Stefan Esser và Volker Dusch, kỹ sư bảo mật của tổ chức quản lý dự án PHP, để cùng tìm lỗ hổng.

Trước đó, vào năm 2004, Stefan Esser đã phát hiện việc vượt quá giới hạn bộ nhớ trong PHP không chỉ gây sập nguồn, mà có thể bị lợi dụng để tấn công từ xa. Vấn đề này được mô tả nghiêm trọng đến mức Esser quyết định không công bố chi tiết mã khai thác để tránh bị hacker lợi dụng. Năm 2024, Quỹ cải tiến công nghệ mã nguồn mở OSTIF và công ty an ninh mạng Pháp Quarkslab cũng phát hiện lại chính vấn đề cạn bộ nhớ đó trong một cuộc kiểm toán PHP; tuy nhiên, vì chưa chứng minh được khả năng khai thác lỗ hổng và thấy rằng việc khắc phục sẽ rất phức tạp nên lỗi này vẫn được để nguyên đó.

Ban đầu, nhóm Calif cũng không kỳ vọng tìm ra lỗ hổng nghiêm trọng nào, bởi lâu nay nhiều người và nhiều phòng thí nghiệm đã dùng AI để kiểm tra ngôn ngữ lập trình PHP. Tuy nhiên, chỉ vài ngày sau, khi đặt đúng những câu hỏi liên quan đến các phát hiện cách đây hơn 20 năm của Stefan, các kỹ sư của Calif đã phát hiện lỗi cạn bộ nhớ đầu tiên.

Họ tiếp tục nghiên cứu và tìm thấy thêm hai lỗi có thể bị lợi dụng để thực hiện các cuộc tấn công nghiêm trọng hơn. Kỹ sư Ryan Austin của Calif đã dùng AI để chiếm quyền kiểm soát đoạn mã đang chạy trong máy tính chỉ bằng vài chục yêu cầu gửi đến một máy chủ sử dụng PHP. Với những hệ thống nhỏ, cuộc tấn công chỉ mất vài giây. Với các hệ thống phức tạp hơn, quá trình này có thể kéo dài hàng giờ.

Kỹ sư Dương Ngọc Thái cho biết, "nói chung OOM là khu vực tiềm ẩn vấn đề, tuy nhiên lỗ hổng được cho là quá khó khai thác nên phần lớn đã bị lãng quên". Trước khi có AI, công việc tìm lỗi thủ công sẽ khó thực hiện và thậm chí còn khó mở rộng quy mô hơn. Nhưng nhờ sử dụng mô hình AI tiên tiến của OpenAI, chỉ trong 20 ngày, Calif đã phát hiện ra nhiều con đường khác nhau để chiếm quyền điều khiển máy chủ từ xa một cách độc lập.

Vô tình tìm thấy

Nhóm Wiz cũng tìm ra hai lỗ hổng PHP2Shell nhưng lại theo một con đường hoàn toàn khác. Họ không trực tiếp tìm lỗi trong ngôn ngữ lập trình hay bộ xử lý PHP mà dùng AI để tìm cách chiếm quyền thực thi mã từ xa đối với Drupal - một hệ thống quản trị nội dung website (CMS) rất phổ biến, sử dụng PHP.

Số lượng website dùng Drupal không nhiều - chưa đầy 1% thị phần CMS trên toàn thế giới - nhưng thường được dùng cho các dự án bảo mật cao, nhiều vai trò người dùng, nội dung có cấu trúc phức tạp, đa ngôn ngữ và tích hợp hệ thống - ví dụ các cổng thông tin chính phủ, giáo dục đại học, doanh nghiệp lớn... Trên website của mình, Drupal cho biết 71% trong nhóm 100 trường đại học hàng đầu thế giới sử dụng nền tảng này.

Sagi Tzadik, đồng sáng lập của Wiz research, kể rằng yêu cầu đặt ra cho AI lúc đó chỉ là: "Hãy tìm xem có lỗi hỏng bộ nhớ [memory corruption] nào trong PHP có thể bị kích hoạt thông qua Drupal hay không?" Sau vài tiếng đồng hồ "cày cuốc", AI tìm ra một lỗ hổng. Nhóm nghiên cứu liền đố nó tiến thêm một bước, "có thể điều chỉnh cách khai thác lỗ hổng này để áp dụng cho WordPress được không?". WordPress cũng là một hệ thống CMS chạy trên PHP, có thị phần cao (gần 60%) và là lựa chọn hợp lý để xây dựng blog cá nhân, website doanh nghiệp, tạp chí trực tuyến và cửa hàng thương mại điện tử ở quy mô vừa và nhỏ mà không cần có đội ngũ lập trình viên.

AI tiếp tục tìm kiếm thêm khoảng tám giờ nữa và trả lời, "Không, tôi không thể áp dụng cách khai thác lỗ hổng này sang WordPress. Tuy nhiên, tôi đã tìm thấy một lỗ hổng tổng quát hơn có thể khai thác trên cả WordPress, Drupal và có lẽ bất kỳ ứng dụng PHP nào khác." Và về cơ bản, đó chính là PHP2Shell.

"Tức là ban đầu, chúng tôi chỉ muốn tìm lỗ hổng bộ nhớ PHP có thể được kích hoạt thông qua CMS, nhưng cuối cùng chúng tôi lại tìm thấy một lỗ hổng nghiêm trọng hơn nhiều", Sagi Tzadik nói.

Điều này chỉ ra rằng AI đang giúp con người nhìn kỹ hơn vào những lớp mã mà trước đây rất khó rà soát. Ami Luttwak, đồng sáng lập Wiz, cho biết PHP2Shell là "lỗ hổng nghiêm trọng nhất từng được AI phát hiện", đồng thời có độ phức tạp đến mức nhiều khả năng sẽ không được phát hiện nếu thiếu AI.

Giữ bí mật đến phút cuối nhưng không thành

Ngay khi tìm ra lỗ hổng, Calif, Wiz và các kỹ sư phần mềm PHP đã thành lập một nhóm làm việc không chính thức để vá lỗ hổng PHP2Shell, đồng thời ngăn chặn việc khai thác lỗ hổng.

Kỹ sư Dương Ngọc Thái và các nhà nghiên cứu khác giữ kín thông tin về lỗ hổng trong suốt quá trình tìm cách khắc phục, vì lo ngại một hacker sử dụng AI có thể phát hiện và khai thác nó trước khi các bản vá hoàn tất.

Cuối cùng, ngày phát hành bản vá được ấn định là 22/10. Nhưng điều trớ trêu đã xảy ra, tin về bản vá bị rò rỉ vào hôm 21/10, qua một bài đăng trên Hacker News. Thông tin đăng rất đơn giản, chỉ thông báo về ngày phát hành, các phiên bản PHP bị ảnh hưởng và mã lỗi. Nhưng nó đã nhanh chóng lan truyền qua X và nhiều mạng xã hội khác. Đặc biệt, một vài bài đăng trên Twitter đã sử dụng AI để tái hiện lỗ hổng này, kèm theo video chi tiết.

Samueloph, một người dùng trên Hacker News, bày tỏ sự ngỡ ngàng: "Việc quyết định công bố theo cách này thật điên rồ, nó như một lời mời gọi mọi người sử dụng phần mềm độc hại của mình để tìm ra lỗ hổng và khai thác nó, trong khi không ai được phép vá lỗi cho đến ngày mai!"

Trước tình huống mất kiểm soát, nhóm của Volker Dusch chỉ còn cách đẩy nhanh việc phát hành bản vá. Họ lập tức tung ra các bản cập nhật bảo mật ngay trong ngày 21/10 và kêu gọi mọi người "Hãy vá lỗi ngay! Càng sớm càng tốt". Trên trang chủ của mình, PHP nhấn mạnh "Không có biện pháp khắc phục triệt để nào, cập nhật là lựa chọn an toàn duy nhất".

Volker Dusch hy vọng hành động khẩn cấp này có thể "vừa giúp những người bảo vệ hệ thống có thể kịp chuẩn bị, vừa không cho kẻ tấn công quá nhiều thời gian để phát triển công cụ khai thác lỗ hổng". Đó là lý do mà tối ngày 21, rạng sáng ngày 22/10 theo giờ Việt Nam, hàng loạt chính phủ châu Âu đã lập tức ra quyết định ngắt kết nối website để rà soát bảo mật và nâng cấp.

Dusch gọi đây là vấn đề bảo mật nghiêm trọng nhất mà PHP phải đối mặt trong hơn một thập kỷ qua. Ông so sánh nó với Heartbleed, một lỗ hổng bảo mật lan rộng tương tự đã buộc cả thế giới phải chạy đua để bảo vệ hàng trăm nghìn máy chủ hơn một thập kỷ trước.

Thách thức của tương lai

AI đang thay đổi cách đánh giá rủi ro bảo mật: một lỗ hổng trước đây được cho là khó khai thác nay có thể trở thành mối đe dọa thực sự nhờ AI, kỹ sư Dương Ngọc Thái cảnh báo.

Trước đây, việc khai thác lỗ hổng có thể đòi hỏi nhiều thời gian và công sức của tin tặc. Nếu quá trình này kéo dài, người thực hiện có thể bỏ cuộc vào một lúc nào đó - giống như những gì đã xảy ra trong cuộc kiểm toán PHP năm 2024. Nhưng nếu máy làm có thể làm việc đó dễ dàng và nhanh chóng thì quy mô khai thác và tấn công sẽ tăng vọt theo cấp số nhân.

Hơn nữa, sự tham gia của các tác tử AI (AI Agent) đang cuốn câu chuyện đi xa hơn. Các tác tử có khả năng tự động thiết lập môi trường thử nghiệm (lab), kiểm tra mã khai thác trên máy cục bộ, và thậm chí tự phát hiện và sửa lỗi khi triển khai thực tế trên Internet. Chuyên gia chỉ cần phân công các tác tử là có ngay mã khai thác cho các phiên bản PHP khác nhau trong vòng vài tuần, thậm chí vài ngày.

Vấn đề là việc vá lỗi thường lâu hơn khai thác lỗi, vì thế giới thực của chúng ta đã xây dựng đan xen rất nhiều hệ thống, phần mềm, phiên bản, nhà phát hành, doanh nghiệp, người dùng... Để vá lỗi, cần sự phối hợp nhịp nhàng của tất cả các bên. Đây là một thách thức hậu cần khổng lồ khi phải vá lỗi cho 70% số trang web trên toàn cầu.

Kỹ sư Dương Ngọc Thái cho biết, sau khi phát hiện lỗi, nhóm nghiên cứu mất vài ngày xây dựng mã khai thác mẫu để chứng minh mức độ nghiêm trọng, thuyết phục Quỹ PHP bắt tay xử lý. Các bên sau đó lập kênh liên lạc riêng, tổ chức họp cập nhật tiến độ hằng ngày và tập trung khắc phục nguyên nhân gốc rễ trong cơ chế xử lý lỗi của PHP.

Quá trình kiểm thử được tiến hành song song với việc viết bản vá. Các nhóm nghiên cứu sử dụng tác nhân AI để rà soát nhiều biến thể của lỗ hổng, kiểm tra xem bản vá có bỏ sót lỗi hoặc gây ra sự cố mới hay không. Khi mã nguồn PHP được cập nhật, các nhà phân phối như Linux, nhà cung cấp dịch vụ đám mây và nền tảng như WordPress, Drupal tiếp tục điều chỉnh, đóng gói và phân phối bản vá đến người dùng. Trong thời gian chờ các hệ thống cập nhật, các nhà cung cấp tường lửa ứng dụng web phải triển khai quy tắc chặn tấn công, tạo thêm lớp bảo vệ tạm thời. Mục tiêu là thu hẹp tối đa khoảng thời gian kẻ tấn công có thể lợi dụng lỗ hổng trước khi bản vá được phổ biến rộng rãi.

"Tôi nghĩ rằng có rất nhiều điều đã xảy ra trong quá trình công bố này mà các nhà cung cấp khác thực sự có thể học hỏi từ đó. Hôm nay là PHP, ngày mai là một phần mềm mã nguồn mở rất phổ biến khác", kỹ sư Dương Ngọc Thái kết luận.

Anh luôn băn khoăn, điều gì sẽ xảy ra nếu ai đó, nếu một kẻ xấu phát hiện ra các lỗ hổng này trong khi chúng ta đang chờ các bản vá lỗi ra mắt.

Phong Du tổng hợp

Tài liệu tham khảo:

[1] Calif (21/10/2026), A tale of two PHP remote vulnerabilities, https://calif.io/php2shell/?#an-interesting-timeline-of-events

[2] Wiz, (21/10/2026), PHP2Shell: AI uncovers critical RCE vulnerabilities affecting 70% of the Internet, https://www.wiz.io/blog/php2shell-php-rce

[3] PHP (21/10/2026), Security advisory: Critical remote code execution vulnerabilities, update now, https://www.php.net/archive/2026.php#2026-10-21-5

[4] Wiz (21/10/2026), Breaking Down PHP2Shell with Sagi Tzadik & Thai Duong, https://www.wiz.io/crying-out-cloud/breaking-down-php2shell-with-sagi-tzadik-and-thai-duong

[5] The Wall Street Journal (21/10/2026), AI Just Found a Bug That Puts up to 70% of the World’s Websites at Risk, https://www.wsj.com/tech/cybersecurity/ai-just-found-a-bug-that-puts-up-to-70-of-the-worlds-websites-at-risk-fd0902ea

[6] Reuters (21/10/2026), Government websites go dark after AI-discovered flaw sparks security scramble, https://www.reuters.com/world/asia-pacific/eu-agency-warns-websites-may-need-be-taken-offline-php-prepares-patches-2026-10-21/