Skip to content

LF Edge eKuiper: Arbitrary File and Directory Deletion via Path Traversal in Plugin Installation Endpoint

Moderate severity GitHub Reviewed Published Sep 7, 2026 in lf-edge/ekuiper • Updated Sep 9, 2026

Package

gomod github.com/lf-edge/ekuiper/v2 (Go)

Affected versions

< 2.4.1

Patched versions

2.4.1

Description

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

References

@ngjaying ngjaying published to lf-edge/ekuiper Sep 7, 2026
Published to the GitHub Advisory Database Sep 9, 2026
Reviewed Sep 9, 2026
Last updated Sep 9, 2026

Severity

Moderate

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
High
User interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
Low
Availability
High

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:L/A:H

EPSS score

Weaknesses

Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')

The product uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the product does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory. Learn more on MITRE.

CVE ID

CVE-2025-58363

GHSA ID

GHSA-c23q-fw86-9h5x

Source code

Credits

Loading Checking history
See something to contribute? Suggest improvements for this vulnerability.