VDB
Sign up
HIGH

GHSA-vr5f-w35q-98jp

Perses's unvalidated project parameter enables filesystem path traversal

Quick fix

GHSA-vr5f-w35q-98jp — github.com/perses/perses: upgrade to the fixed version with the command below.

go get github.com/perses/perses@v0.54.0-rc.0

Details

### Impact When Perses is using the file system database, on the list endpoints, the project value is bound from the request into the resource `Query` struct and is never validated against directory-traversal characters (validation/Flatten only runs for Create/Update bodies, not list queries).

The path is then used to retrieve files in the database directly.

Attacker can read arbitrary YAML/JSON files from the server host and can bypass the security constraints to get access to other resources contained in the file database.

For example `https://localhost:8080/api/v1/dashboards?project=../projects` returns the list of the project while it must not return anything.

### Patches _Has the problem been patched? What versions should users upgrade to?_

### Workarounds Avoid using the file system database in production. Use SQL database instead.

Are you affected?

Enter the version of the package you're using.

Affected packages

Go/github.com/perses/perses
Introduced in: 0Fixed in: 0.54.0-rc.0
Fixgo get github.com/perses/perses@v0.54.0-rc.0

References