Nội dung bài viết
Ngày 14/10/2026, Drupal đã phát hành các bản cập nhật 11.4.10, 11.3.19 và 10.6.19 để vá một lỗ hổng nghiêm trọng trong module Field UI của lõi Drupal. Lỗ hổng này có thể cho phép kẻ tấn công thực thi mã tùy ý (RCE) trên máy chủ chạy website.
Tổng quan về lỗ hổng
- Mã định danh: CVE-2026-108097
- Thành phần bị ảnh hưởng: Field UI - module lõi đứng sau các trang quản trị dùng để quản lý trường dữ liệu (manage fields) và cách hiển thị chúng (manage display).
- Mức độ: 19/25 theo thang đánh giá rủi ro riêng của Drupal, tức mức Critical (nghiêm trọng).
- Người phát hiện: Drew Webber (Drupal Security Team) và Octavio Galland.
Theo thông báo của Drupal Security Team, chỉ riêng lõi Drupal thì kẻ tấn công không thể chạm tới lỗ hổng. Tuy nhiên, có nhiều con đường khai thác thông qua các module đóng góp (contributed modules), và ít nhất một trong số đó không yêu cầu đăng nhập. Thông báo không nêu tên các module này, đồng thời lưu ý mã tùy biến (custom code) cũng có thể mở ra đường khai thác tương tự.
Nguyên nhân kỹ thuật
Field UI dựng các bảng quản trị từ render array - cấu trúc mảng PHP mà Drupal chuyển thành HTML. Trước bản vá, bước pre-render của phần tử bảng sẽ gọi bất kỳ hàm PHP nào được gán trong thuộc tính #region_callback của từng dòng thông qua call_user_func_array, mà không kiểm tra hàm đó là gì.
Từ phiên bản 8.8 (năm 2019), bộ render của Drupal đã từ chối chạy các render callback không đáng tin cậy. Nhưng vì phương thức pre-render là của chính phần tử bảng nên được tin tưởng, và cơ chế kiểm tra không bao giờ áp dụng tới callback mà bước này gọi tiếp. Đoạn mã có vấn đề đã tồn tại ít nhất từ Drupal 8.9.0 (năm 2020).
Ở bản 11.4.10, Drupal bỏ hẳn việc gọi callback này. Vùng (region) của mỗi dòng giờ được đọc trực tiếp từ giá trị region của dòng; nếu giá trị không hợp lệ, hệ thống dùng vùng ẩn hoặc vùng đầu tiên của bảng.
Phiên bản cần cập nhật
| Nhánh Drupal | Phiên bản đã vá |
|---|---|
| 11.4.x | 11.4.10 |
| 11.3.x | 11.3.19 |
| 10.6.x | 10.6.19 |
| 12.0.0 beta | 12.0.0-beta2 (không dùng cho môi trường production) |
Không có bản vá cho Drupal 11.2.x trở xuống, 10.5.x trở xuống, cũng như Drupal 8 và 9 - đây đều là các nhánh đã hết hỗ trợ. Ngoài ra, hai nhánh 11.3.x và 10.6.x sẽ ngừng nhận bản vá bảo mật từ tháng 12/2026.
Đáng lo ngại là trong tuần bắt đầu từ 4/10, có 151.442 trên tổng số 531.499 website (khoảng 28,5%) báo cáo phiên bản lõi về drupal.org đang chạy nhánh bị ảnh hưởng mà không có bản vá.
Chưa thể cập nhật ngay thì làm gì?
- Gỡ cài đặt module Field UI (
field_ui): theo Drupal, đây là biện pháp bảo vệ tạm thời trong lúc chờ cập nhật. Đổi lại, các trang quản lý trường và hiển thị sẽ không dùng được khi module bị gỡ. Lưu ý Field UI được cài sẵn trong profile cài đặt Standard, nên phần lớn website dựng từ profile này đều có module trừ khi đã chủ động gỡ. - Drupal Steward: dịch vụ tường lửa ứng dụng web (WAF) với bộ luật do Security Team viết đã chặn được một số hướng tấn công đã biết. Acquia, Pantheon, Ironstar và Skpr đang áp dụng dịch vụ này cho khách hàng. Tuy vậy, WAF không bao quát mọi kiểu khai thác nên các website này vẫn cần cập nhật.
Với các website có mã tùy biến gán #region_callback cho các dòng trong bảng field_ui_table, callback đó sẽ không còn chạy sau khi cập nhật. Nên rà soát lại mã và kiểm thử các trang Manage fields và Manage display sau khi nâng cấp.
Tình hình khai thác
Tại thời điểm công bố, chưa có mã khai thác công khai, và tính đến 15/10 cũng chưa ghi nhận cuộc tấn công nào lợi dụng lỗ hổng. Dù vậy, Drupal đã báo trước bản phát hành từ ngày 12/10 và khuyến nghị quản trị viên dành sẵn thời gian cập nhật, vì mã khai thác có thể xuất hiện chỉ trong vài giờ hoặc vài ngày.
Tiền lệ cho thấy cảnh báo này không thừa: hồi tháng 5, chỉ hai ngày sau khi Drupal công bố một lỗ hổng SQL injection trong lõi (chỉ ảnh hưởng website dùng PostgreSQL), đã có các nỗ lực khai thác, và CISA sau đó đưa lỗ hổng này vào danh mục các lỗ hổng đang bị khai thác.
Các lỗ hổng liên quan
- Module Entity List (CVE-2026-108099): cũng là lỗ hổng RCE mức nghiêm trọng với điều kiện tương tự, bao gồm một đường khai thác không cần đăng nhập. Bản vá nằm ở phiên bản 3.0.10 của module và cập nhật lõi không tự cập nhật module này. Khoảng 90 website báo cáo đang sử dụng module.
- XSS trong module Link (CVE-2026-108515) và Navigation (CVE-2026-108514): hai lỗi cross-site scripting mức trung bình, được vá trong cùng đợt phát hành lõi; cả hai đều yêu cầu kẻ tấn công có tài khoản đăng nhập.
- Drupal 7: dù đã hết hỗ trợ trên drupal.org từ tháng 1/2025, chương trình hỗ trợ dài hạn của Pantheon và Tag1 Consulting đã phát hành Drupal 7.107 có kèm bản vá tương ứng.
Khuyến nghị từ Web99
- Kiểm tra ngay phiên bản lõi Drupal và cập nhật lên bản đã vá tương ứng với nhánh đang dùng.
- Nếu website còn chạy nhánh đã hết hỗ trợ (Drupal 8, 9, 10.5 trở xuống, 11.2 trở xuống), hãy lên kế hoạch nâng cấp sớm; trong lúc chờ, cân nhắc gỡ module Field UI.
- Rà soát danh sách module đóng góp, đặc biệt là Entity List, và cập nhật riêng từng module.
- Lên lộ trình nâng cấp khỏi nhánh 11.3.x và 10.6.x trước khi chúng hết hỗ trợ vào tháng 12/2026.
Nguồn tham khảo: The Hacker News và thông báo bảo mật của Drupal Security Team.