GHSA-c23q-fw86-9h5x

Suggest an improvement
Source
https://github.com/advisories/GHSA-c23q-fw86-9h5x
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/09/GHSA-c23q-fw86-9h5x/GHSA-c23q-fw86-9h5x.json
JSON Data
https://api.test.osv.dev/v1/vulns/GHSA-c23q-fw86-9h5x
Aliases
Published
2026-09-09T17:59:27Z
Modified
2026-09-17T17:40:24Z
Severity
  • 5.5 (Medium) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:L/A:H CVSS Calculator
Summary
LF Edge eKuiper: Arbitrary File and Directory Deletion via Path Traversal in Plugin Installation Endpoint
Details

Summary

A path traversal vulnerability in eKuiper's administrative management endpoints allows privileged users or attackers with access to management APIs to delete arbitrary files or directories on the host system.

Details

In internal/plugin/native/manager.go, the plugin installation endpoint (POST /plugins/*) constructs a temporary directory path by directly joining user-supplied resource names (name) without sufficient sanitization. Supplying path traversal sequences (such as ../../...) causes the deferred cleanup operation (os.RemoveAll) to target arbitrary directories outside the intended plugin directory.

A related issue in configuration and rule lifecycle management where unvalidated rule identifiers could influence file deletion paths was also addressed by introducing unified identifier and file name validation.

PoC

  1. Target file deletion via plugin installation endpoint:
POST /plugins/sources HTTP/1.1
Host: 127.0.0.1:9081
Content-Type: application/json

{
  "name": "../../../../../tmp/target.txt",
  "file": "http://example.com/plugin.zip",
  "shellParas": [],
  "functions": []
}
  1. When the request finishes, /tmp/target.txt is removed by os.RemoveAll.

Impact

An attacker with access to eKuiper management APIs can cause arbitrary file or directory deletion, potentially leading to denial of service or disruption of the host environment. This vulnerability provides a delete-only capability and does not permit arbitrary file creation, modification, or code execution.

Remediation & Patches

  • Upgrade to eKuiper >= 2.4.1: Input validation (validate.ValidateID) and file path validation (path.VerifyFileName) have been enforced across management endpoints.

Workarounds

  • Restrict network access to eKuiper management port (9081) via authentication, reverse proxies, and firewall rules.
  • Run eKuiper with a dedicated non-root user account to limit file system deletion permissions.

Credits

  • @kosmosec
  • @arpitjain099
Database specific
{
    "cwe_ids":  [
        "CWE-22"
    ],
    "github_reviewed":  true,
    "github_reviewed_at":  "2026-09-09T17:59:27Z",
    "nvd_published_at":  null,
    "severity":  "MODERATE"
}
References

Affected packages

Go / github.com/lf-edge/ekuiper/v2

Package

Name
github.com/lf-edge/ekuiper/v2
View open source insights on deps.dev
Purl
pkg:golang/github.com/lf-edge/ekuiper/v2

Affected ranges

Type
SEMVER
Events
Introduced
0 Unknown introduced version / All previous versions are affected
Fixed
2.4.1

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/09/GHSA-c23q-fw86-9h5x/GHSA-c23q-fw86-9h5x.json"