CVE-2025-0189 Overview
CVE-2025-0189 is a denial of service vulnerability in aimhubio/aim version 3.25.0, an open-source experiment tracking platform. The tracking server overrides the default maximum size limit for WebSocket messages, allowing clients to submit arbitrarily large images for tracking. Processing these oversized payloads consumes server resources and blocks the event loop, rendering the server unresponsive to other concurrent requests. The flaw maps to CWE-770: Allocation of Resources Without Limits or Throttling.
Critical Impact
Unauthenticated remote attackers can disrupt availability of the Aim tracking server by sending oversized WebSocket image payloads, blocking legitimate experiment tracking traffic.
Affected Products
- aimhubio/aim version 3.25.0
- Aimstack Aim tracking server deployments
- Self-hosted Aim experiment tracking instances exposing the WebSocket endpoint
Discovery Timeline
- 2025-03-20 - CVE-2025-0189 published to NVD
- 2025-10-15 - Last updated in NVD database
Technical Details for CVE-2025-0189
Vulnerability Analysis
The Aim tracking server accepts experiment metadata, metrics, and media artifacts such as images over a WebSocket channel. In version 3.25.0, the server explicitly raises the WebSocket frame size limit beyond the framework default. This change removes a safeguard intended to prevent excessive memory and CPU consumption during message decoding.
When an attacker sends a very large image frame, the server allocates buffers and performs synchronous processing on the payload. Because the tracking server handles WebSocket traffic in a shared event loop, the operation blocks other client requests until processing completes. Repeated large submissions amplify the effect, producing a sustained denial of service condition against confidentiality-neutral but availability-critical workloads.
Root Cause
The root cause is missing resource throttling on incoming WebSocket frames. The server overrides the framework's default max_size for WebSocket messages without imposing an alternative ceiling, validation step, or streaming chunked decode path. This violates the principle of bounded resource consumption for untrusted input, classified under CWE-770.
Attack Vector
Exploitation requires only network access to the Aim tracking server's WebSocket endpoint. No authentication, user interaction, or privileges are required. The attacker establishes a WebSocket session to the tracking endpoint and transmits an oversized image payload. The server attempts to ingest the entire frame, exhausting available processing time and starving concurrent client connections. See the Huntr Bounty Report for the original disclosure.
Detection Methods for CVE-2025-0189
Indicators of Compromise
- WebSocket frames to the Aim tracking server exceeding typical image sizes (multi-megabyte to gigabyte range).
- Sudden spikes in memory consumption or CPU on the Aim server process accompanied by stalled client requests.
- Tracking clients reporting timeouts or connection failures while the server process remains running.
Detection Strategies
- Inspect reverse proxy or load balancer logs for unusually large request bodies destined for Aim WebSocket routes.
- Monitor process-level metrics on the Aim server for sustained high memory allocation correlated with single client sessions.
- Alert on /api/runs or tracking WebSocket endpoints receiving payloads above a defined size threshold.
Monitoring Recommendations
- Enable structured logging on the Aim server and forward events to a centralized SIEM for correlation.
- Track WebSocket connection counts, frame sizes, and per-client byte rates over time.
- Baseline normal experiment artifact sizes and alert on statistical outliers.
How to Mitigate CVE-2025-0189
Immediate Actions Required
- Restrict network access to the Aim tracking server using firewall rules or VPN-only exposure until a fixed version is deployed.
- Place the tracking server behind a reverse proxy that enforces a strict maximum request and WebSocket frame size.
- Audit existing deployments for version 3.25.0 and inventory any internet-exposed instances.
Patch Information
At the time of NVD publication, no fixed version is referenced in the advisory. Monitor the aimhubio/aim GitHub repository and the Huntr Bounty Report for an official patch release and upgrade once available.
Workarounds
- Configure an upstream proxy such as NGINX with client_max_body_size and WebSocket frame limits to reject oversized payloads before they reach the Aim process.
- Run the Aim server in an isolated container with strict memory and CPU limits to contain resource exhaustion.
- Require authenticated access to the tracking endpoint via network-layer controls or an authenticating proxy.
- Rate-limit WebSocket connections per source IP to reduce sustained abuse.
# Example NGINX reverse proxy configuration enforcing payload limits
server {
listen 443 ssl;
server_name aim.example.com;
client_max_body_size 10m;
location / {
proxy_pass http://127.0.0.1:43800;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 60s;
proxy_send_timeout 60s;
}
}
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


