Skip to content
Heist/ feed
UnratedFix available

AnyCable: Telemetry Subsystem Contains Hardcoded Authentication Token and Transmits CLI Arguments Including Secrets

Type: advisorySource: OSV1 source record

### 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

Announced Source revision 1
Original source ↗

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
Read the original announcement