CVE-2024-28255
📋 TL;DR
CVE-2024-28255 is an authentication bypass vulnerability in OpenMetadata's JWT filter that allows attackers to access protected endpoints without valid credentials by manipulating path parameters. This affects all OpenMetadata deployments using versions before 1.2.4. Successful exploitation can lead to unauthorized access and potential remote code execution via SpEL injection.
💻 Affected Systems
- OpenMetadata
📦 What is this software?
Openmetadata by Open Metadata
⚠️ Risk & Real-World Impact
Worst Case
Complete system compromise via authentication bypass leading to arbitrary SpEL expression injection and remote code execution, potentially allowing full control over the OpenMetadata instance and underlying infrastructure.
Likely Case
Unauthorized access to sensitive metadata, configuration data, and administrative functions, potentially leading to data exfiltration, privilege escalation, or service disruption.
If Mitigated
Limited impact with proper network segmentation and monitoring, potentially only exposing non-sensitive endpoints or causing authentication errors.
🎯 Exploit Status
The vulnerability is straightforward to exploit by crafting URLs with path parameters that match excluded endpoints. No authentication required.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 1.2.4
Vendor Advisory: https://github.com/open-metadata/OpenMetadata/security/advisories/GHSA-6wx7-qw5p-wh84
Restart Required: Yes
Instructions:
1. Backup your OpenMetadata configuration and data. 2. Stop the OpenMetadata service. 3. Upgrade to version 1.2.4 or later using your deployment method (Docker, Kubernetes, or direct installation). 4. Restart the service. 5. Verify the fix by testing authentication requirements.
🔧 Temporary Workarounds
No official workarounds
allThe vendor advisory states there are no known workarounds for this vulnerability.
🧯 If You Can't Patch
- Implement strict network access controls to limit OpenMetadata access to trusted IP addresses only
- Deploy a web application firewall (WAF) with rules to detect and block path parameter manipulation attempts
🔍 How to Verify
Check if Vulnerable:
Check if your OpenMetadata version is below 1.2.4. Attempt to access a protected endpoint using a crafted URL with path parameters that might bypass authentication.
Check Version:
Check the OpenMetadata UI dashboard or API endpoint for version information, or examine deployment manifests/configuration files.
Verify Fix Applied:
After upgrading to 1.2.4 or later, verify that authentication is required for all protected endpoints and that path parameter manipulation no longer bypasses authentication.
📡 Detection & Monitoring
Log Indicators:
- Unusual authentication bypass patterns in access logs
- Requests with semicolons or encoded slashes in URLs
- Access to protected endpoints without authentication tokens
Network Indicators:
- HTTP requests containing ;v1%2fusers%2flogin in the path
- Unauthenticated requests to normally protected API endpoints
SIEM Query:
source="openmetadata" AND (url="*;*" OR status_code=200 AND auth_token=null AND url!="/api/v1/users/login")
🔗 References
- https://github.com/open-metadata/OpenMetadata/blob/e2043a3f31312ebb42391d6c93a67584d798de52/openmetadata-service/src/main/java/org/openmetadata/service/security/JwtFilter.java#L111
- https://github.com/open-metadata/OpenMetadata/blob/e2043a3f31312ebb42391d6c93a67584d798de52/openmetadata-service/src/main/java/org/openmetadata/service/security/JwtFilter.java#L113
- https://github.com/open-metadata/OpenMetadata/security/advisories/GHSA-6wx7-qw5p-wh84
- https://github.com/open-metadata/OpenMetadata/blob/e2043a3f31312ebb42391d6c93a67584d798de52/openmetadata-service/src/main/java/org/openmetadata/service/security/JwtFilter.java#L111
- https://github.com/open-metadata/OpenMetadata/blob/e2043a3f31312ebb42391d6c93a67584d798de52/openmetadata-service/src/main/java/org/openmetadata/service/security/JwtFilter.java#L113
- https://github.com/open-metadata/OpenMetadata/security/advisories/GHSA-6wx7-qw5p-wh84
- https://www.vicarius.io/vsociety/posts/authentication-bypass-with-path-parameter-in-openmetadata-cve-2024-28255