CVE-2026-48710 (BadHost): Lỗ hổng nghiêm trọng cho phép bỏ qua xác thực trên Starlette và hạ tầng AI
Một lỗ hổng bảo mật nghiêm trọng mang tên BadHost (CVE-2026-48710) đã được phát hiện trong framework Starlette, cho phép kẻ tấn công thao túng header Host để bỏ qua lớp xác thực. Vấn đề này ảnh hưởng trực tiếp đến hàng loạt ứng dụng FastAPI và các công cụ hạ tầng AI phổ biến như vLLM, LiteLLM và máy chủ MCP. Người dùng được khuyến cáo cập nhật ngay lập tức và kiểm tra kỹ mã nguồn để ngăn chặn nguy cơ bị truy cập trái phép.
CVE-2026-48710 (BadHost): Lỗ hổng nghiêm trọng cho phép bỏ qua xác thực trên Starlette và hạ tầng AI
Một lỗ hổng bảo mật mới được đặt tên là BadHost (CVE-2026-48710) đang gây lo ngại lớn cho cộng đồng phát triển web và AI, đặc biệt là những người sử dụng framework Python Starlette và FastAPI. Được phát hiện bởi X41 D-Sec trong một cuộc kiểm toán bảo mật tài trợ bởi OSTIF, lỗ hổng này cho phép kẻ tấn công bỏ qua hoàn toàn middleware xác thực dựa trên đường dẫn (path-based authentication middleware).
Vấn đề này không chỉ giới hạn ở các ứng dụng web thông thường mà còn đe dọa nghiêm trọng đến hệ sinh thái AI/ML hiện đại, bao gồm các máy chủ suy luận LLM (Large Language Model) và các cổng MCP (Model Context Protocol).
Cơ chế hoạt động của BadHost
Nguyên nhân gốc rễ của lỗ hổng nằm ở cách Starlette (phiên bản trước 1.0.1) xây dựng đối tượng request.url. Framework này nối chuỗi header Host trong yêu cầu HTTP với đường dẫn thực tế của yêu cầu.
Do đó, kẻ tấn công có thể gửi một yêu cầu được chế tạo đặc biệt (crafted request). Ví dụ, khi truy cập vào /protected (một đường dẫn yêu cầu xác thực), kẻ tấn công có thể chèn payload vào header Host như sau: Host: example.com/health?x=.
Khi đó, yêu cầu vẫn sẽ đến được /protected, nhưng thuộc tính request.url.path trong ứng dụng sẽ bị đánh lừa và trả về /health thay vì /protected. Bất kỳ middleware nào sử dụng request.url.path để quyết định xem có nên áp dụng xác thực hay không đều sẽ bị qua mặt, cho phép kẻ tấn công truy cập trái phép vào các tài nguyên được bảo vệ.
Tác động đến hạ tầng AI và ứng dụng FastAPI
Mặc dù đây là một lỗi logic trong xử lý URL, nhưng tác động của nó lại đặc biệt nghiêm trọng đối với hạ tầng AI. Nhiều công cụ phổ biến hiện nay được xây dựng dựa trên FastAPI (vốn chạy trên Starlette) và sử dụng middleware xác thực tùy chỉnh để bảo vệ các điểm cuối API.
Các hệ thống bị ảnh hưởng bao gồm:
- Máy chủ suy luận LLM: vLLM.
- Máy chủ proxy LLM: LiteLLM.
- Framework AI Agent và cổng MCP: Đặc biệt là các máy chủ MCP, vì thông số kỹ thuật của MCP yêu cầu các điểm cuối khám phá OAuth không được xác thực, tạo ra một đường dẫn đáng tin cậy để kẻ tấn công khai thác.
- Các nền tảng khác: Google ADK-Python, Ray Serve và BentoML cũng có thể bị ảnh hưởng nếu thêm middleware xác thực tùy chỉnh.
Lỗ hổng này có thể dẫn đến việc lộ khóa API, truy cập trái phép vào các mô hình AI, và thao túng các công cụ nội bộ.
Tuy nhiên, cần lưu ý rằng cơ chế bảo mật tích hợp sẵn của FastAPI sử dụng Depends() dựa trên khớp tuyến đường (route matching) là an toàn. Rủi ro chỉ nằm ở các BaseHTTPMiddleware tùy chỉnh hoặc middleware ASGI thô sử dụng request.url.path.
Cách phát hiện và khắc phục
Để bảo vệ hệ thống trước lỗ hổng BadHost, quản trị viên và nhà phát triển cần thực hiện các bước sau:
- Cập nhật Starlette: Nâng cấp Starlette lên phiên bản mới nhất (ít nhất là 1.0.1 trở lên) để khắc phục lỗi xử lý URL.
- Kiểm tra mã nguồn: Sử dụng các công cụ như Semgrep hoặc CodeQL để quét codebase tìm việc sử dụng
request.url.pathtrong các tệp middleware. Hãy đảm bảo rằng logic xác thực dựa trênscope["path"]thay vìrequest.url.path. - Sử dụng Reverse Proxy chuẩn RFC: Các reverse proxy như nginx, Caddy, Traefik hay HAProxy thường có cơ chế xác thực và từ chối các header Host không hợp lệ. Việc triển khai các proxy này trước máy chủ ứng dụng ASGI có thể trung hòa cuộc tấn công. Tuy nhiên, nhiều môi trường phát triển hoặc self-hosted thường để lộ ASGI server trực tiếp, dẫn đến rủi ro cao.
- Sử dụng công cụ quét: Đội ngũ Nemesis đã phát triển một công cụ quét trực tuyến miễn phí gọi là BadHost Scanner. Công cụ này có thể tự động phát hiện các điểm cuối MCP và các đường dẫn API suy luận phổ biến, cũng như kiểm tra xem hệ thống có dễ bị tấn công bởi bypass header Host hay không.
Đây là một lời nhắc nhở quan trọng về sự phức tạp của bảo mật trong các hệ thống phân lớp, nơi sự tương tác giữa các thành phần (ASGI server, framework, và middleware) có thể tạo ra các lỗ hổng không thể nhìn thấy khi kiểm tra từng phần riêng lẻ.
Bài viết liên quan

Công nghệ
Chủ đề từ LLM không phải là dữ liệu quan sát: Cảnh báo cho các nhà phân tích dữ liệu
21 tháng 5, 2026

Công nghệ
Thử nghiệm tính năng Avatar AI của Google Gemini: Bản sao số của tôi thật đáng sợ nhưng chân thực
21 tháng 5, 2026

Công nghệ
Chris Lehane: "Bậc thầy xử lý khủng hoảng" của OpenAI và nỗ lực cứu vãn danh tiếng AI
22 tháng 5, 2026
