CVE-2024-43709

6.5 MEDIUM

📋 TL;DR

This vulnerability in Elasticsearch allows attackers to cause a denial of service by sending specially crafted SQL queries that trigger excessive memory allocation, leading to OutOfMemoryError crashes. It affects Elasticsearch instances with SQL functionality enabled, particularly those exposed to untrusted queries.

💻 Affected Systems

Products:
  • Elasticsearch
Versions: Versions before 7.17.21 and 8.13.3
Operating Systems: All supported platforms
Default Config Vulnerable: ⚠️ Yes
Notes: Requires SQL functionality to be enabled (default in many configurations).

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete service outage due to Elasticsearch node crashes, potentially affecting multiple nodes in a cluster if exploited repeatedly.

🟠

Likely Case

Targeted DoS attacks causing intermittent service disruptions and degraded performance.

🟢

If Mitigated

Minimal impact with proper query validation, rate limiting, and memory monitoring in place.

🌐 Internet-Facing: HIGH - Internet-facing Elasticsearch instances are directly vulnerable to DoS attacks via crafted queries.
🏢 Internal Only: MEDIUM - Internal instances are still vulnerable to insider threats or compromised internal systems.

🎯 Exploit Status

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

Crafting malicious SQL queries requires minimal technical skill, making this easily weaponizable.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 7.17.21 and 8.13.3

Vendor Advisory: https://discuss.elastic.co/t/elasticsearch-7-17-21-and-8-13-3-security-update-esa-2024-25/373442

Restart Required: Yes

Instructions:

1. Backup your Elasticsearch data and configuration. 2. Download the patched version from elastic.co. 3. Stop Elasticsearch service. 4. Install the new version. 5. Restart Elasticsearch service. 6. Verify the version and functionality.

🔧 Temporary Workarounds

Disable SQL functionality

all

Temporarily disable SQL query functionality if not required

Set xpack.sql.enabled: false in elasticsearch.yml

Implement query rate limiting

all

Limit the rate of SQL queries per client/IP

Configure using Elasticsearch security features or external proxies

🧯 If You Can't Patch

  • Implement strict network access controls to limit Elasticsearch exposure
  • Deploy memory monitoring and alerting to detect abnormal memory consumption patterns

🔍 How to Verify

Check if Vulnerable:

Check Elasticsearch version and compare with affected versions (before 7.17.21 or 8.13.3)

Check Version:

curl -X GET "localhost:9200" | grep number

Verify Fix Applied:

Confirm version is 7.17.21+ or 8.13.3+ and test SQL queries for normal memory behavior

📡 Detection & Monitoring

Log Indicators:

  • OutOfMemoryError exceptions in Elasticsearch logs
  • Abnormally high memory usage patterns
  • Frequent node restarts

Network Indicators:

  • High volume of SQL queries from single sources
  • Unusual query patterns with complex SQL functions

SIEM Query:

source="elasticsearch.logs" AND ("OutOfMemoryError" OR "java.lang.OutOfMemoryError")

🔗 References

📤 Share & Export