CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-63406

CVE-2026-63406: Information Disclosure via Insecure Telemetry and Hardcoded Credentials in AnyCable-Go

Alon Barad
Alon Barad
Software Engineer

Sep 19, 2026·5 min read·4 visits

Executive Summary (TL;DR)

AnyCable-Go's default telemetry configuration used a public token and digested raw command-line secrets into an unsalted SHA-256 fingerprint, exposing administrative credentials to offline cracking if network traffic was captured.

CVE-2026-63406 is an information disclosure vulnerability in AnyCable-go prior to version 1.6.15. The built-in telemetry client is enabled by default with a hardcoded public authentication token ('secret'). This client digests highly sensitive configuration parameters and command-line arguments, including JWT secrets and RPC secrets, into a stable SHA-256 fingerprint. This fingerprint is sent over public networks, exposing those administrative secrets to offline dictionary and brute-force attacks if intercepted.

Vulnerability Overview

The vulnerability resides in the built-in telemetry subsystem of AnyCable-Go, a high-performance WebSocket server designed to scale real-time two-way communication in web applications. The telemetry component is responsible for gathering system statistics and server information to help developers monitor platform adoption. Under standard configurations before version 1.6.15, this subsystem was automatically activated upon application launch without administrative initialization.

This default enablement creates an unintended attack surface by transmitting environment metadata to a centralized public endpoint. Because telemetry ran continuously in the background, any deployment using default compilation flags began outbound transmissions immediately upon startup.

The core vulnerability belongs to two weakness classes: CWE-798 (Use of Hard-coded Credentials) and CWE-312 (Cleartext Storage of Sensitive Information). These flaws allow an unauthorized network observer to capture cryptographic data and reconstruct sensitive environment configurations through offline verification mechanisms.

Root Cause Analysis

The root cause of the vulnerability lies in the implementation of the telemetry client configurations and fingerprinting routines within the codebase. In telemetry/config.go, the authentication token used to validate telemetry streams with the central registry was defined as a hardcoded static string literal: var authToken = "secret". This static variable was loaded by default, meaning every standard deployment of the software compiled with these settings authenticated its network telemetry traffic using a public, globally identical credential.

Simultaneously, the server attempted to establish a unique but anonymous server identifier known as a cluster fingerprint. The function clusterFingerprint() in telemetry/telemetry.go processed the server configuration along with the raw command-line arguments returned by the system runtime. If an administrator supplied security-critical options on the command line, such as --secret, --jwt_secret, or --http_rpc_secret, these raw command-line strings were included in the configuration structure.

The gathered configuration structure was then directly serialized and passed to a deterministic SHA-256 hashing routine. The resulting hexadecimal hash served as the stable cluster fingerprint. Because the hashing process did not apply a cryptographically secure random salt, the generated output was completely deterministic.

Code Analysis

Analyzing the code changes between version 1.6.14 and 1.6.15 shows how the insecure configuration defaults were addressed. The patch changed how the tracker is instantiated and removed the static default authentication token.

Below is the comparison of the configuration initiation in telemetry/config.go before and after the patch:

// VULNERABLE: telemetry/config.go (Pre-1.6.15)
var authToken = "secret" // make it overridable during build time
 
func NewConfig() *Config {
    return &Config{
        Token:       authToken,
        Endpoint:    "https://telemetry.anycable.io",
        Debug:       os.Getenv("ANYCABLE_TELEMETRY_DEBUG") == "1",
        CustomProps: map[string]string{},
    }
}
// PATCHED: telemetry/config.go (Version 1.6.15)
var auth = "" // provide a secret token during the build time to enable tracking
 
func NewConfig() *Config {
    return &Config{
        Token:       auth,
        Endpoint:    "https://telemetry.anycable.io",
        Debug:       os.Getenv("ANYCABLE_TELEMETRY_DEBUG") == "1",
        CustomProps: map[string]string{},
    }
}

By changing the global variable from authToken = "secret" to auth = "", the telemetry engine defaults to an empty token. In telemetry/telemetry.go, the initialization function checks if this token is empty and disables telemetry collection if no token is found:

