SQL injection không cần xác thực trong endpoint đặt lại mật khẩu của Metabase cho phép truy cập quản trị

Lưu ý: Dữ liệu này chỉ có tính chất tham khảo, phục vụ nghiên cứu an ninh mạng.CyStack khuyến nghị người dùng không sử dụng các thông tin này nhằm các mục đích bất hợp pháp

Lỗ hổng CVE-2026-72898 là gì?

Lỗ hổng CVE-2026-72898 là lỗ hổng Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection') ảnh hưởng tới Metabase (phiên bản bị ảnh hưởng: x.58.0 – < x.58.24, x.59.0 – < x.59.21 và các phiên bản bị ảnh hưởng khác). Lỗ hổng này được xếp hạng ở mức Nghiêm trọng, với điểm CVSS 10. Lỗ hổng này đã được ghi nhận khai thác trong thực tế.

Giới thiệu chung

Dữ liệu gốc

Metabase cho phép kẻ tấn công từ xa, không cần xác thực, chèn SQL tùy ý thông qua endpoint cơ sở dữ liệu '/reset_password' và giành quyền quản trị đối với instance Metabase được kết nối.

Sản phẩm và phạm vi ảnh hưởng

Các phạm vi sau được xác định là bị ảnh hưởng:

  • Metabase x.58.0 đến trước x.58.24; bản sửa tương ứng là x.58.24.
  • Metabase x.59.0 đến trước x.59.21; bản sửa tương ứng là x.59.21.
  • Metabase x.60.0 đến trước x.60.17; bản sửa tương ứng là x.60.17.
  • Metabase x.61.0 đến trước x.61.11; bản sửa tương ứng là x.61.11.
  • Metabase x.62.0 đến trước x.62.9; bản sửa tương ứng là x.62.9.
  • Metabase x.63.0 đến trước x.63.5; bản sửa tương ứng là x.63.5.

Metabase cho biết các instance Cloud của họ đã được nâng cấp và vá. Các deployment self-hosted cần được xác minh theo release branch thực tế; trạng thái của những nhánh không được liệt kê trong bản ghi này chưa được xác định.

Chi tiết kỹ thuật

Metabase chứa lỗi CWE-89, trong đó dữ liệu do kẻ tấn công kiểm soát trong luồng đặt lại mật khẩu có thể được xử lý như SQL thay vì dữ liệu thông thường. Hướng dẫn của nhà cung cấp xác định route liên quan là /api/session/reset_password; mô tả chuẩn hóa gọi route này là /reset_password. Kẻ tấn công từ xa không cần xác thực hoặc tương tác người dùng để gửi yêu cầu đến endpoint có thể truy cập qua mạng và tác động đến Metabase application database. Nếu khai thác thành công, SQL injection có thể dẫn đến quyền quản trị trên instance Metabase, từ đó tạo khả năng thay đổi cấu hình, truy cập thông tin xác thực được lưu cho các cơ sở dữ liệu kết nối và đọc dữ liệu mà các kết nối đó cho phép. Tài liệu hiện có không xác định chi tiết chính xác về câu lệnh SQL, cách xây dựng truy vấn hoặc database engine cụ thể liên quan.

Khả năng khai thác

Lỗi có thể bị khai thác từ xa qua mạng mà không cần xác thực, không cần tương tác người dùng và không yêu cầu quyền trước đó. Bản ghi được cung cấp đánh dấu lỗi này là đã bị khai thác và có public exploit; Metabase cũng xác nhận đã ghi nhận khai thác thực tế. Metabase cho biết Metabase Cloud đã được nâng cấp và vá, trong khi các hệ thống self-hosted cần được kiểm tra riêng. Bằng chứng hiện có không nêu tên tác nhân, chiến dịch, nạn nhân hoặc cung cấp bước khai thác trong entry này.

Tác động kỹ thuật

Kết quả kỹ thuật trực tiếp là khả năng thực thi SQL trái phép trên Metabase application database và khả năng chuyển thành quyền quản trị instance. Quyền này có thể cho phép sửa cấu hình, quản lý tài khoản hoặc session, và sử dụng các thông tin xác thực database được lưu trong ứng dụng. Việc truy cập sang các database kết nối là khả năng có điều kiện, phụ thuộc vào quyền của các credential và cấu hình từng deployment, nhưng có thể mở rộng phạm vi ảnh hưởng từ Metabase sang dữ liệu doanh nghiệp. Tác động thực tế có thể bao gồm mất tính bí mật, thay đổi dữ liệu hoặc cấu hình, và gián đoạn dịch vụ. Bằng chứng hiện có không xác lập việc thực thi mã trên máy chủ, thoát container hoặc truy cập vượt quá quyền của các database kết nối.

