Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain man-in-the-middle network position
-
DeliveryIntercept gopay-to-payment-provider TLS traffic
-
ExploitPresent forged certificate, verification skipped
-
ExecutionDecrypt merchant credentials and transaction data
-
ImpactTamper 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
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 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
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 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.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
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
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.
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-92121
GHSA-8f6w-7m2h-mfwg
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB