Open WebUI bị SSRF qua đích chuyển hướng HTTP chưa được kiểm tra

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-88001 là gì?

Lỗ hổng CVE-2026-88001 là lỗ hổng Server-Side Request Forgery (SSRF) ảnh hưởng tới open-webui (phiên bản bị ảnh hưởng: >= 0.9.5, < 0.11.1). Lỗ hổng này được xếp hạng ở mức Trung bình, với điểm CVSS 5. Lỗ hổng này đã có mã hoặc bằng chứng khai thác công khai, nhưng điều đó chưa xác nhận việc khai thác trong thực tế.

Giới thiệu chung

Dữ liệu gốc

Open WebUI là một nền tảng AI self-hosted có khả năng mở rộng, nhiều tính năng và thân thiện với người dùng. Từ 0.9.5 đến trước 0.11.1, các server-side web fetch không áp dụng lại WEB_FETCH_FILTER_LIST hoặc các kiểm soát private-address cho đích đến của HTTP redirect khi AIOHTTP_CLIENT_ALLOW_REDIRECTS được bật. Người dùng đã xác thực có thể chuyển hướng các đường dẫn fetch dùng aiohttp và requests đến các host bị loại trừ, loopback, mạng private hoặc cloud metadata service, rồi đưa nội dung thu được vào web search, URL ingestion, page-fetch tool hoặc chat image processing. Lỗi này đã được sửa trong phiên bản 0.11.1.

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

  • Package open-webui thuộc vendor open-webui bị ảnh hưởng trong dải >= 0.9.5, < 0.11.1.
  • Advisory của vendor biểu diễn cùng phạm vi là các bản từ 0.9.5 đến và gồm 0.11.0.
  • Hành vi khai thác cần AIOHTTP_CLIENT_ALLOW_REDIRECTS=true; giá trị mặc định là false, và deployment chưa thay đổi giá trị này không follow redirect theo mô tả của advisory.
  • 0.11.1 là bản được xác nhận đã sửa lỗi.
  • Các deployment dùng forward proxy vẫn cần kiểm soát đích kết nối trên chính proxy, vì private-address check có thể nhìn thấy địa chỉ proxy thay vì đích cuối.

Chi tiết kỹ thuật

Open WebUI thực hiện server-side web fetch thông qua các đường dẫn dùng client aiohttp và requests. Hai cơ chế bảo vệ, gồm WEB_FETCH_FILTER_LIST và kiểm tra địa chỉ private hoặc internal, chỉ được áp dụng cho URL ban đầu mà người dùng gửi, không được áp dụng lại cho đích đến sau HTTP redirect.

Lỗ hổng cần AIOHTTP_CLIENT_ALLOW_REDIRECTS=true và một tài khoản đã xác thực có quyền sử dụng tính năng khiến máy chủ fetch URL. Các đường dẫn liên quan gồm web search, URL ingestion vào collection, built-in page fetch tool và image URL trong chat. Với aiohttp, kiểm tra private-address còn có thể bị bỏ qua khi đích redirect là IP literal, vì cơ chế resolver không được gọi trong trường hợp đó. Chi tiết triển khai khác nhau giữa các client, và advisory không chứng minh rằng mọi đường dẫn aiohttp đều trả nguyên văn phản hồi do attacker kiểm soát cho người gọi.

Khả năng khai thác

Lỗ hổng có thể khai thác qua mạng bởi người dùng đã xác thực, không yêu cầu người dùng khác tương tác. Tài khoản ở bất kỳ role nào cũng có thể là đủ nếu có quyền truy cập một tính năng khiến máy chủ fetch URL, trong khi cấu hình AIOHTTP_CLIENT_ALLOW_REDIRECTS phải được bật.

Attacker có thể cung cấp URL công khai dẫn hướng đến host nằm trong danh sách loại trừ, loopback, mạng private hoặc cloud metadata service. Vendor advisory có mô tả public proof of concept và cho biết hành vi đã được tái hiện trên mã nguồn bị ảnh hưởng. Bản ghi được cung cấp không xác nhận việc khai thác trong thực tế.

