AnyCable: Telemetry Subsystem Contains Hardcoded Authentication Token and Transmits CLI Arguments Including Secrets
CVE-2026-63406 (GitHub advisory GHSA-w72w-9qmj-c9qm) is a medium-severity vulnerability with a CVSS 3.1 base score of 5.9, classed as Cleartext Storage of Sensitive Information (CWE-312), in github.com/anycable/anycable (Go). Affected versions: <= 1.6.14. It is fixed in 1.6.15.
Published 18 Sept 2026Updated 18 Sept 2026
- CVE ID
- CVE-2026-63406
- GHSA ID
- GHSA-w72w-9qmj-c9qm
- EPSS
- 0.24%higher than 16% of CVEs
- Weaknesses (CWE)
- KEV status
- Not in KEV
- Published
- 18 Sept 2026
- Updated
- 18 Sept 2026
- Ecosystem
- Go
- Assigned by (CNA)
- GitHub_M
Summary
Source: OSV (GitHub advisory)
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
- Read
telemetry/config.goin the public repo to findauthToken = "secret". - Set up a DNS spoof for
telemetry.anycable.iopointing to an attacker-controlled server. - Start anycable-go with
--secret=my-production-secret. - The server sends a POST to the attacker's endpoint with the telemetry JSON payload. The
clusterFingerprintfield contains data derived from rawos.Argsincluding--secret=my-production-secret.
Impact
In MITM/DNS-hijack scenarios, production secrets (JWT secrets, broadcast keys, RPC auth) are exposed to third parties. The hardcoded authToken = "secret" provides no protection since it is known to anyone reading the open-source code.
Fix
- Remove the hardcoded
authTokenfrom source; generate or require operator configuration at build time or deployment time. 2. RemoveanycableCLIArgs()from the fingerprint computation, or sanitize it to exclude values of secret-bearing flags before hashing. 3. Add a documented opt-out mechanism for telemetry.
Technical details
Source: GitHub Advisory Database
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:NMedium5.9Base score from GitHub Advisory Database
- Attack Vector AV
- Network
- Attack Complexity AC
- High
- Privileges Required PR
- None
- User Interaction UI
- None
- Scope S
- Unchanged
- Confidentiality C
- High
- Integrity I
- None
- Availability A
- None
CISA SSVC decision points
- Exploitation
- poc
- Proof-of-concept code is public
- Automatable
- no
- Needs manual steps per target
- Technical impact
- partial
- Limited control of the affected system
CISA Coordinator assessment (SSVC 2.0.3) via CVE.org.
Affected packages
Source: OSV (GitHub advisory)
- github.com/anycable/anycableGo
pkg:golang/github.com/anycable/anycable- Affected versions
- <= 1.6.14
- Fixed in
- 1.6.15
| Package | Affected versions | Fixed in |
|---|---|---|
github.com/anycable/anycable Go pkg:golang/github.com/anycable/anycable |
|
|
Fix
Source: OSV (GitHub advisory)
Fix available
Upgrade to 1.6.15 or later.
Patch commits
* telemetry: refactor auth config
+20 −9 across 5 files
- cli/cli.go+5 −3
- metrics/metrics.go+1 −4
- telemetry/config.go+2 −2
- telemetry/telemetry.go+11 −0
- telemetry/telemetry_test.go+1 −0
Release commits
The commits each fixed release tag points at. They usually bump the version rather than contain the fix itself.
Vulnerability intelligence
Root cause analysis
Vulnerable functions
References
Advisories 4
Package 1
Other links 1
Credits
- de3erve-hunterreporter
Questions about CVE-2026-63406
- What is the GHSA ID for CVE-2026-63406?
- GitHub tracks CVE-2026-63406 as GHSA-w72w-9qmj-c9qm.
- What is the CVSS score of CVE-2026-63406?
- CVE-2026-63406 has a CVSS 3.1 base score of 5.9 (Medium), vector CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N.
- Which versions are affected by CVE-2026-63406?
- github.com/anycable/anycable (Go): <= 1.6.14.
- How do I fix CVE-2026-63406?
- Upgrade to 1.6.15 or later. The fix is in commit 201c67e.
- What is the Package URL (PURL) for CVE-2026-63406?
- The affected package's PURL is pkg:golang/github.com/anycable/anycable.
- Is CVE-2026-63406 exploited in the wild?
- CISA's Known Exploited Vulnerabilities catalog doesn't list CVE-2026-63406. That means no confirmed exploitation has been catalogued, not that it is safe to leave unpatched. CISA's SSVC assessment rates exploitation as "poc". EPSS estimates a 0.24% chance of exploitation in the next 30 days, higher than 16% of CVEs.
Data sources
Upstream records
- OSV (GitHub advisory)LoadedRaw JSON
- GitHub Advisory DatabaseLoadedRaw JSON
- OSV (CVE record)LoadedRaw JSON
- CVE.orgLoaded
- CISA KEV catalogLoaded
Fetched 5 days ago (9 Oct 2026, 00:58 UTC). Records refresh automatically after 24 hours.
Where each part of this page came from
- Title and description
- OSV (GitHub advisory)
- Severity score
- GitHub Advisory Database
- Weakness (CWE)
- GitHub Advisory Database
- Affected packages
- OSV (GitHub advisory)
- Fix
- OSV (GitHub advisory)
- References
- Computed by CVEminer
- SSVC
- CVE.org
- KEV status
- CISA KEV catalog
- EPSS
- GitHub Advisory Database
OSV and GitHub Advisory Database content is licensed CC BY 4.0. Values marked as computed or derived were calculated by CVEminer from the upstream data.