// PATCHED: telemetry/telemetry.go (Version 1.6.15)
func NewTracker(instrumenter *metrics.Metrics, c *config.Config, tc *Config) *Tracker {
    if tc.Token == "" {
        return &Tracker{} // Returns unenabled tracker
    } 
    // ... setup and generate cluster fingerprint ...
}

Exploitation Methodology

An attack against this vulnerability does not rely on sending a malicious payload to the target server. Instead, it relies on passive network interception followed by an offline cryptanalysis phase. An adversary must first capture the telemetry transmission on the network path between the target server and the collection host.

The following sequence diagram outlines the complete attack flow:

Because the fingerprint is generated using a deterministic SHA-256 hashing algorithm over known patterns, the attacker can reconstruct the hash locally. By targeting common dictionary terms and predictable formats (such as --jwt_secret=value), the attacker can quickly compare hashes to find a match and reveal the administrative credentials.

Impact Assessment

The security impact of CVE-2026-63406 is primarily centered on the compromise of system confidentiality. Successfully extracting administrative secrets allows the attacker to compromise the integrity and availability of the wider application.

If an attacker cracks the jwt_secret or secret variables, they gain the ability to forge valid signatures. This allows them to create custom JSON Web Tokens (JWT) or signed session cookies, facilitating complete authentication bypass. The attacker can then connect to any active WebSocket channel as a highly privileged administrator or impersonate other users on the platform.

The Common Vulnerability Scoring System (CVSS) assigned a base score of 5.9 (Medium) with the vector CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N. The attack complexity is rated as high because exploitation requires a network interception position and a subsequent offline brute-force phase.

Remediation and Mitigation

The primary resolution is to upgrade all AnyCable deployments to version 1.6.15 or later. In this version, telemetry is disabled by default because the compiler variable auth is empty.

For deployments where immediate upgrading is not feasible, administrators can apply network-level mitigations. Blocking outgoing traffic from AnyCable servers to the default endpoint telemetry.anycable.io on port 443 prevents the transmission of fingerprint hashes.

Alternatively, administrators should transition sensitive configurations away from command-line arguments. Passing parameters like --secret or --jwt_secret via environment variables (such as ANYCABLE_SECRET or ANYCABLE_JWT_SECRET) instead of CLI arguments prevents them from being parsed into the os.Args array, excluding them from the telemetry fingerprint calculation.

Official Patches

AnyCableGitHub Security Advisory GHSA-w72w-9qmj-c9qm
AnyCableRemediation Commit

Fix Analysis (1)

Technical Appendix

CVSS Score
5.9/ 10
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N

Affected Systems

AnyCable (anycable-go)

Affected Versions Detail

Product
Affected Versions
Fixed Version
anycable-go
AnyCable
< 1.6.151.6.15
AttributeDetail
CWE IDCWE-798, CWE-312
Attack VectorNetwork (AV:N)
CVSS v3.15.9 (Medium)
EPSS Score0.0
Exploit StatusConceptual
CISA KEV StatusNot Listed

MITRE ATT&CK Mapping

T1552Unsecured Credentials
Credential Access
T1078Valid Accounts
Initial Access
CWE-798
Use of Hard-coded Credentials

The telemetry module used a hardcoded public authentication token ('secret') by default and included raw operational secrets in hashed identifiers.

Vulnerability Timeline

Remediation commit added to repository codebase
2026-06-29
GitHub Security Advisory GHSA-w72w-9qmj-c9qm published
2026-09-18
NVD CVE-2026-63406 published and analyzed
2026-09-18

References & Sources

  • [1]GitHub Security Advisory GHSA-w72w-9qmj-c9qm
  • [2]NVD CVE-2026-63406 Detail Page

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•14 minutes ago•CVE-2026-63349
7.0

CVE-2026-63349: Privilege Dropping Bypass and Denial of Service in AnyIO Subprocess Module

