CVE-2025-68387

6.1 MEDIUM

📋 TL;DR

This CVE describes a cross-site scripting (XSS) vulnerability in Kibana's Vega AST evaluator that allows unauthenticated attackers to inject malicious scripts into web pages. When exploited, these scripts execute in victims' browsers, potentially stealing session cookies, credentials, or performing unauthorized actions. Organizations running vulnerable Kibana versions with internet-facing instances are primarily affected.

💻 Affected Systems

Products:
  • Elastic Kibana
Versions: 8.19.0 to 8.19.8, 9.1.0 to 9.1.8, 9.2.0 to 9.2.2
Operating Systems: All platforms running Kibana
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects Kibana instances with Vega visualizations enabled or accessible. The vulnerability is in the Vega AST evaluator function handler.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers steal administrator session cookies, gain full access to Kibana dashboards, exfiltrate sensitive indexed data, and pivot to backend Elasticsearch clusters.

🟠

Likely Case

Session hijacking of Kibana users, credential theft via phishing, defacement of dashboards, or limited data exposure from accessible indices.

🟢

If Mitigated

Script execution blocked by Content Security Policy (CSP), minimal impact with proper input validation and output encoding in place.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

The vulnerability requires attackers to craft malicious Vega specifications that get evaluated by the vulnerable handler. No authentication is required to trigger the vulnerability.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Kibana 8.19.9, 9.1.9, 9.2.3

Vendor Advisory: https://discuss.elastic.co/t/kibana-8-19-9-9-1-9-and-9-2-3-security-update-esa-2025-35/384183

Restart Required: Yes

Instructions:

1. Download the patched version from Elastic's website or repository. 2. Stop the Kibana service. 3. Backup configuration and data. 4. Install the updated version. 5. Restart the Kibana service. 6. Verify the version and functionality.

🔧 Temporary Workarounds

Disable Vega Visualizations

all

Temporarily disable Vega visualization functionality to prevent exploitation

kibana.yml: Set 'xpack.vega.enabled: false'
Restart Kibana after configuration change

Implement Content Security Policy

all

Add CSP headers to block inline script execution and restrict script sources

Add to web server config or Kibana proxy: 'Content-Security-Policy: script-src 'self''

🧯 If You Can't Patch

  • Isolate Kibana instances behind authentication proxies or VPNs to restrict access to trusted users only
  • Implement network segmentation to separate Kibana from sensitive backend systems and limit lateral movement potential

🔍 How to Verify

Check if Vulnerable:

Check Kibana version via web interface (Management > Stack Management > Overview) or API endpoint /api/status

Check Version:

curl -X GET 'http://localhost:5601/api/status' | grep 'number'

Verify Fix Applied:

Confirm version is 8.19.9, 9.1.9, or 9.2.3 or higher. Test Vega visualizations for proper functionality without XSS payloads.

📡 Detection & Monitoring

Log Indicators:

  • Unusual Vega specification POST requests with script tags or JavaScript payloads
  • Multiple failed authentication attempts following Vega visualization access

Network Indicators:

  • HTTP requests containing 'vega' or 'vega-lite' with encoded script payloads
  • Outbound connections to suspicious domains from Kibana server

SIEM Query:

source="kibana.log" AND ("vega" OR "eval") AND ("script" OR "javascript:" OR "onerror=" OR "onload=")

🔗 References

📤 Share & Export