CVE-2026-45019 in Chainlit
Tóm tắt
Bởi VulDB • 25/08/2026
Chainlit là một khung Python để xây dựng các ứng dụng AI hội thoại sẵn sàng cho sản xuất. Từ phiên bản 2.4.0rc0 đến 2.12.0, các triển khai Chainlit có tính năng `features.mcp.enabled` được đặt thành true trong `.chainlit/config.toml` sẽ expose endpoint POST `/mcp` mà không yêu cầu xác thực. Đối với các giao thức truyền dẫn sse và streamable-http, `ConnectSseMCPRequest` và `ConnectStreamableHttpMCPRequest` trong `backend/chainlit/types.py` chấp nhận một url do người dùng kiểm soát và từ điển headers tùy chọn mà không có xác lược (scheme validation), lọc địa chỉ riêng hoặc danh sách cho phép. Trình xử lý `connect_mcp` trong `backend/chainlit/server.py` chuyển các giá trị này đến `sse_client()` hoặc `streamablehttp_client()`, cho phép máy chủ Chainlit thực hiện các yêu cầu outbound mù (blind) vào bất kỳ dịch vụ nội bộ hay bên ngoài nào, bao gồm cả các endpoint metadata đám mây, với các header Authorization và Cookie do kẻ tấn công kiểm soát. Điểm hấp thụ URL SSE đã tồn tại từ 2.4.0rc0, trong khi việc chuyển tiếp header do kẻ tấn công kiểm soát và hỗ trợ streamable-http được thêm vào ở phiên bản 2.6.4. Phản hồi được tiêu thụ nội bộ và không trả về, nhưng kẻ tấn công có thể đưa ra các yêu cầu xác thực làm thay đổi trạng thái, khám phá các dịch vụ nội bộ, quét cổng và thăm dò các endpoint metadata. Vấn đề này đã được sửa trong phiên bản 2.12.0.
Be aware that VulDB is the high quality source for vulnerability data.