Skip to main content

gopay CVE-2026-105218

| EUVDEUVD-2026-92121 CRITICAL
Improper Certificate Validation (CWE-295)
2026-10-04 VulnCheck GHSA-8f6w-7m2h-mfwg
9.1
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain man-in-the-middle network position
  2. Delivery
    Intercept gopay-to-payment-provider TLS traffic
  3. Exploit
    Present forged certificate, verification skipped
  4. Execution
    Decrypt merchant credentials and transaction data
  5. Impact
    Tamper payment, refund, order responses

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V12 - Secure Communication Certificate validation
Exploitation Conditions

The exploitable condition is default behavior, not a special configuration: any application using gopay before 1.5.119 that relies on the built-in client (NewClient()/defaultClient() in pkg/xhttp/client.go), which ships with tls.Config{InsecureSkipVerify:true}, accepts any certificate on connections to payment provider APIs. The decisive LIMITING factor is that the attacker must occupy an on-path/man-in-the-middle position between the application and the provider (e.g., shared/rogue network, ARP or DNS spoofing, compromised proxy or upstream hop) to intercept and forge the TLS session - this is why CVSS encodes AC:H and AT:P and why the flaw is not directly internet-exploitable. Per the vendor README, legitimate payment domains use trusted certificates, so the risk is confined to environments where interception is achievable; applications that explicitly injected their own secure client are unaffected.

Impact

Signals conflict in an instructive way: the headline CVSS 4.0 base score is 9.1 (Critical) driven by high confidentiality and integrity impact (VC:H/VI:H), yet the same vector encodes AC:H and AT:P, meaning successful exploitation is NOT trivially remote - it requires the attacker to already hold a man-in-the-middle/on-path position between the gopay-using application and the payment provider's API. That dependency meaningfully lowers real-world likelihood versus a typical AV:N/AC:L flaw. No EPSS score, CISA KEV entry, or public exploit was provided in the input, so there is no public exploit identified at time of analysis and no evidence of active exploitation; the risk is therefore potential rather than demonstrated. However, the flaw is default behavior (InsecureSkipVerify:true in defaultClient()), confirmed by the vendor commit and README, so every unpatched deployment is exposed the moment an attacker achieves network interception. Net: this is a genuine priority for any production system processing payments over gopay - the impact (credential theft plus silent tampering of payment/refund/order responses) is severe - but it is gated by the MITM precondition rather than being a mass-scannable internet-facing bug. Missing data note: EPSS/KEV/POC status absent from input and should be re-checked before final prioritization.

Exploit ScenarioDerived

An attacker who controls a network segment on the path between a merchant's gopay-based backend and a payment provider (e.g., rogue Wi-Fi, ARP/DNS spoofing, compromised upstream router, or a malicious proxy) terminates the outbound TLS connection with a self-signed or forged certificate. Because gopay's default client skips certificate verification, the forged certificate is accepted silently, letting the attacker read merchant credentials and signatures and rewrite payment, refund, and order-query responses. No public exploit is identified at time of analysis, but exploitation requires only off-the-shelf MITM tooling once network position is obtained.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 04, 2026

Applications built on the gopay Go payment SDK before v1.5.119 accept any TLS certificate on outbound calls to payment provider APIs, because defaultClient() in pkg/xhttp/client.go hard-codes tls.Config{InsecureSkipVerify:true}. An unauthenticated attacker who already occupies an on-path/man-in-the-middle position between the application and the provider can therefore impersonate the payment API, read merchant credentials, signatures and transaction data, and tamper with payment, refund and order-query responses. The vendor has released a fix in v1.5.119 and there is no indication of confirmed active exploitation or publicly available exploit code at time of analysis; the headline CVSS 4.0 base score of 9.1 (Critical) reflects high confidentiality and integrity impact but is tempered by AC:H and AT:P, meaning exploitation requires prior network positioning rather than trivial remote access.

RemediationAI

