CVE-2026-56149 Overview
CVE-2026-56149 is a denial of service vulnerability in Elasticsearch caused by Allocation of Resources Without Limits or Throttling [CWE-770]. An authenticated user with elevated privileges can submit a specially crafted machine learning request that triggers excessive memory consumption. The excessive allocation follows the Excessive Allocation pattern [CAPEC-130] and can render the affected node unavailable.
Elastic addressed the issue in the Elasticsearch 8.19.17, 9.3.6, and 9.4.3 releases as part of security update ESA-2026-43. The flaw requires high privileges to exploit, which limits the pool of viable attackers to authorized cluster users or accounts obtained through credential theft.
Critical Impact
A privileged user can crash an Elasticsearch node by submitting a crafted machine learning request that exhausts memory, disrupting search and indexing availability.
Affected Products
- Elasticsearch versions prior to 8.19.17
- Elasticsearch 9.x versions prior to 9.3.6
- Elasticsearch 9.4.x versions prior to 9.4.3
Discovery Timeline
- 2026-07-01 - CVE-2026-56149 published to NVD
- 2026-07-01 - Last updated in NVD database
- ESA-2026-43 - Elastic publishes security update covering Elasticsearch 8.19.17, 9.3.6, and 9.4.3
Technical Details for CVE-2026-56149
Vulnerability Analysis
The vulnerability resides in the Elasticsearch machine learning subsystem. The subsystem accepts requests that trigger memory allocations proportional to attacker-influenced input without enforcing sufficient upper bounds. A privileged user submits a specially crafted machine learning request. The Java Virtual Machine (JVM) heap on the target node grows until the node becomes unresponsive or the process terminates.
Because Elasticsearch nodes participate in a cluster, an unavailable node forces shard reallocation and can degrade search and indexing performance across the cluster. The condition is a classic resource exhaustion issue mapped to [CWE-770] Allocation of Resources Without Limits or Throttling.
Root Cause
The machine learning code path processes user-supplied parameters that drive memory allocation without a guard that caps the request size, iteration count, or intermediate object footprint. Missing throttling and bounds checks let a single request consume the memory budget of the node. The design assumes that authenticated privileged callers act in good faith, which is not a safe assumption when credentials leak or an insider abuses access.
Attack Vector
Exploitation requires network access to the Elasticsearch REST API and an account with elevated privileges sufficient to invoke machine learning APIs. The attacker crafts a machine learning request with parameters chosen to maximize memory allocation on the target node. No user interaction is required. Successful exploitation impacts availability only. Confidentiality and integrity are not affected.
The vulnerability mechanism is described in prose because no verified proof-of-concept code is publicly available. See the Elastic Security Update ESA-2026-43 advisory for vendor-supplied details.
Detection Methods for CVE-2026-56149
Indicators of Compromise
- Sudden JVM heap growth on Elasticsearch data or ML nodes correlated with calls to /_ml/ API endpoints.
- Node departures, cluster state changes, or OutOfMemoryError entries in Elasticsearch logs following machine learning API activity.
- Elasticsearch audit log entries showing ML API calls from unexpected users, hosts, or service accounts.
Detection Strategies
- Enable Elasticsearch audit logging and alert on /_ml/anomaly_detectors, /_ml/data_frame/analytics, and related ML endpoints invoked by non-standard principals.
- Correlate ML API requests with node-level metrics such as heap usage, garbage collection pauses, and process restarts to identify abusive request patterns.
- Baseline normal ML workload size and payload structure. Alert on requests that deviate from established parameter ranges.
Monitoring Recommendations
- Ship Elasticsearch logs and JVM metrics to a centralized analytics platform and build dashboards for heap pressure by node.
- Monitor for repeated node failures or master elections that follow shortly after ML API traffic from a specific user.
- Track privileged role assignments granting manage_ml or machine_learning_admin and review them for least-privilege drift.
How to Mitigate CVE-2026-56149
Immediate Actions Required
- Upgrade Elasticsearch to 8.19.17, 9.3.6, 9.4.3, or later according to your deployment branch.
- Rotate credentials for any accounts holding manage_ml or machine_learning_admin privileges if abuse is suspected.
- Restrict machine learning API access to the minimum set of accounts and network sources required for operations.
Patch Information
Elastic released fixes in Elasticsearch 8.19.17, 9.3.6, and 9.4.3 under security update ESA-2026-43. Review the Elastic Security Update ESA-2026-43 advisory for the full list of fixed versions and upgrade guidance.
Workarounds
- Remove ML privileges (manage_ml, machine_learning_admin, machine_learning_user) from users that do not require them until patching is complete.
- Place Elasticsearch behind a reverse proxy or gateway that rate-limits requests to /_ml/ endpoints.
- Set conservative JVM heap sizes and enable circuit breakers so a single request cannot consume all node memory. Note that this reduces impact but does not fully remediate the flaw.
# Example: revoke ML role from a user via the Elasticsearch security API
curl -X PUT "https://es.example.local:9200/_security/user/analyst_jdoe" \
-H "Content-Type: application/json" \
-u elastic:$ES_PASSWORD \
-d '{
"roles": ["kibana_user", "read_only"],
"full_name": "J. Doe"
}'
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

