CVE-2025-25014

9.1 CRITICAL

📋 TL;DR

A prototype pollution vulnerability in Kibana allows attackers to execute arbitrary code by sending specially crafted HTTP requests to machine learning and reporting endpoints. This affects all Kibana instances with these endpoints enabled, potentially giving attackers full control over the Kibana server.

💻 Affected Systems

Products:
  • Kibana
Versions: 8.17.0 to 8.17.5, 8.18.0, 9.0.0
Operating Systems: All platforms running Kibana
Default Config Vulnerable: ⚠️ Yes
Notes: Requires machine learning or reporting endpoints to be accessible. These are typically enabled in default configurations.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete compromise of the Kibana server leading to data exfiltration, lateral movement to connected Elasticsearch clusters, and persistent backdoor installation.

🟠

Likely Case

Remote code execution on Kibana servers allowing attackers to access sensitive data, modify dashboards, and potentially pivot to Elasticsearch infrastructure.

🟢

If Mitigated

Limited impact if network segmentation prevents external access and proper authentication/authorization is enforced, though internal threats remain.

🌐 Internet-Facing: HIGH - Internet-facing Kibana instances are directly exploitable without authentication to the vulnerable endpoints.
🏢 Internal Only: HIGH - Even internally accessible instances are vulnerable to authenticated users or attackers who gain internal network access.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: MEDIUM

Exploitation requires crafting specific HTTP requests but does not require authentication to vulnerable endpoints. The vulnerability is in prototype handling of request parameters.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 8.17.6, 8.18.1, or 9.0.1

Vendor Advisory: https://discuss.elastic.co/t/kibana-8-17-6-8-18-1-or-9-0-1-security-update-esa-2025-07/377868

Restart Required: Yes

Instructions:

1. Download Kibana 8.17.6, 8.18.1, or 9.0.1 from Elastic website. 2. Stop Kibana service. 3. Backup configuration and data. 4. Install updated version. 5. Restart Kibana service. 6. Verify functionality.

🔧 Temporary Workarounds

Disable vulnerable endpoints

all

Temporarily disable machine learning and reporting endpoints if not required

Modify kibana.yml: xpack.ml.enabled: false
Modify kibana.yml: xpack.reporting.enabled: false

Network access controls

all

Restrict network access to Kibana machine learning and reporting endpoints

firewall rules to block external access to /api/ml/* and /api/reporting/* endpoints

🧯 If You Can't Patch

  • Implement strict network segmentation to isolate Kibana from untrusted networks
  • Enable authentication and authorization for all Kibana endpoints, implement IP whitelisting

🔍 How to Verify

Check if Vulnerable:

Check Kibana version via API: curl -X GET 'http://kibana-host:5601/api/status' | grep number

Check Version:

curl -X GET 'http://kibana-host:5601/api/status' | grep -o '"number":"[^"]*"'

Verify Fix Applied:

Confirm version is 8.17.6, 8.18.1, or 9.0.1 via same API endpoint

📡 Detection & Monitoring

Log Indicators:

  • Unusual HTTP requests to /api/ml/* or /api/reporting/* endpoints
  • Multiple failed prototype validation attempts
  • Unexpected process execution from Kibana

Network Indicators:

  • HTTP POST/PUT requests with malformed JSON objects to machine learning endpoints
  • Unusual outbound connections from Kibana server

SIEM Query:

source="kibana.log" AND (uri_path="/api/ml/*" OR uri_path="/api/reporting/*") AND (http_method="POST" OR http_method="PUT") AND status=200 AND size_bytes>10000

🔗 References

📤 Share & Export