CVE-2026-63349 is a critical privilege-dropping bypass vulnerability in the AnyIO asynchronous framework (versions 4.14.0 and 4.14.1) on POSIX platforms. Due to a variable assignment typo, supplementary groups specified by the developer are not correctly propagated to the execution backend, resulting in subprocesses retaining the parent process's elevated supplementary group permissions.

Alon Barad
Alon Barad
3 views•5 min read
•about 2 hours ago•CVE-2026-84992
6.1

CVE-2026-84992: Cross-Site Scripting (XSS) via Fenced Code Block Parsing in md-editor-v3

CVE-2026-84992 is a Cross-Site Scripting (XSS) vulnerability affecting md-editor-v3 before version 6.5.4. It occurs because the fenced-code block language parser directly interpolates unescaped language metadata into unquoted HTML attributes inside the custom rendering callback. This bypasses the built-in XSSPlugin which runs during the parsing phase, before rendering.

Amit Schendel
Amit Schendel
6 views•6 min read
•about 3 hours ago•CVE-2026-81505
7.1

CVE-2026-81505: Broken Object Level Authorization (BOLA) in Convoy Webhook Source Retrieval

CVE-2026-81505 is a high-severity Broken Object Level Authorization (BOLA) / Insecure Direct Object Reference (IDOR) vulnerability in Convoy, a cloud-native webhooks gateway. In affected versions prior to 26.6.8, the single-item Source retrieval API endpoint authorizes project access but fails to confirm if the requested Source belongs to that specific project. This logical flaw allows authenticated users or project-scoped API key holders to bypass tenant isolation boundaries and retrieve unredacted, plaintext message broker credentials for Apache Kafka, Amazon SQS, RabbitMQ, and Google Cloud Pub/Sub belonging to other tenants. This issue is fully patched in version 26.6.8.

Amit Schendel
Amit Schendel
7 views•5 min read
•about 4 hours ago•CVE-2026-77339
5.1

CVE-2026-77339: Unauthenticated Remote Command Execution in Process Compose via DNS Rebinding

CVE-2026-77339 is a critical security vulnerability in Process Compose before version 1.120.0. The Model Context Protocol (MCP) Server-Sent Events (SSE) listener transport subsystem fails to validate the HTTP Host and Origin headers, and does not enforce authentication. This omissions expose local loopback listeners to DNS rebinding attacks orchestrated by malicious remote websites visited by developers, enabling unauthorized process control and arbitrary command execution.

Alon Barad
Alon Barad
7 views•6 min read
•about 5 hours ago•CVE-2026-77301
7.5

CVE-2026-77301: Uncontrolled Resource Allocation (Decompression Bomb) in adm-zip

CVE-2026-77301 is a critical uncontrolled resource allocation vulnerability in the popular Node.js library adm-zip (versions prior to 0.6.1). During ZIP decompression of asynchronous entries, the library trusts the uncompressed size metadata declared in the central directory headers. Because Node.js's streaming zlib API completely ignores the maxOutputLength configuration, a crafted ZIP archive (decompression bomb) causes the application to continually allocate resident memory buffers on the heap without limits, causing rapid memory exhaustion and a process-level Out-of-Memory (OOM) crash.

Alon Barad
Alon Barad
6 views•5 min read
•about 6 hours ago•CVE-2026-91127
8.2

CVE-2026-91127: DOM Cross-Site Scripting via Unsafe Hyperlink Schemes in Flyfish File Viewer Legacy DOC Renderer

This report details CVE-2026-91127 (GHSA-3753-m2x2-q623), a high-severity DOM Cross-Site Scripting (DOM XSS) vulnerability in the file-viewer workspace developed by flyfish-dev. The legacy Word document (.doc) parser fails to restrict hyperlink URI schemes when rendering extracted document targets into generated HTML. As a result, a remote attacker can construct a malicious legacy DOC file containing scripts inside hyperlink properties. When a user previews the file and clicks the hyperlink, arbitrary JavaScript executes in the context of the hosting origin, enabling session hijacking, credential theft, or unauthorized API interaction.

Amit Schendel
Amit Schendel
5 views•7 min read