Vendor-released patch: v1.5.119, which flips the default TLS configuration in pkg/xhttp/client.go to Go's standard library secure settings. Upgrade the module to v1.5.119 or later (go get github.com/go-pay/gopay@v1.5.119, then rebuild and redeploy), or cherry-pick commit f6df04fd4f64a2ad2c303ba063b6502bfdd259fd if you maintain a fork; the project README and the VulnCheck advisory (https://www.vulncheck.com/advisories/gopay-before-1.5.119-disabled-tls-certificate-verification-in-xhttp-client) document the change. Developers who previously relied on the insecure default for sandbox or self-signed-certificate testing must now opt back in explicitly with hc := xhttp.NewClient().SetHttpTLSConfig(&tls.Config{InsecureSkipVerify: true}) followed by client.SetHttpClient(hc) (supported across wechat/alipay/paypal/qq/allinpay/lakala/saobei) - the trade-off is that this deliberately restores the MITM exposure, so it should be gated to non-production code paths. Where upgrading is not immediately possible, compensate by injecting your own verified *http.Client into the gopay client so the library default is never used, and by pinning or pre-trusting the payment provider certificates in your trust store. Because exploitation requires an on-path position, restricting egress to provider endpoints through a controlled proxy or static egress path, and avoiding untrusted/shared networks for payment-processing services, materially reduces exposure; note that TLS-inspecting proxies which terminate and re-originate connections carry their own trust-management overhead.

Affected VersionsENISA

gopay 0 <1.5.119

Affected Packages

euvd gopay fix: 1.5.119

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 flaw is CWE-295 (Improper Certificate Validation) in a Go SDK that brokers calls to multiple payment platforms (WeChat Pay, Alipay, PayPal, QQ, AllinPay, Lakala, Saobei and others). pkg/xhttp/client.go constructs the library's default HTTP client with crypto/tls configured as InsecureSkipVerify: true, which disables both chain-of-trust validation and hostname verification for every request made through NewClient()/defaultClient(). Because the setting is the library default rather than an opt-in, applications that do not inject their own *http.Client inherit an insecure transport without any explicit developer action; the transport is a standard Go crypto/tls stack, so the flaw is not a protocol bug but a dangerous configuration constant. The exposed data is exactly what a payment integration carries across the wire: API credentials, request signatures, order and refund payloads, and provider responses. The upstream commit f6df04fd4f64a2ad2c303ba063b6502bfdd259fd replaces the insecure default with Go's standard library secure defaults and documents that sandbox or self-signed-certificate environments must now explicitly re-enable skipping via SetHttpClient/SetHttpTLSConfig, which confines the previous behavior to deliberate opt-in. The associated CPE cpe:2.3:a:go-pay:gopay:*:*:*:*:*:*:*:* matches all releases prior to the fix.

Know when Gopay 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

Vendor (VulnCheck) PRIMARY 9.1 CRITICAL
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
vuln.today AI 7.4 HIGH

AC:H because exploitation needs an attacker-controlled MITM position; PR:N/UI:N as the insecure client is default; C:H and I:H for credential disclosure plus response tampering; A:N as availability is unaffected.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
4.0 AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
High
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

gopay before 1.5.119 disables TLS certificate verification in defaultClient() in pkg/xhttp/client.go, allowing man-in-the-middle attackers to impersonate payment provider APIs. Attackers can present any certificate to read merchant credentials, signatures and transaction data, and modify payment, refund and order query responses.

Executive ViewAI

Why It Matters

Applications built on versions of the gopay Go payment SDK prior to v1.5.119 send outbound traffic to payment provider APIs without validating TLS certificates, exposing merchant credentials, transaction signatures and payment data to anyone who can position themselves on the network path. Any team running an affected build - including those processing live payments, refunds and order queries - carries both a data-disclosure and a transaction-integrity risk, because responses can be altered in transit rather than merely observed. Leadership should treat this as a financial and regulatory exposure rather than a routine library upgrade, since the consequences land on payment accuracy, merchant trust and breach-notification obligations.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 95% exploitable
Prevalence
Medium
popular Go payment SDK, common for Chinese payment-gateway integration
Social Media
2
Sightings
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

46
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +46
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy