GitHub Advisoryadvisory · Go
GHSA-r64v-82fh-xc63 Juju vulnerable to sensitive log retrieval via authenticated endpoint without authorization
MEDIUM
Official page ↗
- Aliases
- CVE-2025-53512
- Ecosystem
- Go
- Packages
- github.com/juju/juju
- Severity
- Moderate
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
- Weaknesses
- CWE-200
- Reviewed
- 2025-07-09
Affected packages
• Go github.com/juju/juju: < 0.0.0-20250619024904-402ff008dcc2 → fixed in 0.0.0-20250619024904-402ff008dcc2
Description
Impact
Any user with a Juju account on a controller can read debug log messages from the `/log` endpoint.
No specific permissions are required - it's just sufficient for the user to exist in the controller user database.
The log messages may contain sensitive information.
Details
The `/log` endpoint is accessible at the following endpoints:
• `wss:///log`
• `wss:///model//log`
In order to connect to these endpoints, the client must pass an X-Juju-Client-Version header that matches the current version and pass credentials in a Basic Authorization header. Once connected, the service will stream log events even though the user is not authorised to view them.
To reproduce:
```
juju bootstrap
juju add-user testuser
juju change-user-password testuser
```
Run the wscat command below to
connect to `wss://:17070/api`. Update the JSON payload to include the username and password that were created above.
```
wscat --no-check -c wss://contorller-ip:17070/model/modelUUID/api
{ "type": "Admin", "request": "Login", "version": 3, "params": { "client-
version": "3.6.1.0", "auth-tag": "user-testuser", "credentials": "
password" } }
```
Observe that the connection fails due to a lack of permissions.
Run the command below to connect to the log endpoint. Note that the credentials are passed in the --auth flag.
```
wscat --auth user-testuser:password -H "X-Juju-ClientVersion: 3.6.4" --no-check -c wss://:17070/log
```
Observe that the logs are returned in the server’s response.
Code
The `/log` handlers are registered here
https://github.com/juju/juju/blob/3.6/apiserver/apiserver.go#L867
https://github.com/juju/juju/blob/3.6/apiserver/apiserver.go#L980
And the only auth required is that the incoming request be for an authenticated user
https://github.com/juju/juju/blob/3.6/apiserver/apiserver.go#L713
but no specific permission checks are done.
Workarounds
There are no workarounds.
References
F-01
Related
Alias · CVE (1)
- CVE-2025-53512 The /log endpoint on a Juju controller lacked sufficient authorization checks, allowing unauthorized users to access debug messages that… vulnerability
Weakness · CWE (1)
- CWE-200 Exposure of Sensitive Information to an Unauthorized Actor weakness
References
- https://github.com/juju/juju/security/advisories/GHSA-r64v-82fh-xc63 web
- https://nvd.nist.gov/vuln/detail/CVE-2025-53512 advisory
- https://github.com/juju/juju/commit/402ff008dcc2cb57f4441968628637efb5c2a662 web
- https://github.com/juju/juju/commit/c91a1f4046956874ba77c8b398aecee3d61a2dc3 web
- https://github.com/juju/juju package