Nội dung bài viết
Ngày 26/10/2026, nhóm nghiên cứu Unit 42 của Palo Alto Networks xác nhận lỗ hổng CVE-2026-102785 (CVSS 10.0) trong YOOtheme Pro đang bị khai thác ngoài thực tế. Kẻ tấn công không cần đăng nhập vẫn ghi được file PHP lên máy chủ, tức thực thi mã từ xa (RCE) và chiếm toàn quyền website.
YOOtheme Pro là theme kèm trình dựng trang (page builder) rất phổ biến, có cả bản cho WordPress và Joomla. Lỗ hổng ảnh hưởng YOOtheme Pro 5.0.0 tới 5.0.52 trên cả hai nền tảng và đã được vá ở 5.0.53 (phát hành ngày 21/10/2026). Theo YOOtheme, bản 4 trở về trước không bị ảnh hưởng.
Website WordPress cũng bị ảnh hưởng: hồ sơ CVE chỉ ghi "YOOtheme Pro extension for Joomla", nhưng changelog chính thức của YOOtheme ghi bản vá này không gắn nhãn riêng cho Joomla hay WordPress, nghĩa là áp dụng cho cả hai. YOOtheme cũng phát hành bản 5.0.53 cho WordPress, và Unit 42 đã phát hiện webshell trong thư mục
wp-content/uploads/của các website WordPress bị tấn công.
Quan trọng: cập nhật lên 5.0.53 chỉ chặn lỗ hổng, không gỡ được backdoor đã bị cài. Nhiều website đã bị tấn công từ trước khi bản vá ra, nên chỉ cập nhật là chưa đủ.
Nguyên nhân
YOOtheme Pro có một đường dẫn công khai để xử lý và lưu cache ảnh (thay đổi kích thước, cắt ảnh...). Ai truy cập website cũng gọi được đường dẫn này mà không cần đăng nhập. Mỗi yêu cầu xử lý ảnh có kèm chữ ký để chống giả mạo, nhưng chữ ký không ràng buộc chặt các thao tác xử lý và vị trí lưu file đầu ra.
Kẻ tấn công lợi dụng điều này như sau:
- Lấy một URL ảnh đã có chữ ký hợp lệ từ chính website mục tiêu.
- Thêm các thao tác khác vào yêu cầu. Theo phân tích của một website bị hack, đó là tham số
FROMFILEđể tải file từ máy chủ bên ngoài vàSAVEđể lưu với tên và đuôi file tùy chọn. - Ghi một file vừa là ảnh PNG hợp lệ vừa chứa mã PHP (file "polyglot") vào thư mục ảnh công khai, nơi máy chủ cho phép chạy PHP.
- Truy cập file đó để chạy mã, cài webshell và điều khiển website.
Mã độc được giấu trong metadata của ảnh, nên vẫn tồn tại sau khi ảnh bị xử lý lại.
Diễn biến
| Thời điểm | Sự kiện |
|---|---|
| 20/10 | YOOtheme báo trước sẽ phát hành bản cập nhật bảo mật quan trọng |
| 21/10, sáng | Website đã bị khai thác dù bản vá chưa ra |
| 21/10, ~15h (giờ châu Âu) | YOOtheme phát hành 5.0.53, sớm hơn 1 giờ so với kế hoạch |
| 22/10 | CVE-2026-102785 được công bố |
| 23/10 | Xuất hiện mã khai thác mẫu (PoC) công khai |
| 26/10 | Unit 42 xác nhận các đợt tấn công tự động trên diện rộng |
Theo Unit 42, công cụ quét tự động thả file độc, kiểm tra kết quả trong khoảng 3 giây. Khoảng 2 phút sau, một người điều khiển trực tiếp tải lên webshell ALFA Team và thử cài công cụ truy cập từ xa gsocket.
Một website bị hack như thế nào?
Peter Martin, chuyên gia Joomla tại công ty db8 (Hà Lan), đã công bố chi tiết vụ một website do ông quản lý bị hack qua lỗ hổng này. Đây là bài học rất thực tế:
- 8h44 ngày 21/10, kẻ tấn công cài webshell vào thư mục
/images/, khoảng 6 giờ trước khi bản vá ra. - Ông cập nhật lên 5.0.53 lúc 15h11 cùng ngày, nhưng backdoor đã nằm sẵn trên máy chủ và tiếp tục được dùng từ nhiều IP.
- Trong ngày 22/10, ít nhất 3 nhóm hacker tranh nhau chiếm website: nhóm sau xóa webshell của nhóm trước để cài của mình.
- Tổng cộng có khoảng 15 webshell và backdoor, các payload mã hóa giả dạng file
.png,.jpg,.mp3, khoảng 5.600 file.htaccess, fileindex.phpbị thay vàrobots.txtbị sửa. - Mục đích: SEO spam kiểu "cloaking". Khách truy cập thường vẫn thấy website bình thường, nhưng Googlebot và Bingbot nhận về các trang spam tiếng Nhật của một cửa hàng giả.
Cả hai bản sao lưu ngày 21/10 đều đã chứa backdoor. Ông phải khôi phục từ bản sao lưu ngày 13/10 vào một thư mục web trống, chép tay các bài viết mới, rồi đổi toàn bộ mật khẩu và khóa bí mật (database, Joomla secret, FTP, SMTP...).
Cần làm gì?
1. Cập nhật ngay
Cập nhật YOOtheme Pro lên 5.0.53 hoặc mới hơn:
- WordPress: vào Giao diện → Giao diện (Appearance → Themes) hoặc Bảng tin → Cập nhật để xem phiên bản và cập nhật theme YOOtheme. Theme cần có API key hợp lệ trong cài đặt YOOtheme để nhận bản cập nhật tự động; nếu không, tải bản mới từ tài khoản yootheme.com và cài đè.
- Joomla: vào Extensions → Manage, tìm "yootheme". Sẽ có 2 dòng (template và system plugin), cập nhật sản phẩm sẽ cập nhật cả hai.
2. Kiểm tra dấu hiệu bị xâm nhập
Nếu website chạy YOOtheme Pro 5 trước ngày 21/10, hãy giả định có thể đã bị tấn công và kiểm tra:
- log máy chủ có request chứa
FROMFILEhoặcSAVE(YOOtheme khuyến nghị tìm thêmyoothemevàcache); - file PHP lạ trong thư mục ảnh và cache: với WordPress là
wp-content/uploads/(kể cả thư mục cache của YOOtheme bên trong); với Joomla là/images/,/media/, đặc biệt làmedia/yootheme/cache; - file có tên dạng
yt+ 7 ký tự hex, thư mụcALFA_DATA; - số lượng file
.htaccesstăng bất thường;index.phpvàrobots.txtbị sửa; - tìm
site:tenmien.comtrên Google xem có trang spam lạ (tiếng Nhật, hàng hiệu, cờ bạc...) không; - truy cập từ địa chỉ IP
168.144.251.199mà Unit 42 công bố.
3. Nếu phát hiện webshell
- Coi toàn bộ máy chủ đã bị chiếm quyền, không chỉ xóa vài file lạ.
- YOOtheme khuyên khôi phục bản sao lưu từ ngày 19/10 trở về trước (hoặc trước request đáng ngờ đầu tiên), sau đó cập nhật ngay.
- Đổi tất cả mật khẩu và khóa bí mật: database, tài khoản quản trị, FTP/SSH, SMTP, API.
- Kiểm tra Google Search Console: xóa chủ sở hữu và sitemap lạ, xem mục Vấn đề bảo mật. Trả mã 410 cho các URL spam để Google gỡ nhanh hơn.
- Nếu website lưu dữ liệu cá nhân của khách hàng, cân nhắc nghĩa vụ thông báo vi phạm dữ liệu theo quy định.
4. Gia cố lâu dài
- Chặn chạy PHP trong thư mục upload như
/images/,/media/,wp-content/uploads/. Lưu ý: máy chủ nginx bỏ qua file.htaccess, phải cấu hình trực tiếp trong nginx. - Phân quyền chuẩn: thư mục
755, file644, file cấu hình444. - Theo dõi file PHP mới xuất hiện và thay đổi của mã nguồn lõi, dùng tường lửa ứng dụng web (WAF).
- Giữ bản sao lưu đủ xa (vài tuần) và lưu ở ngoài máy chủ. Vụ việc trên cho thấy bản sao lưu gần nhất có thể đã nhiễm mã độc.
Cần hỗ trợ cập nhật và bảo vệ website?
Không phải doanh nghiệp nào cũng có sẵn đội kỹ thuật để theo dõi cảnh báo và xử lý ngay khi website bị cài mã độc như trên. Với dịch vụ Bảo trì & Hỗ trợ kỹ thuật, Web99 giúp bạn:
- quét lỗ hổng và cập nhật bản vá khi có mối đe dọa mới;
- nâng cấp theme, plugin, extension để website luôn tương thích và an toàn;
- theo dõi tình trạng server/hosting và sao lưu dữ liệu định kỳ;
- hỗ trợ kỹ thuật 24/7, ưu tiên xử lý các sự cố khẩn cấp như sập web, lỗi thanh toán hay bị tấn công mạng.
Nguồn tham khảo: YOOtheme Changelog, Daily CyberSecurity, db8 Website Support và mySites.guru.