Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain on-path network position
-
DeliveryPresent forged TLS certificate
-
ExploitClient skips certificate verification
-
ExecutionIntercept and modify service traffic
-
ImpactHarvest auth tokens and credentials
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V12 - Secure Communication Certificate validation
|
| Exploitation Conditions | Exploitation requires that the target application (a) uses go-micro's shared TLS helper to enable TLS for its transport, broker, or registry connections, and (b) runs a version before 6.0.0 without the v5 opt-in MICRO_TLS_SECURE=true, which leaves InsecureSkipVerify=true by default. Critically, the attacker must ALSO achieve a man-in-the-middle / on-path network position between the communicating components - reflected by CVSS AC:H and AT:P - since the flaw only enables certificate forgery, not remote code delivery on its own. Limiting factors: no exploitation is possible against plaintext (non-TLS) deployments, against v6.0.0+ where verification is on by default, or against v5 deployments that explicitly set MICRO_TLS_SECURE=true; and the required network interception capability substantially narrows the realistic attacker set. |
| Impact | This is a genuine, structurally serious flaw rather than an inflated high-CVSS score. The root cause is confirmed by source-code evidence: go-micro's shared TLS helper sets InsecureSkipVerify=true by default, and the v6.0.0 CHANGELOG explicitly confirms 'TLS verification is on by default' as a breaking change, meaning all v5 and earlier deployments that did not set MICRO_TLS_SECURE=true were silently vulnerable. The CVSS 4.0 vector (AV:N, PR:N, UI:N, VC:H, VI:H) correctly reflects unauthenticated network exploitation with high confidentiality and integrity impact. However, two signals temper the raw 9.1: AC:H and AT:P indicate exploitation is NOT trivial - the attacker must already hold a privileged on-path/man-in-the-middle position, which is a meaningful barrier. No EPSS score, no KEV listing, and no public POC are present in the input, so there is no evidence of active or at-scale exploitation; the realistic risk is targeted interception by an adversary who already controls a network segment (e.g., shared cloud fabric, compromised router, hostile service mesh hop). Net: high-priority to patch for anyone running go-micro with TLS, but the on-path prerequisite makes mass opportunistic exploitation unlikely. |
| Exploit ScenarioDerived | An attacker positioned on the network path between two go-micro services (for example on a shared cloud network segment or a compromised intermediate hop) presents an arbitrary self-signed certificate. Because the client's shared TLS helper has InsecureSkipVerify=true, the forged certificate is accepted without validation, letting the attacker transparently decrypt and modify gRPC, HTTP, RabbitMQ broker, and Consul/etcd registry traffic - harvesting authentication tokens and credentials in transit. No public exploit identified at time of analysis, though the trivial nature of a MITM TLS downgrade means weaponization would be straightforward for an on-path adversary. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 04, 2026
TLS certificate verification is disabled by default in go-micro before 6.0.0, allowing an unauthenticated on-path attacker to impersonate services and intercept or modify gRPC transport, HTTP and RabbitMQ broker, and Consul or etcd registry traffic - including authentication tokens and credentials. This is a genuine, structurally serious design defect (CWE-295, CVSS 9.1) rather than an inflated score, but successful exploitation requires both a TLS-enabled deployment that relies on the shared TLS helper and the attacker achieving a man-in-the-middle network position (reflected by AC:H and AT:P). No public exploit code and no confirmed active exploitation were identified at time of analysis; the vendor corrected the default in go-micro 6.0.0.
RemediationAI
The vendor-released patch is go-micro 6.0.0, which flips TLS verification on by default and removes the old MICRO_TLS_SECURE opt-in; upgrade with go install go-micro.dev/v6/cmd/micro@latest and migrate module imports from go-micro.dev/v5/... to go-micro.dev/v6/... (see the upstream commit c7657f73f45cf839e643db10f28703eeab7299c3 and the v5→v6 migration guide). Organizations unable to move to v6 immediately can mitigate on v5 by setting MICRO_TLS_SECURE=true in the environment of every service that uses the TLS helper, which restores chain and hostname verification; deployments that run entirely in plaintext (no TLS) are not exploitable and need no change, though that is obviously a weaker posture. As compensating controls, restrict service-to-service traffic to isolated network segments or service-mesh mTLS with pinned CAs to deny an on-path attacker the required interception position, and monitor for unexpected certificate subjects on gRPC, HTTP, RabbitMQ, Consul, and etcd connections - noting these controls reduce but do not eliminate risk if the on-path assumption holds. Do not use MICRO_TLS_INSECURE=true or tls.InsecureConfig() as a fix: that option exists only for self-signed development certificates and deliberately re-introduces the exact InsecureSkipVerify behavior this CVE describes.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is CWE-295 (Improper Certificate Validation). Go Micro's shared TLS helper - internal/util/tls/tls.go, lines 43-67 in v5.30.0 - constructs a *tls.Config with InsecureSkipVerify set to true unless the environment variable MICRO_TLS_SECURE=true is explicitly set. In Go's crypto/tls, InsecureSkipVerify disables both certificate chain validation and hostname verification, so the client accepts literally any certificate a peer presents, including self-signed or attacker-generated ones. Because this helper is used centrally, the weakness propagates to every subsystem that consumes it: the gRPC transport, the HTTP and RabbitMQ brokers, and the Consul and etcd registries used for service discovery. CPE cpe:2.3:a:micro:go-micro:*:*:*:*:*:*:*:* confirms all releases prior to 6.0.0 are in scope, with the vulnerable code path publicly visible in the linked v5.30.0 source and issue #2963. An attacker with an on-path position can therefore terminate TLS with a forged certificate, transparently decrypting and modifying framework traffic and capturing bearer tokens and service credentials.
Know when Go Micro gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
AC:H and AT-equivalent on-path requirement because the attacker must already hold a MITM position; PR:N as no credentials are needed; C:H/I:H for interception and modification of traffic; A:N as availability is unaffected.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
go-micro before 6.0.0 contains an improper certificate validation vulnerability that allows network attackers to impersonate services because the shared TLS helper sets InsecureSkipVerify to true by default. Man-in-the-middle attackers can present any certificate to intercept or modify gRPC transport, HTTP and RabbitMQ broker, and Consul or etcd registry traffic, including authentication tokens and credentials.
Executive ViewAI
Organizations using go-micro versions prior to 6.0.0 for service-to-service communications face a critical design flaw: TLS certificate verification is disabled by default, so a network-positioned attacker could impersonate services and access or alter sensitive traffic such as authentication tokens, credentials, and registry data. Leadership should care because this affects the confidentiality and integrity of internal microservice traffic, especially in TLS-enabled deployments that rely on the shared TLS helper. A vendor fix is available in go-micro 6.0.0, and no public exploit identified at time of analysis.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
EUVD-2026-92119
GHSA-p6q5-cmw8-pqqg
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB