Lỗ hổng trong MCP Python SDK cho phép kẻ tấn công đánh cắp thông tin xác thực OAuth
Các nhà phát triển sử dụng MCP Python SDK cần cập nhật ngay lập tức để ngăn chặn lỗ hổng cho phép máy chủ độc hại chiếm đoạt thông tin xác thực OAuth.
- Giọng nữ Bắc
Một lỗ hổng bảo mật nghiêm trọng vừa được phát hiện trong Model Context Protocol (MCP) Python SDK, cho phép các máy chủ MCP độc hại đánh lừa ứng dụng và chiếm đoạt thông tin xác thực OAuth. Theo các chuyên gia, lỗ hổng này có thể bị khai thác để truy cập trái phép vào các dịch vụ mà ứng dụng đang kết nối.
Table Of Content
Chi tiết về lỗ hổng
Lỗ hổng nằm ở cách thức SDK xử lý quá trình xác thực. Cụ thể, các phiên bản bị ảnh hưởng không kiểm soát chặt chẽ nguồn gốc của máy chủ xác thực (authorization server). Khi một ứng dụng MCP kết nối với một máy chủ độc hại, kẻ tấn công có thể điều hướng yêu cầu xác thực đến một dịch vụ do chúng kiểm soát. Kết quả là, ứng dụng sẽ vô tình gửi các thông tin nhạy cảm bao gồm: client secret, authorization code và PKCE proof key trực tiếp cho kẻ tấn công.
Với những thông tin này, kẻ tấn công có thể yêu cầu một access token hợp lệ từ dịch vụ thực tế, từ đó chiếm quyền truy cập với đầy đủ các đặc quyền mà ứng dụng được cấp. Vì client secret thường có thời hạn sử dụng dài, rủi ro duy trì cho đến khi thông tin này được thay đổi.
Phạm vi ảnh hưởng
Lỗ hổng này ảnh hưởng đến các ứng dụng sử dụng SDK làm MCP client qua giao thức HTTP với các nhà cung cấp OAuth như: OAuthClientProvider, ClientCredentialsOAuthProvider, PrivateKeyJWTOAuthProvider và phiên bản cũ RFC7523OAuthClientProvider.
- Dòng 1.x: Phiên bản 1.9.1 đến 1.29.1 (Cần cập nhật lên 1.30.0).
- Dòng 2.x: Phiên bản 2.0.0 đến 2.1.1 (Cần cập nhật lên 2.2.0).
Khuyến nghị bảo mật
Người dùng cần thực hiện các bước sau để khắc phục:
- Cập nhật SDK: Nâng cấp lên phiên bản 1.30.0 hoặc 2.2.0 tương ứng.
- Cấu hình tham số issuer: Đối với ClientCredentialsOAuthProvider và PrivateKeyJWTOAuthProvider, việc nâng cấp là chưa đủ. Bạn cần bổ sung tham số
issuer=để chỉ định rõ dịch vụ xác thực tin cậy. - Xoay vòng thông tin xác thực: Nếu ứng dụng đã từng kết nối với các máy chủ không xác định, hãy thực hiện xoay vòng client secret và thu hồi các token hiện có tại dịch vụ xác thực.
- Dọn dẹp đăng ký: Xóa các đăng ký OAuth client cũ vì chúng có thể không được liên kết với một dịch vụ xác thực cụ thể.
Hiện tại, chưa có báo cáo về việc lỗ hổng này bị khai thác trong thực tế. Tuy nhiên, các nhà phát triển nên sớm thực hiện các bản vá để đảm bảo an toàn cho hệ thống.
Nguồn tham khảo: The Hacker News



No Comment! Be the first one.