- Plugin Breeze Cache của Cloudways dính lỗ hổng upload file tùy ý không cần xác thực (CVSS 9.8).
- Hacker đã bắt đầu tấn công hàng loạt — update lên 2.4.5 hoặc tắt 'Host Files Locally' ngay hôm nay.
TL;DR
CVE-2026-3844 là một lỗ hổng unauthenticated arbitrary file upload trong plugin Breeze Cache (Cloudways) cho WordPress. Điểm CVSS 9.8/10 — mức Critical. Ảnh hưởng 400.000+ site đang chạy Breeze ≤ 2.4.4. Wordfence đã ghi nhận 170+ lần khai thác trong thực tế ngay trong tuần công bố. Fix: cập nhật lên Breeze 2.4.5 hoặc tắt tùy chọn Host Files Locally — Gravatars.
Chuyện gì đang xảy ra
Ngày 23/04/2026, Cloudways phát hành Breeze 2.4.5 để vá một lỗ hổng nghiêm trọng cho phép kẻ tấn công tải webshell lên máy chủ mà không cần đăng nhập. Lỗi được phát hiện bởi nhà nghiên cứu bảo mật Hung Nguyen (bashu) và công bố qua advisory của Wordfence.
Breeze là một trong những plugin cache phổ biến nhất của hệ sinh thái WordPress — được Cloudways bundle sẵn, có 400.000+ cài đặt đang hoạt động. Chỉ vài ngày sau khi patch ra, mới khoảng 138.000 site đã update — tức còn ~260.000 site vẫn đang mở cho attacker.
Kỹ thuật: lỗi nằm ở đâu
- CVE: CVE-2026-3844
- CVSS v3.1: 9.8 (Critical)
- CWE: CWE-434 — Unrestricted Upload of File with Dangerous Type
- Component: hàm
fetch_gravatar_from_remote() - Phiên bản dính lỗi: mọi bản ≤ 2.4.4
- Phiên bản vá: 2.4.5
Hàm fetch_gravatar_from_remote() có nhiệm vụ tải ảnh gravatar từ remote URL về lưu cục bộ khi người dùng bật tùy chọn Host Files Locally — Gravatars. Vấn đề: hàm này không validate MIME type, không giới hạn extension, và không kiểm tra nội dung file thực tế. Kết quả: attacker gửi request chỉ đến endpoint gravatar fetch với URL trỏ đến một file .php do họ kiểm soát, file PHP đó được tải về và lưu thẳng vào thư mục uploads của WordPress — sẵn sàng thực thi.
Đang bị khai thác ra sao
Wordfence đã quan sát 170+ lần tấn công trong thực tế chỉ trong vài ngày đầu sau khi public disclosure. Đây là kịch bản khai thác điển hình:
- Attacker scan internet tìm các site có Breeze plugin bật Host Files Locally — Gravatars.
- Gửi request không xác thực đến endpoint gravatar, URL trỏ đến PHP shell trên server của họ.
- Breeze tải file, lưu vào
wp-content/uploads/breeze/(hoặc thư mục gravatar cache). - Attacker gọi trực tiếp URL file PHP vừa upload → RCE → full site takeover.
Hậu quả thường thấy: ăn cắp credential admin, dump database, inject SEO spam, pivot lên tài khoản hosting, cài persistent backdoor.
Ai đang có nguy cơ
- Site WordPress chạy Breeze ≤ 2.4.4 và đã bật Host Files Locally — Gravatars trong settings.
- Tùy chọn này mặc định TẮT, nhưng thường được bật bởi: site ưu tiên privacy/GDPR, admin tuning performance, hoặc các cấu hình do hosting auto-enable.
- Site hosted trên Cloudways có mật độ Breeze cao hơn mặt bằng chung.
- WooCommerce store có traffic cao đang dùng Breeze để cache page.
Cách fix ngay (2 phút)
Ưu tiên 1 — Update plugin:
# Qua WP-CLI
wp plugin update breeze
# Hoặc vào Plugins → Installed Plugins → Breeze → Update NowƯu tiên 2 — Nếu chưa update được ngay: vào Settings → Breeze → Advanced Options, tắt Host Files Locally — Gravatars. Điều này cắt đứt đường khai thác cho đến khi bạn patch được.
Ưu tiên 3 — Rà quét compromise:
- Tìm file PHP lạ trong
wp-content/uploads/:find wp-content/uploads -name '*.php' -o -name '*.phtml' -o -name '*.phar' - Check access log cho POST request đến endpoint gravatar trong 7 ngày gần nhất.
- Nếu thấy dấu hiệu nghi vấn → coi như đã compromise: reset tất cả password, rotate salt trong
wp-config.php, scan malware (Wordfence / Sucuri), và cân nhắc restore từ backup sạch.
So với các CVE WordPress khác
| Lỗ hổng | CVSS | Auth | Cài đặt bị ảnh hưởng |
|---|---|---|---|
| Breeze Cache CVE-2026-3844 | 9.8 | Không cần | 400K+ |
| LiteSpeed Cache CVE-2024-28000 | 9.8 | Không cần | 5M+ |
| Really Simple Security CVE-2024-10924 | 9.8 | Không cần | 4M+ |
Breeze có scale nhỏ hơn LiteSpeed nhưng vẫn là top 20 cache plugin phổ biến nhất. Điểm khác biệt: lỗ hổng này chỉ kích hoạt khi một tùy chọn không-mặc-định được bật — nên số site thực sự vulnerable sẽ thấp hơn 400K, nhưng không ai biết chính xác bao nhiêu. Safe assumption: nếu bạn chạy Breeze, coi như bị ảnh hưởng cho đến khi chứng minh được là không.
Điều gì sắp tới
Lịch sử các CVE WordPress 9.8 cho thấy: đỉnh khai thác thường rơi vào 7–21 ngày sau public disclosure, khi PoC lưu hành rộng trong các kênh underground. Với Breeze, chúng ta đang ở ngày 2–3 sau disclosure — mass-scanning mới chỉ bắt đầu nóng lên.
Nếu bạn không patch trong tuần này, khả năng cao site đã bị compromise. Lúc đó chi phí không chỉ là update — mà là incident response toàn tập: clean shell, rotate secrets, audit database, thông báo user nếu data leak.
Nguồn: BleepingComputer, Wordfence, Tenable, SentinelOne.