Tác động kỹ thuật

Attacker đã xác thực có thể thay đổi nơi mà server-side fetch của Open WebUI kết nối tới, làm vượt qua ý định của danh sách host bị loại trừ và một phần kiểm soát private-address. Hậu quả kỹ thuật có thể gồm đọc nội dung từ excluded public host hoặc đưa nội dung từ tài nguyên nội bộ vào các phản hồi, collection hoặc model input tùy theo client và đường dẫn fetch.

Lỗi có scope vượt ra ngoài URL mà người dùng ban đầu gửi, nhưng cần có tài khoản đã xác thực và cấu hình cho phép follow redirect. Không có bằng chứng trong record cho thấy attacker có thể sửa dữ liệu, thực thi mã hoặc làm mất tính sẵn sàng của dịch vụ. Mức độ lộ dữ liệu cụ thể còn phụ thuộc vào network access của server, client được sử dụng và cấu hình proxy.

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

Lỗi có thể làm Open WebUI gửi request đến các host mà operator chủ động loại trừ, cũng như đến tài nguyên nội bộ mà ứng dụng được phép kết nối tới.

  • Nội dung phản hồi từ excluded public host có thể được trả qua một số đường dẫn dùng requests, bao gồm page fetch và URL ingestion.
  • Một số đường dẫn dùng aiohttp có thể tiếp cận loopback, private network hoặc cloud metadata endpoint và đưa nội dung thu được vào web search response, collection có thể truy xuất hoặc model input.
  • Tác động thực tế phụ thuộc vào client, tính năng được bật, quyền outbound network và việc deployment có dùng forward proxy hay không. Bản ghi không chứng minh việc sửa đổi dữ liệu hoặc làm gián đoạn dịch vụ.

Cách khắc phục

  1. Nâng cấp open-webui lên đúng bản đã được xác nhận sửa lỗi là 0.11.1.
  2. Nếu chưa thể nâng cấp, đặt AIOHTTP_CLIENT_ALLOW_REDIRECTS=false hoặc giữ nguyên giá trị mặc định để các đường dẫn bị ảnh hưởng không follow HTTP redirect. Đây là biện pháp giảm thiểu dựa trên precondition đã được advisory xác nhận.
  3. Không dựa riêng vào WEB_FETCH_FILTER_LIST hoặc ENABLE_LOCAL_WEB_FETCH để khắc phục bản chưa sửa, vì redirect destination có thể không đi qua các kiểm soát đó.
  4. Với deployment dùng forward proxy, áp dụng destination restriction trên proxy để ngăn proxy kết nối đến loopback, private network, cloud metadata service và các đích không được phép.
  5. Sau nâng cấp, xác nhận các đường dẫn web search, URL ingestion, page fetch và chat image URL vẫn thực hiện kiểm tra trên từng redirect hop.

Cách phát hiện

  1. Kiểm kê các deployment chạy package open-webui và xác định phiên bản đang cài đặt, sau đó đối chiếu với dải affected trong affected_summary.
  2. Kiểm tra cấu hình AIOHTTP_CLIENT_ALLOW_REDIRECTS. Các deployment đã bật tùy chọn này cần được ưu tiên rà soát.
  3. Xác định tài khoản và role có quyền sử dụng web search, URL ingestion, built-in page fetch tool hoặc chat image URL, vì đây là các đường dẫn được advisory xác định là có thể chạm tới lỗi.
  4. Nếu có outbound HTTP hoặc proxy telemetry, rà soát các redirect từ URL do người dùng cung cấp đến host trong WEB_FETCH_FILTER_LIST, loopback, địa chỉ private hoặc 169.254.169.254. Đây là kiểm tra phòng ngừa dựa trên hành vi có thể xảy ra, không phải IOC đã được xác nhận.
  5. Kiểm tra policy egress của forward proxy nếu deployment định tuyến outbound fetch qua proxy. Không có log phù hợp không chứng minh deployment an toàn.
Nguồn (13)
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.

Khám phá CyStack VulnScan