CVE-2024-23450
Medium · 4.9CVSS
4.9
EPSS
1.3%
Published
Mar 27, 2024
CISA due date
—
Cloudanix analysis
A bug in how Elasticsearch handles very complicated nested data can make parts of the system stop working until restarted.
- Exploitation
- Remote Authenticated
- Attacker needs
- High Privilege
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Application
- Class
- Denial of service
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Processing a document containing excessive nesting depth through an ingest pipeline causes the Elasticsearch ingest node to terminate unexpectedly due to unhandled resource exhaustion or recursion limits.
Why it matters to the business
Adversaries with administrative ingest privileges can trigger repeated node crashes, resulting in indexing and search outages that disrupt data ingestion pipelines and dependent applications.
How an attack unfolds
An attacker with high-privileged access crafts a document with extreme nesting levels and submits it to an ingest pipeline on an Elasticsearch node; the node processes the document without sufficient depth validation and crashes, requiring manual restart.
How to fix it
Upgrade Elasticsearch to a build containing commit 09df99393193b2c53d92899662a8b8b3c55b45cd or later; disable or restrict ingest pipelines from untrusted sources until patched.
How to confirm the fix worked
Verify the running version includes the referenced commit, then attempt ingestion of a test document with controlled high nesting depth to confirm the node remains stable.
Typical attack path
- Obtain high-privileged credentials or API access to an ingest node
- Construct a document containing deeply nested objects or arrays
- Submit the document to a pipeline configured on the ingest node
- Observe node termination and repeat to sustain denial of service
How to detect it
Review Elasticsearch logs on ingest nodes for sudden terminations or stack traces occurring during pipeline document processing; correlate with API requests that trigger ingest operations.
What your security team should do
- Apply the fixed commit or subsequent release immediately on all ingest nodes
- Audit and restrict ingest pipeline permissions to the minimum required roles
- Implement resource limits and monitoring for ingest node stability
The record
A flaw was discovered in Elasticsearch, where processing a document in a deeply nested pipeline on an ingest node could cause the Elasticsearch node to crash.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Maven | org.elasticsearch:elasticsearch | 7.0.0 | 7.17.19 |
| Maven | org.elasticsearch:elasticsearch | 8.0.0 | 8.13.0 |
| Bitnami | elasticsearch | 7.0.0 | 7.17.19 |
| Chainguard | elasticsearch-8 | 0 | 8.13.1-r0 |
| Chainguard | elasticsearch-8-bitnami | 0 | 8.13.1-r0 |
| Chainguard | elasticsearch-8-config | 0 | 8.13.1-r0 |
| Chainguard | elasticsearch-8-iamguarded | 0 | 8.13.1-r0 |
| Chainguard | elasticsearch-config | 0 | 8.13.1-r0 |
| Chainguard | trino | 0 | 444-r0 |
| Chainguard | trino-config | 0 | 444-r0 |
| Chainguard | trino-oci-entrypoint | 0 | 444-r0 |
| Chainguard | trino-plugin-accumulo | 0 | 444-r0 |
| Chainguard | trino-plugin-ai-functions | 0 | 444-r0 |
| Chainguard | trino-plugin-atop | 0 | 444-r0 |
| Chainguard | trino-plugin-bigquery | 0 | 444-r0 |
| Chainguard | trino-plugin-blackhole | 0 | 444-r0 |
| Chainguard | trino-plugin-cassandra | 0 | 444-r0 |
| Chainguard | trino-plugin-clickhouse | 0 | 444-r0 |
| Chainguard | trino-plugin-delta-lake | 0 | 444-r0 |
| Chainguard | trino-plugin-druid | 0 | 444-r0 |
| Chainguard | trino-plugin-duckdb | 0 | 444-r0 |
| Chainguard | trino-plugin-elasticsearch | 0 | 444-r0 |
| Chainguard | trino-plugin-example-http | 0 | 444-r0 |
| Chainguard | trino-plugin-exasol | 0 | 444-r0 |
| Chainguard | trino-plugin-exchange-filesystem | 0 | 444-r0 |
| Chainguard | trino-plugin-exchange-hdfs | 0 | 444-r0 |
| Chainguard | trino-plugin-faker | 0 | 444-r0 |
| Chainguard | trino-plugin-functions-python | 0 | 444-r0 |
| Chainguard | trino-plugin-geospatial | 0 | 444-r0 |
| Chainguard | trino-plugin-google-sheets | 0 | 444-r0 |
| Chainguard | trino-plugin-hive | 0 | 444-r0 |
| Chainguard | trino-plugin-http-event-listener | 0 | 444-r0 |
| Chainguard | trino-plugin-http-server-event-listener | 0 | 444-r0 |
| Chainguard | trino-plugin-hudi | 0 | 444-r0 |
| Chainguard | trino-plugin-iceberg | 0 | 444-r0 |
| Chainguard | trino-plugin-ignite | 0 | 444-r0 |
| Chainguard | trino-plugin-jmx | 0 | 444-r0 |
| Chainguard | trino-plugin-kafka | 0 | 444-r0 |
| Chainguard | trino-plugin-kafka-event-listener | 0 | 444-r0 |
| Chainguard | trino-plugin-kinesis | 0 | 444-r0 |
| Chainguard | trino-plugin-kudu | 0 | 444-r0 |
| Chainguard | trino-plugin-lakehouse | 0 | 444-r0 |
| Chainguard | trino-plugin-ldap-group-provider | 0 | 444-r0 |
| Chainguard | trino-plugin-local-file | 0 | 444-r0 |
| Chainguard | trino-plugin-loki | 0 | 444-r0 |
| Chainguard | trino-plugin-mariadb | 0 | 444-r0 |
| Chainguard | trino-plugin-memory | 0 | 444-r0 |
| Chainguard | trino-plugin-ml | 0 | 444-r0 |
| Chainguard | trino-plugin-mongodb | 0 | 444-r0 |
| Chainguard | trino-plugin-mysql | 0 | 444-r0 |
| Chainguard | trino-plugin-mysql-event-listener | 0 | 444-r0 |
| Chainguard | trino-plugin-opa | 0 | 444-r0 |
| Chainguard | trino-plugin-openlineage | 0 | 444-r0 |
| Chainguard | trino-plugin-opensearch | 0 | 444-r0 |
| Chainguard | trino-plugin-oracle | 0 | 444-r0 |
| Chainguard | trino-plugin-password-authenticators | 0 | 444-r0 |
| Chainguard | trino-plugin-phoenix5 | 0 | 444-r0 |
| Chainguard | trino-plugin-pinot | 0 | 444-r0 |
| Chainguard | trino-plugin-postgresql | 0 | 444-r0 |
| Chainguard | trino-plugin-prometheus | 0 | 444-r0 |
| Chainguard | trino-plugin-ranger | 0 | 444-r0 |
| Chainguard | trino-plugin-raptor-legacy | 0 | 444-r0 |
| Chainguard | trino-plugin-redis | 0 | 444-r0 |
| Chainguard | trino-plugin-redshift | 0 | 444-r0 |
| Chainguard | trino-plugin-resource-group-managers | 0 | 444-r0 |
| Chainguard | trino-plugin-session-property-managers | 0 | 444-r0 |
| Chainguard | trino-plugin-singlestore | 0 | 444-r0 |
| Chainguard | trino-plugin-snowflake | 0 | 444-r0 |
| Chainguard | trino-plugin-spooling-filesystem | 0 | 444-r0 |
| Chainguard | trino-plugin-sqlserver | 0 | 444-r0 |
| Chainguard | trino-plugin-teradata-functions | 0 | 444-r0 |
| Chainguard | trino-plugin-thrift | 0 | 444-r0 |
| Chainguard | trino-plugin-tpcds | 0 | 444-r0 |
| Chainguard | trino-plugin-tpch | 0 | 444-r0 |
| Chainguard | trino-plugin-vertica | 0 | 444-r0 |
| Ubuntu:16.04:LTS | elasticsearch | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | elasticsearch | 0 | No fix |
| Wolfi | trino | 0 | 444-r0 |
| Wolfi | trino-config | 0 | 444-r0 |
| Wolfi | trino-oci-entrypoint | 0 | 444-r0 |
| Wolfi | trino-plugin-accumulo | 0 | 444-r0 |
| Wolfi | trino-plugin-ai-functions | 0 | 444-r0 |
| Wolfi | trino-plugin-atop | 0 | 444-r0 |
| Wolfi | trino-plugin-bigquery | 0 | 444-r0 |
| Wolfi | trino-plugin-blackhole | 0 | 444-r0 |
| Wolfi | trino-plugin-cassandra | 0 | 444-r0 |
| Wolfi | trino-plugin-clickhouse | 0 | 444-r0 |
| Wolfi | trino-plugin-delta-lake | 0 | 444-r0 |
| Wolfi | trino-plugin-druid | 0 | 444-r0 |
| Wolfi | trino-plugin-duckdb | 0 | 444-r0 |
| Wolfi | trino-plugin-elasticsearch | 0 | 444-r0 |
| Wolfi | trino-plugin-example-http | 0 | 444-r0 |
| Wolfi | trino-plugin-exasol | 0 | 444-r0 |
| Wolfi | trino-plugin-exchange-filesystem | 0 | 444-r0 |
| Wolfi | trino-plugin-exchange-hdfs | 0 | 444-r0 |
| Wolfi | trino-plugin-faker | 0 | 444-r0 |
| Wolfi | trino-plugin-functions-python | 0 | 444-r0 |
| Wolfi | trino-plugin-geospatial | 0 | 444-r0 |
| Wolfi | trino-plugin-google-sheets | 0 | 444-r0 |
| Wolfi | trino-plugin-hive | 0 | 444-r0 |
| Wolfi | trino-plugin-http-event-listener | 0 | 444-r0 |
| Wolfi | trino-plugin-http-server-event-listener | 0 | 444-r0 |
| Wolfi | trino-plugin-hudi | 0 | 444-r0 |
| Wolfi | trino-plugin-iceberg | 0 | 444-r0 |
| Wolfi | trino-plugin-ignite | 0 | 444-r0 |
| Wolfi | trino-plugin-jmx | 0 | 444-r0 |
| Wolfi | trino-plugin-kafka | 0 | 444-r0 |
| Wolfi | trino-plugin-kafka-event-listener | 0 | 444-r0 |
| Wolfi | trino-plugin-kinesis | 0 | 444-r0 |
| Wolfi | trino-plugin-kudu | 0 | 444-r0 |
| Wolfi | trino-plugin-lakehouse | 0 | 444-r0 |
| Wolfi | trino-plugin-ldap-group-provider | 0 | 444-r0 |
| Wolfi | trino-plugin-local-file | 0 | 444-r0 |
| Wolfi | trino-plugin-loki | 0 | 444-r0 |
| Wolfi | trino-plugin-mariadb | 0 | 444-r0 |
| Wolfi | trino-plugin-memory | 0 | 444-r0 |
| Wolfi | trino-plugin-ml | 0 | 444-r0 |
| Wolfi | trino-plugin-mongodb | 0 | 444-r0 |
| Wolfi | trino-plugin-mysql | 0 | 444-r0 |
| Wolfi | trino-plugin-mysql-event-listener | 0 | 444-r0 |
| Wolfi | trino-plugin-opa | 0 | 444-r0 |
| Wolfi | trino-plugin-openlineage | 0 | 444-r0 |
| Wolfi | trino-plugin-opensearch | 0 | 444-r0 |
| Wolfi | trino-plugin-oracle | 0 | 444-r0 |
| Wolfi | trino-plugin-password-authenticators | 0 | 444-r0 |
| Wolfi | trino-plugin-phoenix5 | 0 | 444-r0 |
| Wolfi | trino-plugin-pinot | 0 | 444-r0 |
| Wolfi | trino-plugin-postgresql | 0 | 444-r0 |
| Wolfi | trino-plugin-prometheus | 0 | 444-r0 |
| Wolfi | trino-plugin-ranger | 0 | 444-r0 |
| Wolfi | trino-plugin-raptor-legacy | 0 | 444-r0 |
| Wolfi | trino-plugin-redis | 0 | 444-r0 |
| Wolfi | trino-plugin-redshift | 0 | 444-r0 |
| Wolfi | trino-plugin-resource-group-managers | 0 | 444-r0 |
| Wolfi | trino-plugin-session-property-managers | 0 | 444-r0 |
| Wolfi | trino-plugin-singlestore | 0 | 444-r0 |
| Wolfi | trino-plugin-snowflake | 0 | 444-r0 |
| Wolfi | trino-plugin-spooling-filesystem | 0 | 444-r0 |
| Wolfi | trino-plugin-sqlserver | 0 | 444-r0 |
| Wolfi | trino-plugin-teradata-functions | 0 | 444-r0 |
| Wolfi | trino-plugin-thrift | 0 | 444-r0 |
| Wolfi | trino-plugin-tpcds | 0 | 444-r0 |
| Wolfi | trino-plugin-tpch | 0 | 444-r0 |
| Wolfi | trino-plugin-vertica | 0 | 444-r0 |
| maven | org.elasticsearch/elasticsearch | 7.0.0 | 7.17.19 |
| maven | org.elasticsearch/elasticsearch | 8.0.0 | 8.13.0 |
Related vulnerabilities
- CVE-2025-37731 Improper Authentication in Elasticsearch PKI realm can lead to user impersonation via… Also affects org.elasticsearch:elasticsearch
- CVE-2024-12539 Elasticsearch Incorrect Authorization vulnerability Also affects org.elasticsearch:elasticsearch
- CVE-2024-23444 It was discovered by Elastic engineering that when elasticsearch-certutil CLI tool is… Also affects org.elasticsearch:elasticsearch
- CVE-2023-49921 An issue was discovered by Elastic whereby Watcher search input logged the search query… Also affects org.elasticsearch:elasticsearch
- CVE-2024-37280 A flaw was discovered in Elasticsearch, affecting document ingestion when an index… Also affects org.elasticsearch:elasticsearch
- CVE-2024-23449 An uncaught exception in Elasticsearch >= 8.4.0 and < 8.11.1 occurs when an encrypted PDF… Also affects org.elasticsearch:elasticsearch
- CVE-2024-23451 Incorrect Authorization issue exists in the API key based security model for Remote… Also affects org.elasticsearch:elasticsearch
- CVE-2023-46673 It was identified that malformed scripts used in the script processor of an Ingest… Also affects org.elasticsearch:elasticsearch