Description
### 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)
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
SUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES for SAP 16.0 | govulncheck-vulndb | 0.0.20260916T180043-160000.1.1 | SUSE-SU-2026:23863-1, SUSE-SU-2026:23855-1 |
| SLES 16.0 | govulncheck-vulndb | 0.0.20260916T180043-160000.1.1 | SUSE-SU-2026:23863-1, SUSE-SU-2026:23855-1 |
openSUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| openSUSE Leap 16.0 | govulncheck-vulndb | 0.0.20260916T180043-160000.1.1 | openSUSE-SU-2026:21897-1 |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| Go | github.com/lf-edge/ekuiper | all versions | — | GO-2026-6446 |
| Go | github.com/lf-edge/ekuiper/v2 | < 2.4.0 | 2.4.0 | GHSA-g8rh-fjm6-h2h9 |
Advisories 3
- SUSE-SU-2026:23863-1 Security update for govulncheck-vulndb SUSE / openSUSE Security Updates · Sep 27, 2026
- SUSE-SU-2026:23855-1 Security update for govulncheck-vulndb SUSE / openSUSE Security Updates · Sep 27, 2026
- openSUSE-SU-2026:21897-1 Security update for govulncheck-vulndb SUSE / openSUSE Security Updates · Sep 25, 2026