Lucene search

K
osvGoogleOSV:GHSA-5GRX-V727-QMQ6
HistoryJul 18, 2024 - 2:25 p.m.

1Panel has an SQL injection issue related to the orderBy clause

2024-07-1814:25:00
Google
osv.dev
7
sql injection
orderby clause
arbitrary file writes
rce
data leak

CVSS3

9.8

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

HIGH

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

AI Score

6.9

Confidence

High

EPSS

0.006

Percentile

79.5%

Summary

There are many sql injections in the project, and some of them are not well filtered, leading to arbitrary file writes, and ultimately leading to RCEs.
The proof is as follows

Details (one of them )

<img width=“697” alt=“image” src=“https://github.com/1Panel-dev/1Panel/assets/129351704/895b7b43-9bc0-44b3-9c84-24c2dcc962da”>
<img width=“936” alt=“image” src=“https://github.com/1Panel-dev/1Panel/assets/129351704/1b8eb866-9865-4bef-a359-53335d709157”>
<img width=“684” alt=“image” src=“https://github.com/1Panel-dev/1Panel/assets/129351704/e865d6d0-7ecb-49f7-b4a2-f1b0bc407986”>

PoC

curl ‘http://api:30455/api/v1/hosts/command/search’ {“page”:1,“pageSize”:10,“groupID”:0,“orderBy”:“3”,“order”:“ascending”,“name”:“a”}
<img width=“664” alt=“image” src=“https://github.com/1Panel-dev/1Panel/assets/129351704/250d5a2a-cb32-44dc-9831-86dbc2f2b43f”>
for example as picture . just change orderby‘s num we can know How many columns does the data table have.Parameters require strict whitelist filtering

Impact

RCE、data leak.

CVSS3

9.8

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

HIGH

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

AI Score

6.9

Confidence

High

EPSS

0.006

Percentile

79.5%