Summary
Linkdave Missing Authentication on REST and WebSocket endpoints
The linkdave server does not enforce authentication on its REST and WebSocket routes in versions prior to 0.1.5.
Vulnerable Routes
The following routes were entirely unauthenticated in >= 0.0.1, < 0.1.5:
| Method | Path | Description |
|---|---|---|
POST |
/sessions/{session_id}/players/{guild_id}/play |
Start audio playback |
POST |
/sessions/{session_id}/players/{guild_id}/pause |
Pause playback |
POST |
/sessions/{session_id}/players/{guild_id}/resume |
Resume playback |
POST |
/sessions/{session_id}/players/{guild_id}/stop |
Stop playback |
POST |
/sessions/{session_id}/players/{guild_id}/seek |
Seek to position |
PATCH |
/sessions/{session_id}/players/{guild_id}/volume |
Set volume |
DELETE |
/sessions/{session_id}/players/{guild_id} |
Disconnect from voice channel |
GET |
/ws |
WebSocket event stream |
Workarounds
If upgrading is not immediately possible, restrict network access to the server's port using a firewall so it is only accessible from trusted internal IP addresses.
Impact
An attacker with network access to the server port can:
- Connect to the WebSocket endpoint (
/ws) and receive a validsession_idin theOpReadyresponse. - Use that session to invoke all REST player controls on any guild corresponding to their session id[1].
- Enumerate server statistics and runtime information via the unauthenticated
/statsendpoint (still public after the fix).
[1] If on >=0.1.0, attackers are restricted to creating, controlling and deleting players created within their own session ID.
A critical operation is accessible without requiring any authentication. Typical impact: any user can invoke the privileged function.
Affected versions
Security releases
Kodem intelligence
Severity tells you how bad this could be in the worst case. It does not tell you whether you are exposed. Exploitability and impact are functions of runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A vulnerable package can sit in your dependency tree and never run.
Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter. Kodem's runtime-powered SCA identifies whether this CVE is reachable in your applications.
Already deployed Kodem?
See it in your environmentNew to Kodem? Get a demo →Remediation advice
Update to 0.1.5.
- image: ghcr.io/shi-gg/linkdave:0.1.4
+ image: ghcr.io/shi-gg/linkdave:latest
or
docker pull ghcr.io/shi-gg/linkdave:latest
After upgrading, set the LINKDAVE_PASSWORD environment variable to a strong secret value. If this variable is left unset, the server will still accept all connections without authentication even on >= 0.1.5.
Server configuration (e.g. compose.yml):
environment:
LINKDAVE_PASSWORD: ${LINKDAVE_PASSWORD}
echo "LINKDAVE_PASSWORD=$(openssl rand -hex 16)" >> .env
To restart the stack, run
docker compose up -d
TypeScript client (0.1.5+):
The client automatically handles authentication. Pass the password when constructing the client:
const linkdave = new LinkDaveClient({
nodes: [
{
name: "main",
url: process.env.LINKDAVE_URI,
password: process.env.LINKDAVE_PASSWORD
}
]
});
Frequently Asked Questions
- What is GHSA-XV8G-FJ9H-6GMV? GHSA-XV8G-FJ9H-6GMV is a critical-severity missing authentication for critical function vulnerability in github.com/shi-gg/linkdave (go), affecting versions < 0.1.5. It is fixed in 0.1.5. A critical operation is accessible without requiring any authentication.
- Which versions of github.com/shi-gg/linkdave are affected by GHSA-XV8G-FJ9H-6GMV? github.com/shi-gg/linkdave (go) versions < 0.1.5 is affected.
- Is there a fix for GHSA-XV8G-FJ9H-6GMV? Yes. GHSA-XV8G-FJ9H-6GMV is fixed in 0.1.5. Upgrade to this version or later.
- Is GHSA-XV8G-FJ9H-6GMV exploitable, and should I be worried? Whether GHSA-XV8G-FJ9H-6GMV is exploitable in your environment depends on whether the vulnerable code is present and reachable. A CVSS score is a worst-case rating; it does not account for your specific deployment, configuration, or usage patterns. Kodem, an Intelligent Application Security platform, uses runtime intelligence to show which vulnerabilities actually execute in production, so you can focus on the ones that represent real risk. Get a demo
- What actually determines whether GHSA-XV8G-FJ9H-6GMV is exploitable, and how bad it is? Exploitability and impact are not fixed properties of a CVE. They depend on runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A high CVSS score on a dependency that never runs is not the same as real risk. Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter.
- How do I fix GHSA-XV8G-FJ9H-6GMV? Upgrade
github.com/shi-gg/linkdaveto 0.1.5 or later.