CVE-2024-9264 Command injection and local file inclusion via SQL Expressions in Grafana
Score: 9.9
CVSSv3.1 Vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
Severity: Critical
Mô tả
Đây một lỗ hổng RCE (Remote Code Execution - Thực thi mã từ xa) xuất hiện trong Grafana 11. Lỗ hổng này nằm trong một tính năng thử nghiệm có tên là SQL Expressions, cho phép xử lý đầu ra của truy vấn nguồn dữ liệu bằng cách thực thi một hoặc nhiều truy vấn SQL. Nó thực hiện điều này bằng cách chuyển truy vấn và dữ liệu đến DuckDB CLI, nơi sẽ thực thi SQL đối với dữ liệu của DataFrame. Những truy vấn SQL này không được kiểm tra hoàn toàn, dẫn đến lỗ hổng command injection and local file inclusion vulnerability.
Do việc triển khai sai tính năng ‘flag’, tính năng thử nghiệm này được bật mặc định cho API. Tuy nhiên, để có thể khai thác được, tệp nhị phân DuckDB phải khả dụng thông qua PATH của môi trường Grafana. Tệp nhị phân DuckDB không được tích hợp sẵn với Grafana, vì vậy để khai thác được, hệ thống phải cài đặt DuckDB và thêm nó vào PATH của Grafana. Nếu DuckDB không tồn tại, hệ thống sẽ không bị ảnh hưởng.
Tác động
Lỗ hổng này có thể được sử dụng để truy cập bất kỳ tệp nào trên máy chủ, bao gồm bất kì các file nào không sử dung mật khẩu và thực thi command. Bất kỳ người dùng Grafana nào có quyền Viewer hoặc cao hơn đều có khả năng thực hiện cuộc tấn công này.
Phiên bản bị ảnh hưởng
- Grafana >= v11.0.0 (tất cả v11.x.y đều bị ảnh hưởng)
Cách khắc phục
- Nâng cấp lên bản vá mới nhất nếu có phiên bản bị ảnh hưởng (security patch)
- Xóa tệp nhị phân ‘duckdb’ khỏi PATH hoặc xóa hoàn toàn khỏi hệ thống.
Tham khảo