OpenBMB XAgent Missing Authentication Vulnerability in WebSocket Share Endpoint
Vulnerability
A missing authentication vulnerability has been identified in OpenBMB XAgent version 1.0.0, specifically within the ShareServer WebSocket endpoint. The issue arises in the 'check_user' function of 'XAgentServer/application/websockets/share.py', where the authentication check has been disabled. This flaw allows any unauthenticated client to connect to the WebSocket endpoint '/ws/share/{interaction_id}' using fake credentials. Once connected, the client can request the execution history of any interaction, including sensitive third-party API keys stored in plaintext. The vulnerability can be exploited remotely, without the need for a valid account or special tools.
Impact
Exploitation of this vulnerability allows for unauthorized access to sensitive information, including third-party API keys and the complete execution history of interactions, all without any form of authentication.
Reproduction
To reproduce this vulnerability, deploy OpenBMB XAgent version 1.0.0 using Docker. After the application is running, an attacker can connect to the vulnerable WebSocket endpoint '/ws/share/{interaction_id}' with fabricated user credentials. The server will accept the connection, bypassing authentication. The attacker can then send a request to retrieve the execution history, which will include unmasked API keys from previous interactions.
Vulnerability Rating
Our algorithm analyzes dozens of metrics to generate these 8 key vulnerability categories, which are then combined to calculate the overall risk score.
