PHP2Shell là tên của hai lỗ hổng nghiêm trọng trong PHP, có thể cho phép kẻ tấn công chạy mã trên máy chủ mà không cần biết mật khẩu nào. Nếu website của bạn chạy trên hệ thống dựa trên PHP như WordPress, nó có thể gặp rủi ro. Cách khắc phục không phải là cập nhật WordPress mà là cập nhật PHP trên máy chủ: phiên bản 8.5.12, 8.4.27, 8.3.36, 8.2.35 hoặc mới hơn, và được nhà cung cấp hosting xác nhận.
Hai ngày qua, "PHP" xuất hiện khắp nơi trên báo. Ở Hà Lan, DigiD, cổng đăng nhập dịch vụ công của người dân, bị ngừng hoạt động. Ở Phần Lan, một số website chính phủ được tạm tắt để phòng ngừa. Ở Mỹ, FBI và NSA kêu gọi các tổ chức tắt máy chủ nếu chưa thể vá lỗi. Ở Thổ Nhĩ Kỳ, Cục An ninh mạng thuộc Phủ Tổng thống đã bắt đầu rà soát trên toàn quốc.
Trong bài viết này, chúng tôi giải thích chuyện gì đã xảy ra mà không làm bạn ngợp trong chi tiết kỹ thuật. Sau đó, từng bước một, chúng tôi hướng dẫn cách một đơn vị tour biết website của mình có bị ảnh hưởng không, cần làm gì ngay hôm nay và cách chuẩn bị tốt hơn cho lần sau.
Trước hết: PHP là gì?
PHP là một ngôn ngữ lập trình chạy phía sau nhiều website. Khi khách mở website của bạn, đoạn mã dựng trang, chuyển biểu mẫu liên hệ thành email hay lưu đơn đặt tour vào cơ sở dữ liệu thường được viết bằng PHP.
Dù chưa từng nghe đến, nhiều khả năng bạn vẫn đang dùng nó ở đâu đó. WordPress, WooCommerce, Joomla, Drupal và nhiều plugin đặt chỗ có sẵn đều chạy bằng PHP. Theo FBI, khoảng 70% website trên thế giới sử dụng PHP.
Chuyện gì đã xảy ra?
Ngày 20–21 tháng 10 năm 2026, đội ngũ PHP đã phát hành bản cập nhật khẩn cấp cho hai lỗ hổng bảo mật nghiêm trọng. Chúng được ghi nhận là CVE-2026-109618 và CVE-2026-109619, gọi chung là "PHP2Shell". Cả hai đều có điểm mức độ nghiêm trọng 9,2/10.
Vì sao nghiêm trọng: trong một số điều kiện nhất định, các lỗ hổng này cho phép kẻ tấn công chạy bất kỳ mã nào trên máy chủ của bạn qua internet, không cần tên đăng nhập hay mật khẩu. Trong bảo mật, điều này gọi là thực thi mã từ xa (RCE). Nói đơn giản: ai đó có thể vào nhà bạn mà không cần chìa khóa.
Theo Qualys, một lỗ hổng xảy ra khi dữ liệu bị bỏ dở vì máy chủ hết bộ nhớ, lỗ hổng còn lại xảy ra khi sau một lỗi, yêu cầu của khách truy cập tiếp theo đọc lại vùng bộ nhớ đã được giải phóng. Các nhà nghiên cứu cũng cho thấy dữ liệu như mật khẩu, thông tin phiên đăng nhập và khóa API có thể bị rò rỉ từ bộ nhớ máy chủ.
Hãng thông tấn Anadolu cho biết các lỗ hổng được công ty bảo mật Calif phát hiện vào tháng 8 với sự hỗ trợ của AI. Bản sửa lỗi được chuẩn bị âm thầm trong khoảng hai tháng, nhưng tin tức đã bị lộ ra báo chí một ngày trước khi bản vá được phát hành.
Vì sao đây là chuyện lớn?
- Quy mô rất lớn: Palo Alto Networks phát hiện hơn 22,6 triệu hệ thống kết nối internet có khả năng bị ảnh hưởng.
- Phiên bản cũ có mặt khắp nơi: theo Qualys, 71% bản cài PHP có phiên bản xác định đang dùng phiên bản đã hết hỗ trợ, không còn nhận bản vá thường xuyên.
- Tấn công đã bắt đầu: Cloudflare ghi nhận lưu lượng tấn công nhắm vào các lỗ hổng này, và mã khai thác đã được lan truyền.
- Việc vá lỗi diễn ra chậm: trong 12 giờ đầu, chỉ khoảng 199.000 trên 167 triệu bản cài mà Qualys theo dõi đã được cập nhật.
Đó là lý do các chính phủ tạm tắt website. Khi hệ thống chưa được vá, cách an toàn nhất là đóng cánh cửa mà kẻ tấn công có thể đi qua. Ở Thổ Nhĩ Kỳ, Cục An ninh mạng đã gửi thông báo khẩn tới các cơ quan nhà nước và kêu gọi doanh nghiệp tư nhân kiểm tra hệ thống PHP. Cục cho biết không phát hiện sự cố nào ảnh hưởng đến dịch vụ trên e-Devlet, cổng dịch vụ công quốc gia.
Điều này có thể ảnh hưởng gì đến đơn vị tour?
Kẻ tấn công làm được gì khi vào được bên trong phụ thuộc vào những gì website của bạn lưu trữ. Các tình huống dễ xảy ra nhất:
- Rò rỉ dữ liệu khách hàng: họ tên, số điện thoại, email và thông tin hộ chiếu từ biểu mẫu đặt tour. Tùy nơi bạn và khách của bạn ở, các quy định bảo vệ dữ liệu như GDPR có thể yêu cầu bạn phải thông báo.
- Mất mật khẩu và khóa: mật khẩu cơ sở dữ liệu và khóa API của cổng thanh toán, channel manager hoặc dịch vụ email.
- Nội dung độc hại trên website: trang spam ẩn hoặc mã chuyển hướng khách sang trang khác. Nếu Google phát hiện, website có thể hiển thị kèm cảnh báo và nhiều tháng làm SEO có thể bị ảnh hưởng.
- Máy chủ bị dùng vào việc khác: đào tiền mã hóa, gửi thư rác hoặc tấn công website khác.
- Mất doanh thu: nếu phải tạm tắt website để phòng ngừa, bạn sẽ không nhận được đơn đặt tour, kể cả giữa mùa cao điểm.
Website của bạn có bị ảnh hưởng không? Hãy kiểm tra phiên bản trước
Bước đầu tiên là biết website có chạy PHP không và đang dùng phiên bản nào. Trên WordPress, vào Công cụ → Tình trạng trang web → Thông tin → Máy chủ trong trang quản trị. Bảng điều khiển hosting (cPanel, Plesk…) thường cũng hiển thị ở mục "Phiên bản PHP".
Các phiên bản đã khắc phục lỗ hổng:
- PHP 8.5: 8.5.12 trở lên
- PHP 8.4: 8.4.27 trở lên
- PHP 8.3: 8.3.36 trở lên
- PHP 8.2: 8.2.35 trở lên
- PHP 8.1 trở xuống: không có bản cập nhật chính thức thông thường. Nếu nhà cung cấp hosting chưa áp dụng bản vá đặc biệt, bạn cần chuyển lên phiên bản mới hơn.
Lưu ý: một số bản phân phối Linux phát hành bản sửa lỗi nhưng vẫn giữ số phiên bản cũ. Vì vậy số phiên bản thấp không phải lúc nào cũng có nghĩa website chắc chắn bị lỗ hổng. Cách đáng tin cậy nhất là hỏi trực tiếp nhà cung cấp hosting.
Việc cần làm hôm nay
- Nhắn cho nhà cung cấp hosting và hỏi: "PHP trên máy chủ của tôi đã được cập nhật để khắc phục PHP2Shell (CVE-2026-109618 và CVE-2026-109619) chưa?" Câu trả lời "Chúng tôi đã thêm quy tắc tường lửa" là chưa đủ. Hãy xác nhận rằng chính PHP đã được cập nhật.
- Hiểu rằng cập nhật WordPress không giải quyết được: lỗ hổng không nằm trong WordPress mà trong PHP chạy bên dưới. Cập nhật plugin hay giao diện, plugin bảo mật hay chế độ bảo trì đều không bảo vệ được bạn, vì cuộc tấn công có thể chạy trước cả khi WordPress được tải.
- Nếu bạn có máy chủ riêng (VPS): cập nhật các gói PHP rồi khởi động lại PHP-FPM hoặc Apache. Máy chủ chưa khởi động lại vẫn tiếp tục chạy mã cũ có lỗ hổng. Nếu dùng Docker, hãy kéo image mới và tạo lại các container.
- Nếu bạn đang dùng phiên bản cũ: sao lưu toàn bộ và lưu bên ngoài máy chủ, rồi chuyển lên PHP 8.3 hoặc 8.4. Sau đó kiểm tra lần lượt trang chủ, các trang tour, biểu mẫu liên hệ và các bước đặt tour.
- Nếu chưa thể vá ngay: đặt website sau một tường lửa như Cloudflare sẽ giúp bảo vệ tạm thời. Nếu có đội kỹ thuật, họ có thể áp dụng các thiết lập tạm thời mà PHP khuyến nghị (ví dụ session.upload_progress.enabled=0). Đây không phải giải pháp hoàn chỉnh, chỉ giúp bạn có thêm thời gian.
Đã có ai xâm nhập chưa? Các dấu hiệu cần kiểm tra
Sau khi vá, nên kiểm tra xem có ai đã vào được trước khi lỗ hổng được đóng lại không:
- Trong WordPress có tài khoản quản trị nào bạn không nhận ra không?
- Có plugin nào xuất hiện mà bạn không cài không?
- Có tệp .php nào trong wp-content/uploads, thư mục chứa hình ảnh không? Ở đó không nên có tệp PHP nào.
- Khi tìm site:tenmiencuaban.com trên Google, có xuất hiện trang nào bạn chưa từng viết không?
- Có cảnh báo nào trong mục "Vấn đề bảo mật" của Google Search Console không?
- Nhà cung cấp hosting có gửi cảnh báo về mã độc, thư rác hay mức dùng tài nguyên bất thường không?
Nếu thấy bất kỳ dấu hiệu nào, hãy yêu cầu nhà cung cấp hosting quét máy chủ và khôi phục bản sao lưu sạch từ trước thời điểm có hoạt động đáng ngờ. Sau đó đổi toàn bộ mật khẩu và khóa API: WordPress, hosting, cơ sở dữ liệu, email, cùng các tích hợp thanh toán hoặc kênh bán. Nếu dữ liệu khách hàng có thể đã bị lộ, hãy tham khảo ý kiến chuyên gia pháp lý về nghĩa vụ của bạn.
Về lâu dài: các biện pháp phòng ngừa bền vững
PHP2Shell sẽ không phải là lỗ hổng cuối cùng. Câu hỏi thực sự là lần sau bạn sẽ sẵn sàng đến đâu. Những thói quen chúng tôi khuyên dùng:
- Dùng phiên bản còn được hỗ trợ: phần mềm hết hỗ trợ sẽ không nhận bản vá. Hiện nay, PHP 8.3 hoặc 8.4 là lựa chọn tốt.
- Giao trách nhiệm cập nhật cho một người cụ thể: ai cập nhật website của bạn và bao lâu một lần? Câu trả lời phải rõ ràng. Hosting có quản lý hoặc hợp đồng bảo trì là cách đơn giản để ghi rõ điều này.
- Biết mình đang có gì: website chính, trang chiến dịch cũ, bản cài thử nghiệm, tên miền phụ bị bỏ quên… Hãy lập danh sách kèm máy chủ và phiên bản của từng cái. Kẻ tấn công rất thích những website bị bỏ quên.
- Xóa những gì không cần: gỡ plugin, giao diện và website cũ không dùng. Mỗi phần thừa là thêm một cánh cửa mà lỗ hổng có thể mở ra.
- Đặt website sau tường lửa: một dịch vụ như Cloudflare sẽ là tuyến phòng thủ đầu tiên khi có lỗ hổng mới được công bố, cho đến khi bạn vá xong.
- Tách riêng mật khẩu và khóa: không viết khóa API vào mã nguồn, chỉ cấp cho mỗi dịch vụ quyền cần thiết và đổi khóa định kỳ.
- Lưu bản sao lưu bên ngoài máy chủ và thử khôi phục: bản sao lưu chưa từng được khôi phục là bản sao lưu bạn không chắc có dùng được.
- Theo dõi website: giám sát thời gian hoạt động, thông báo từ Search Console và cảnh báo thay đổi tệp giúp bạn phát hiện sự cố trước khi khách nhận ra.
- Viết một kế hoạch xử lý sự cố ngắn: quyết định trước sẽ gọi cho ai, tạm tắt website thế nào và thông báo cho khách ra sao khi có sự cố.
Bức tranh lớn hơn: lỗ hổng được tìm ra ngày càng nhanh
Điểm đáng chú ý nhất của câu chuyện này là các lỗ hổng được tìm ra nhờ AI. Những công cụ tương tự cũng nằm trong tay những người có ý đồ xấu. Từ nay, lỗ hổng sẽ được tìm ra nhanh hơn và bị khai thác nhanh hơn.
Điều đó có nghĩa thời của "khi nào rảnh thì cập nhật" đã qua. Với một đơn vị tour, website không còn chỉ là tủ kính trưng bày. Đó là công cụ kinh doanh nhận đặt chỗ và lưu dữ liệu khách hàng, nên giữ cho nó an toàn cũng là giữ cho việc kinh doanh vận hành liên tục.
Tại Monotim, chúng tôi xây dựng website trên nền tảng hiện đại không bị ảnh hưởng trực tiếp bởi kiểu lỗ hổng ngôn ngữ phía máy chủ này. Nhưng không công nghệ nào an toàn mãi mãi. Điều thực sự tạo nên khác biệt là theo dõi website thường xuyên và có thể xử lý nhanh khi có sự cố.
Nếu bạn chưa chắc website của mình có bị PHP2Shell ảnh hưởng không, hoặc nhà cung cấp hosting chưa trả lời rõ ràng, chúng ta có thể cùng xem xét.
Nguồn tham khảo
- PHP Announces Critical Security Release for Two Vulnerabilities (PHP2Shell), Qualys (blog.qualys.com)
- Threat Brief: Critical Vulnerabilities in PHP, Palo Alto Networks Unit 42 (unit42.paloaltonetworks.com)
- Responding to core PHP vulnerabilities CVE-2026-109618 and CVE-2026-109619, Google Cloud (cloud.google.com)
- Hundreds of websites taken offline as concern grows over two PHP vulnerabilities, The Record (therecord.media)
- Dünya çapında PHP kaynaklı güvenlik açığının giderilmesi için çok sayıda internet sitesi erişime kapatıldı, Anadolu Ajansı (aa.com.tr)
- PHP2Shell: what it is, and what to do on your WordPress site, Meow Apps (meowapps.com)
Lịch sử cập nhật
- Hiện tại
Đăng lần đầu.