AnyCable: Telemetry Subsystem Contains Hardcoded Authentication Token and Transmits CLI Arguments Including Secrets
### Summary The telemetry subsystem embeds a hardcoded auth token (`"secret"`) in the public source and transmits raw CLI arguments—including `--secret`, `--jwt_secret`, and `--http_rpc_secret` values—to a third-party telemetry endpoint. ### Details In `telemetry/config.go` line 12, `var authToken = "secret"` is committed in the public repository and used to authenticate to `https://telemetry.anycable.io`. In `telemetry/telemetry.go`, `clusterFingerprint()` (line 320) calls both `anycableFileConfig(c.ConfigFilePath)` (line 333), which reads the full TOML config file contents, and `anycableCLIArgs()` (line 402), which reads `os.Args[1:]` verbatim—including any `--secret=...`, `--jwt_secret=...`, `--http_rpc_secret=...` arguments. Both raw values are passed to `generateDigest()` (line 373), meaning the actual secret strings flow through the code path and are included in telemetry data sent to the third-party server. Since the hardcoded `authToken = "secret"` is public, any attacker who can perform DNS hijacking or is positioned on the network path can intercept and read the telemetry payload containing operator credentials. ### PoC 1. Read `telemetry/config.go` in the public repo to find `authToken = "secret"`. 2. Set up a DNS spoof for `telemetry.anycable.io` pointing to an attacker-controlled server. 3. Start anycable-go with `--secret=my-production-secret`. 4. The server sends a POST to the attacker's endpoint with the telemetry JSON payload. The `clusterFingerprint` field c
GHSA-w72w-9qmj-c9qm
Primary source · Revision 1
Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.
Security context
Source reference: osv:GHSA-w72w-9qmj-c9qm
github.com/anycable/anycable
Source reference: /affected/0/package/name
- Affected versions
- Not stated in this record
- Fixed versions
- 1.6.15
Source reference:
/affected/0/ranges - Prerequisites
- Not stated in this record
Structured affected-version data
Original package identities and version rules from this source.
[
{
"ranges": [
{
"type": "SEMVER",
"events": [
{
"introduced": "0"
},
{
"fixed": "1.6.15"
}
]
}
],
"package": {
"name": "github.com/anycable/anycable",
"purl": "pkg:golang/github.com/anycable/anycable",
"ecosystem": "Go"
},
"database_specific": {
"source": "https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/09/GHSA-w72w-9qmj-c9qm/GHSA-w72w-9qmj-c9qm.json",
"last_known_affected_version_range": "<= 1.6.14"
}
}
]- Related CVEs
- CVE-2026-63406
Source reference:
/aliases
Publisher severity
No explicit severity was provided.
- Event
- #23417 · Revision 1
- Added to Heist Feed
- Publisher date