
Lỗ hổng BadHost phơi bày các tác nhân AI, công cụ đánh giá và cổng LLM
BadHost là một lỗ hổng bỏ qua xác thực mức độ nghiêm trọng cao trong framework web Python Starlette được sử dụng rộng rãi, với 325 triệu lượt tải xuống hàng tuần. Lỗ hổng này cho phép kẻ tấn công sử dụng các tiêu đề HTTP Host bị lỗi để bỏ qua các kiểm soát truy cập dựa trên đường dẫn và truy cập cơ sở hạ tầng tác nhân AI nhạy cảm, cùng với các hệ thống khác.
Trang chủ InfoQ
Tin tức
Lỗ hổng BadHost phơi bày các tác nhân AI, công cụ đánh giá và cổng LLM
AI, ML & Kỹ thuật dữ liệu
Lỗ hổng BadHost phơi bày các tác nhân AI, công cụ đánh giá và cổng LLM
Ngày 01/6/2026
2 phút đọc
bởi
Sergio De Simone
Viết bài cho InfoQ
Thỏa mãn sự tò mò của bạn.
Giúp hơn 550.000 nhà phát triển cấp cao trên toàn cầu
luôn dẫn đầu mỗi tháng. Liên hệ
Nghe bài viết này - 0:00
Âm thanh sẵn sàng phát
Trình duyệt của bạn không hỗ trợ phần tử âm thanh.
0:00
0:00
Bình thường 1.25x 1.5x
Thích
Danh sách đọc
BadHost là lỗ hổng bỏ qua xác thực có mức độ nghiêm trọng cao trong framework web Python Starlette được sử dụng rộng rãi, với 325 triệu lượt tải xuống hàng tuần. Lỗ hổng này cho phép kẻ tấn công sử dụng các tiêu đề HTTP Host bị lỗi để bỏ qua các kiểm soát truy cập dựa trên đường dẫn và truy cập cơ sở hạ tầng tác nhân AI nhạy cảm, cùng với các hệ thống khác.
Được phát hiện bởi các nhà nghiên cứu bảo mật tại Secwest và X41 D-Sec, lỗ hổng có thể dễ dàng bị khai thác bằng cách thêm ký tự /, ?, hoặc # vào tiêu đề Host:
curl -i -H 'Host: foo' http://target/admin # 403, bị chặn
curl -i -H 'Host: foo?' http://target/admin # 200, được phục vụ
Starlette xây dựng lại request.url bằng cách nối tiêu đề HTTP Host với đường dẫn yêu cầu và phân tích lại kết quả. Giá trị Host không được xác thực theo ngữ pháp RFC 9112 / RFC 3986 trước khi xây dựng lại. Tiêu đề Host chứa /, ?, hoặc # làm thay đổi ranh giới đường dẫn, truy vấn và phân đoạn trong quá trình phân tích lại, do đó request.url.path không còn khớp với đường dẫn mà máy chủ ASGI thực sự nhận được và định tuyến.
Mặc dù lỗ hổng được gán điểm rủi ro trung bình là 6,5, các nhà nghiên cứu cho rằng điều này "đánh giá thấp tác động hạ nguồn" và lỗ hổng nên được coi là nghiêm trọng vì nó ảnh hưởng đến tất cả người tiêu dùng hạ nguồn:
Phân tích của X41 đã tìm thấy nhiều dự án mã nguồn mở phổ biến có phần mềm trung gian đưa ra các quyết định liên quan đến bảo mật trên request.url, với các chuỗi được chứng minh từ nguyên thủy một ký tự này đến việc bỏ qua xác thực, SSRF và thực thi mã từ xa.
Mức độ nghiêm trọng này được củng cố bởi thực tế là lỗ hổng được phát hiện trong quá trình kiểm tra mã nguồn của vLLM, chứng minh rằng "con đường từ sự kỳ quặc của Starlette đến nguyên thủy phục vụ LLM không phải là lý thuyết; đó là con đường khám phá". Tệ hơn nữa, các dịch vụ AI có khả năng bị ảnh hưởng thường được triển khai trên mạng nội bộ, mạng con phòng thí nghiệm và môi trường nghiên cứu LLM thiếu bảo vệ proxy ngược thường có trong các hệ thống sản xuất, khiến chúng trực tiếp bị khai thác thông qua BadHost.
Các máy chủ MCP đặc biệt có nguy cơ, vì các nhà nghiên cứu lưu ý rằng "đặc tả MCP bắt buộc các điểm cuối khám phá OAuth không được xác thực, cung cấp một con đường đáng tin cậy để khai thác".
Đáng chú ý, lỗ hổng đã bị bỏ qua bởi Claude Mythos, thay vào đó đã xác định hơn 10.000 lỗ hổng trong Project Glasswing. Trong bối cảnh này, các nhà nghiên cứu lưu ý:
CVE-2026-48710 không phải là lỗi trong một tệp hoặc một kho lưu trữ. Nó trải dài ba lớp độc lập — máy chủ ASGI chuyển tiêu đề Host thô, Starlette tin tưởng nó để xây dựng URL và các tác giả phần mềm trung gian giả định request.url.path an toàn cho các quyết định xác thực. Mỗi thành phần hoạt động chính xác một cách độc lập. Lỗ hổng chỉ xuất hiện từ sự tương tác giữa chúng.
Trên Hacker News, ostif-derek cảnh báo:
Đây là một lỗ hổng nghiêm trọng. Đánh giá nó ở mức trung bình đã đánh giá thấp mức độ ảnh hưởng của nó đến hàng nghìn dự án hạ nguồn và hàng tỷ lượt cài đặt. Mọi người cần vá lỗi càng sớm càng tốt. Tôi thường phản đối việc "đặt tên, logo và trang web cho một lỗi", nhưng lỗ hổng này đang có tỷ lệ vá lỗi kém vì nó được đánh giá ở mức trung bình.
Trong khi thừa nhận rủi ro do lỗ hổng gây ra, người dùng acdha đưa ra một quan điểm sắc thái hơn trong cuộc thảo luận này:
Tôi đồng ý rằng nó khá tệ nhưng nó được giảm thiểu đáng kể nếu bạn không để Starlette/FastAPI tiếp xúc trực tiếp với internet – nếu bạn sử dụng CDN, bộ cân bằng tải / Cổng API hoặc máy chủ web phía trước thì nó sẽ được giảm thiểu đáng kể.
Dịch vụ của bạn có thể được bảo vệ vì các cuộc tấn công phụ thuộc vào các ký tự không hợp lệ trong DNS (và trong hai trường hợp đầu tiên, có thể cần phải khớp để định tuyến lưu lượng truy cập đến đúng khách hàng).
Lỗ hổng đã được khắc phục kịp thời trong Starlette 1.0.1. Một công cụ quét trực tuyến miễn phí có sẵn tại badhost.org.
Về tác giả
Sergio De Simone
Hiển thị thêm Hiển thị bớt
Đánh giá bài viết này
Mức độ tiếp nhận
Phong cách
Đã liên hệ tác giả
Nội dung này thuộc chủ đề AI, ML & Kỹ thuật dữ liệu.
Các chủ đề liên quan:
Phát triển
DevOps
AI, ML & Kỹ thuật dữ liệu
Python
Mã nguồn mở
Agents
Lỗ hổng bảo mật
Bài viết liên quan
Nhà tài trợ liên quan
Phổ biến trên InfoQ
GitHub cắt giảm chi phí token quy trình làm việc của Agent tới 62% nhờ kiểm tra hàng ngày và cắt tỉa MCP
Tổng hợp tin tức Java: WildFly, Micronaut, Spring AI, Apache Fory, GlassFish Plugin, Open Liberty
Pullfrog AI: Giải pháp thay thế CodeRabbit mã nguồn mở được hỗ trợ bởi GitHub Actions
TamboUI hứa hẹn mang lại khả năng tốt hơn để xây dựng TUI trong Java
Nguồn tin: InfoQ AI — Tác giả: Sergio De Simone. Bản dịch tiếng Việt do AI thực hiện, có thể có sai sót.