Skip to content
Fencer Vulns
low 3.7

CVE-2025-24978 json

LF Edge eKuiper: Self-XSS in External Service Creation

published 2026-09-09 1 mo ago modified 2026-09-17 52 d ago also GHSA-g8rh-fjm6-h2h9 , GO-2026-6446

cvss
3.7
version 3.1, GitHub
cisa kev
Not listed
not in CISA's catalog
epss
—
no EPSS score yet
public exploits
0
none known

Summary

### Summary A Cross-Site Scripting (XSS) vulnerability in external service creation allows an authenticated attacker to inject HTML/script payloads into external service names, which may execute in a user's browser when rendered by administrative web interfaces.

### Details Prior to v2.4.0, external service registration endpoints did not strictly enforce alphanumeric character restrictions on service names. An operator or attacker with API access could register a service using a crafted name containing HTML elements (such as `<iframe src="...">`). If an administrative web UI rendered the unescaped service name, arbitrary script execution could occur in the context of the user's browser session.

### PoC 1. Create an external service JSON definition with a filename containing an XSS payload, e.g. `<iframe src="javascript:alert`1337`">.json` inside a ZIP archive. 2. In external service creation, upload the ZIP and provide the matching service name: `<iframe src="javascript:alert`1337`">`. 3. Upon service registration, the unescaped name executes when rendered in the UI context.

### Impact Self-XSS / Stored XSS leading to potential session token leakage or unauthorized actions in the context of the affected user's browser session.

### Remediation & Patches - **Upgrade to eKuiper >= 2.4.0**: Strict alphanumeric identifier validation (`validate.ValidateID`) is now enforced on all external service creation and update endpoints, rejecting invalid characters.

### Workarounds - Protect eKuiper management endpoints (`POST /services`) with authentication and network-level firewalls.

### Credits - Reported by Alexey Kosmachev, Bi.Zone (@TheMostKnown)

Patch / fix

  • go github.com/lf-edge/ekuiper/v2 2.4.0
  • govulncheck-vulndb SLES 16.0, SLES for SAP applications 16.0 0.0.20260916T180043-160000.1.1

suse advisories SUSE-SU-2026:23855-1SUSE-SU-2026:23863-1

  • govulncheck-vulndb openSUSE Leap 16.0 0.0.20260916T180043-160000.1.1

opensuse advisories openSUSE-SU-2026:21897-1

CVSS scores

assigned by version score vector
GitHub 3.1 3.7 CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:N

Affected packages

ecosystem package affected fixed in
go github.com/lf-edge/ekuiper/v2
<2.4.0
2.4.0
go github.com/lf-edge/ekuiper
all versions
no fix listed

Classification

Weakness
  • CWE-79 Improper Neutralization of Input During Web Page Generation

References

Sources

Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.