Tác động đến tổ chức

Lỗi có thể biến một endpoint không yêu cầu đăng nhập thành điểm vào để chiếm quyền quản trị Metabase.

  • Kẻ tấn công có thể thay đổi cấu hình ứng dụng và các thiết lập quản trị.
  • Thông tin xác thực được lưu cho các database kết nối có thể bị lộ, tạo khả năng truy cập dữ liệu mà các kết nối đó cho phép.
  • Dữ liệu có thể bị đọc, xuất hoặc thay đổi tùy theo quyền của tài khoản database và cấu hình instance.
  • Thay đổi cấu hình hoặc dữ liệu quản trị cũng có thể ảnh hưởng đến tính sẵn sàng và độ tin cậy của dịch vụ.

Bản ghi không khẳng định một tổ chức cụ thể đã bị mất dữ liệu, gián đoạn dịch vụ hoặc bị xâm phạm.

Cách khắc phục

  1. Nâng cấp Metabase lên bản sửa đúng với release branch đang chạy:
  • Nhánh x.58: nâng cấp lên x.58.24.
  • Nhánh x.59: nâng cấp lên x.59.21.
  • Nhánh x.60: nâng cấp lên x.60.17.
  • Nhánh x.61: nâng cấp lên x.61.11.
  • Nhánh x.62: nâng cấp lên x.62.9.
  • Nhánh x.63: nâng cấp lên x.63.5.
  1. Nếu chưa thể nâng cấp ngay, tạm thời chặn truy cập đến /api/session/reset_password tại reverse proxy, load balancer hoặc lớp ingress. Đây chỉ là biện pháp giảm thiểu tạm thời, không thay thế bản vá.
  2. Nếu endpoint từng được công khai, sau khi nâng cấp hãy thu hồi toàn bộ user session bằng cách xóa các bản ghi trong bảng core_session, rà soát và xóa API key không nhận diện được, đồng thời kiểm tra các tài khoản quản trị có thay đổi bất thường.
  3. Xoay vòng thông tin xác thực của mọi database được kết nối với Metabase, sau đó rà soát data warehouse log, Metabase activity và query history để tìm truy cập trái phép.
  4. Nếu phát hiện dấu hiệu khai thác, bảo toàn log và thực hiện quy trình ứng phó sự cố của tổ chức thay vì chỉ dựa vào việc nâng cấp.

Cách phát hiện

Các bước kiểm tra nên tập trung vào phiên bản, khả năng truy cập endpoint và dấu hiệu sau khai thác:

  1. Lập danh sách các instance Metabase self-hosted, xác minh release branch và đối chiếu với các khoảng bị ảnh hưởng trong affected_summary.
  2. Xác định /api/session/reset_password có được công khai qua reverse proxy, load balancer hoặc ingress hay không.
  3. Tìm trong application log hoặc ingress log chuỗi đáng ngờ gồm POST /api/session/reset_password trả về 400, sau đó là GET /api/user/current trả về 200. Metabase cho biết mẫu này có thể cho thấy instance đã bị xâm nhập.
  4. Rà soát các session, API key, tài khoản quản trị, lịch sử hoạt động và lịch sử truy vấn để tìm thay đổi hoặc hoạt động không được phép.
  5. Đối chiếu với application database log và data warehouse log để tìm truy cập bất thường, đồng thời xem xét việc xoay vòng thông tin xác thực của các database được kết nối.

Không thấy mẫu log trên không chứng minh instance an toàn, vì log có thể không đầy đủ hoặc đã bị lưu giữ không đầy đủ.

Nguồn (25)
Tìm hiểu thêm

Kiểm tra chuyên sâu cùng giải pháp quản lý rủi ro Web toàn diện

Giải pháp CyStack VulnScan liên tục phát hiện tài sản, xác minh lỗ hổng và giúp đội ngũ bảo mật ưu tiên khắc phục cho toàn bộ doanh nghiệp.