CVE-2026-78598 Overview
CVE-2026-78598 is an incorrect authorization vulnerability [CWE-863] affecting the Kibana machine learning feature. An authenticated user with machine learning job management privileges in a single Kibana space can cause a job's saved object to become accessible across all spaces in the Kibana instance. The attacker does not need to hold access rights to those additional spaces. The flaw maps to CAPEC-180, Exploiting Incorrectly Configured Access Control Security Levels, and can lead to cross-space information disclosure and limited integrity impact on saved objects.
Critical Impact
Authenticated Kibana users can expose machine learning job saved objects across all Kibana spaces, bypassing the space-based access control boundary.
Affected Products
- Kibana 8.19 (prior to 8.19.19)
- Kibana 9.3 (prior to 9.3.8)
- Kibana 9.4 (prior to 9.4.4)
Discovery Timeline
- 2026-09-02 - CVE-2026-78598 published to NVD
- 2026-09-02 - Last updated in NVD database
Technical Details for CVE-2026-78598
Vulnerability Analysis
Kibana uses "spaces" to segment saved objects, dashboards, and features between logical tenants inside a single Kibana instance. Access to a saved object is expected to be constrained by the spaces the object is assigned to and the calling user's privileges in those spaces. The machine learning feature deviates from this model. When an authenticated user with ML job management privileges in one space manipulates a job's saved object, the authorization check does not correctly validate the target space set. The saved object becomes accessible across all spaces in the Kibana instance.
This exposes ML job metadata to principals in other spaces that hold ML read privileges but were never granted access to the originating space. The vulnerability requires authentication and low attack complexity, and it can be triggered over the network through standard Kibana APIs.
Root Cause
The root cause is an incorrect authorization decision [CWE-863] in the code path that assigns or updates the space list on machine learning job saved objects. The check confirms the caller can manage ML jobs in the current space but fails to confirm the caller has rights in every space where the object will be made visible. The result is a broken access control boundary between Kibana spaces for ML saved objects.
Attack Vector
An authenticated attacker with ML job management privileges in any accessible space issues a request that causes a job's saved object to be shared into additional or all spaces. Users in those additional spaces with ML read privileges then observe the job and its associated metadata. See the Elastic Security Update ESA-2026-156 for vendor details.
No verified public exploit code is available. Refer to the vendor advisory for reproduction details rather than synthetic proof-of-concept material.
Detection Methods for CVE-2026-78598
Indicators of Compromise
- Machine learning job saved objects that appear in Kibana spaces where they were not intentionally shared.
- Audit log entries showing ML saved object updates that expand the namespaces field beyond the originating space.
- Access to ML job APIs by users whose role mappings do not include the target space.
Detection Strategies
- Enable Kibana audit logging and alert on saved_object_update events for the ml-job type where the space list grows.
- Compare the current space assignment of every ML job saved object against an expected baseline exported after patching.
- Correlate Elasticsearch security audit events with Kibana user role mappings to flag ML API calls from users lacking privileges in the affected spaces.
Monitoring Recommendations
- Forward Kibana and Elasticsearch audit logs to a centralized analytics platform for retention and query.
- Alert on any programmatic call to the ML saved objects API that references * or multiple space identifiers.
- Review ML job inventories on a scheduled basis and require justification for jobs assigned to more than one space.
How to Mitigate CVE-2026-78598
Immediate Actions Required
- Upgrade Kibana to a fixed release: 8.19.19, 9.3.8, or 9.4.4, matching your deployment branch.
- Audit existing ML job saved objects and reset any that were shared into unintended spaces.
- Review role mappings and remove ML job management privileges from accounts that do not require them.
Patch Information
Elastic released fixes in Kibana 8.19.19, 9.3.8, and 9.4.4. Consult the Elastic Security Update ESA-2026-156 for the full advisory, affected versions, and upgrade guidance.
Workarounds
- Restrict machine_learning_admin and equivalent ML management roles to a minimal set of trusted administrators until patching completes.
- Segment sensitive workloads into dedicated Kibana instances rather than relying on spaces alone for tenancy isolation.
- Increase audit log retention and review ML saved object changes daily until the environment is fully upgraded.
# Configuration example: enable Kibana audit logging to capture saved object changes
# kibana.yml
xpack.security.audit.enabled: true
xpack.security.audit.appender.type: rolling-file
xpack.security.audit.appender.fileName: /var/log/kibana/audit.log
xpack.security.audit.ignore_filters:
- actions: ["http_request"]
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

