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
- GitHub Advisory GHSA-g8rh-fjm6-h2h9
- OSV GO-2026-6446
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.