CVE-2024-52290

6.3 MEDIUM

📋 TL;DR

This is a stored cross-site scripting (XSS) vulnerability in LF Edge eKuiper IoT analytics engine. Users with modification rights (kuiperUser role) can inject malicious scripts into Connection Configuration names, which execute when administrators attempt to delete those configurations. This affects all eKuiper deployments prior to version 2.1.0.

💻 Affected Systems

Products:
  • LF Edge eKuiper
Versions: All versions prior to 2.1.0
Operating Systems: All platforms running eKuiper
Default Config Vulnerable: ⚠️ Yes
Notes: Requires at least kuiperUser role privileges to exploit, but affects all users with access to the service interface.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Administrator account compromise leading to full system takeover, data exfiltration, or lateral movement within the network.

🟠

Likely Case

Session hijacking of admin users, credential theft, or unauthorized actions performed with admin privileges.

🟢

If Mitigated

Limited impact due to proper input validation and output encoding, with only minor UI disruption possible.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: HIGH

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires authenticated user with modification rights (kuiperUser role). The vulnerability is in the web interface when deleting connection configurations.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.1.0

Vendor Advisory: https://github.com/lf-edge/ekuiper/security/advisories/GHSA-9cwv-pxcr-hfjc

Restart Required: Yes

Instructions:

1. Backup current configuration and data. 2. Stop eKuiper service. 3. Upgrade to version 2.1.0 or later. 4. Restart eKuiper service. 5. Verify functionality.

🔧 Temporary Workarounds

Input Validation Filter

all

Implement server-side input validation to sanitize Connection Configuration names

# Requires custom middleware or configuration modification
# Not available as simple command

Role-Based Access Restriction

all

Temporarily restrict kuiperUser role permissions to prevent configuration name modifications

# Modify role permissions in eKuiper configuration
# Not available as simple command

🧯 If You Can't Patch

  • Implement strict Content Security Policy (CSP) headers to mitigate XSS impact
  • Monitor and audit all connection configuration changes and deletion attempts

🔍 How to Verify

Check if Vulnerable:

Check eKuiper version: if version is below 2.1.0, system is vulnerable. Also test by creating connection configuration with XSS payload in name field.

Check Version:

ekuiper version

Verify Fix Applied:

After upgrading to 2.1.0, attempt to inject XSS payload into Connection Configuration name and verify it's properly sanitized.

📡 Detection & Monitoring

Log Indicators:

  • Unusual connection configuration names containing script tags or JavaScript code
  • Multiple failed deletion attempts of connection configurations
  • Admin session anomalies following configuration deletions

Network Indicators:

  • Unexpected outbound connections from eKuiper server following admin actions
  • Suspicious HTTP requests containing script payloads

SIEM Query:

source="ekuiper" AND ("connection" AND "delete") AND ("script" OR "javascript" OR "onerror" OR "onload")

🔗 References

📤 Share & Export