CVE-2024-4680 Overview
CVE-2024-4680 is an insufficient session expiration vulnerability [CWE-613] affecting zenml-io/zenml version 0.56.3. The flaw allows attackers to reuse old session credentials or session IDs after a password change. When a user updates their password, existing sessions remain active in other browsers or clients without requiring re-authentication.
The issue was reproduced in a self-hosted ZenML deployment running via Docker. An attacker with a previously compromised session retains access to the account even after the legitimate user rotates the password. The victim cannot revoke attacker access through the normal credential-reset workflow.
Critical Impact
Attackers who compromise a ZenML session can maintain persistent access to accounts and machine learning pipelines even after the victim changes their password.
Affected Products
- ZenML 0.56.3 (self-hosted deployments, including Docker)
- ZenML server components handling session lifecycle
- Deployments that permit remote user password changes without terminating existing sessions
Discovery Timeline
- 2024-06-08 - CVE-2024-4680 published to NVD
- 2026-06-17 - Last updated in NVD database
Technical Details for CVE-2024-4680
Vulnerability Analysis
ZenML is an open-source machine learning operations (MLOps) framework that provides a web interface and API for managing ML pipelines. Version 0.56.3 fails to invalidate active sessions when a user changes their password. The server treats session tokens as valid until their original expiration time regardless of credential rotation.
This behavior violates the fundamental security expectation that a password change terminates existing authenticated sessions. Password rotation is one of the primary defensive controls users invoke after suspecting account compromise. When session invalidation does not accompany the password change, the control provides no meaningful protection.
The vulnerability was demonstrated by authenticating to a ZenML instance in one browser, changing the password from a second browser, and verifying that the first browser retained authenticated access without re-authentication prompts.
Root Cause
The root cause is missing server-side session revocation logic tied to credential change events [CWE-613]. The authentication subsystem does not maintain a mapping between user credentials and issued session identifiers. Consequently, no invalidation routine executes when the password record updates.
Attack Vector
An attacker who obtains a session token or session cookie through phishing, cross-site scripting, network interception, or shared-device access can maintain that session indefinitely. The victim's password rotation does not eject the attacker. Exploitation requires user interaction to initially expose the session material, after which the attacker acts autonomously against the ZenML web interface and API.
See the Huntr Bounty Report for the reproduction steps and researcher notes.
Detection Methods for CVE-2024-4680
Indicators of Compromise
- Concurrent active sessions for the same user account originating from geographically distant IP addresses
- Session activity from a source IP continuing after a password change event
- API calls using bearer tokens issued prior to the last credential update
- Unexpected pipeline creation, execution, or artifact access under user accounts that recently rotated credentials
Detection Strategies
- Correlate ZenML password-change audit events with subsequent session activity from pre-change session identifiers
- Alert on sessions that persist beyond credential rotation timestamps recorded in the identity store
- Baseline typical session duration per user and flag sessions exceeding two standard deviations
Monitoring Recommendations
- Enable and centralize ZenML server access logs, including session and token identifiers
- Forward authentication and password-change events to a SIEM for correlation with downstream API activity
- Monitor Docker container logs for /api/v1/login and password update endpoints to reconstruct session lifecycles
How to Mitigate CVE-2024-4680
Immediate Actions Required
- Upgrade ZenML beyond version 0.56.3 once a fixed release is available from the vendor
- Manually invalidate all active sessions and API tokens for any user who has changed a password recently
- Restrict network exposure of self-hosted ZenML deployments to trusted networks or VPNs
- Rotate any long-lived API tokens issued by the affected server
Patch Information
No vendor advisory URL was published in the NVD entry at the time of writing. Refer to the Huntr Bounty Report and the upstream zenml-io/zenml repository for remediation guidance and release notes addressing session lifecycle handling.
Workarounds
- Force a full server restart after mass password rotations to clear in-memory session state where applicable
- Reduce session and token time-to-live configuration to the shortest interval operationally acceptable
- Require multi-factor authentication in front of the ZenML web interface using a reverse proxy or identity-aware gateway
- Instruct users to explicitly log out of all sessions after any suspected credential compromise
# Example: place ZenML behind an authenticating reverse proxy and shorten session TTL
# nginx snippet enforcing short client session cookies
proxy_cookie_path / "/; HttpOnly; Secure; SameSite=Strict; Max-Age=900";
# Rotate all ZenML API keys after upgrade
zenml service-account list
zenml service-account delete <compromised-account-name>
zenml service-account create <new-account-name>
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

