gopay: Disabled TLS certificate verification in default HTTP client
Summary
The gopay Go SDK for payment APIs disables TLS certificate verification in its default HTTP client before version 1.5.119. An attacker positioned on the network path between the application and a payment provider can present any certificate and impersonate the provider. This allows reading merchant credentials, signatures and transaction data, and modifying payment, refund and order query responses. The flaw is only relevant where a Go application using gopay communicates with payment APIs over an untrusted network path.
Affected
- gopay versions before 1.5.119 (CNA range: 0 to below 1.5.119)
- Applications that use the default client from pkg/xhttp, unless they set their own TLS configuration
Fixed in
- gopay 1.5.119 (TLS certificate verification is enabled by default)
Workaround
- Upgrade to gopay 1.5.119 or later (recommended).
- If an upgrade is not immediately possible, configure a custom HTTP client that explicitly enables certificate validation and uses a trusted CA pool. This requires a code change.
- Do not use skip-verify or self-signed certificate settings in production, as these reintroduce the flaw.
Exploitation
- No active exploitation known.
- Not listed in CISA KEV.
- No public proof of concept found in the sources checked.
- EPSS: 0.00163.
- CISA SSVC: exploitation none, automatable no, technical impact total.
Our recommendation
- Identify any Go application that imports github.com/go-pay/gopay (check go.mod and lockfiles).
- Upgrade gopay to 1.5.119 or later.
- Remove any InsecureSkipVerify or skip-verify overrides, especially those copied from sandbox configurations.
- Monitor payment integrations for unexpected certificate or response behaviour until the upgrade is complete.
Public exploits
PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.
Research sources
- GoPay GitHub repository github.com
- gopay client.go at v1.5.118 github.com
- VulnCheck advisory www.vulncheck.com
- VulDB CVE-2026-105218 vuldb.com
- Rapid7 data via Vulners vulners.com
- GoPay GitHub issue 540 github.com
- GoPay GitHub wiki github.com
Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 31 Oct 2026, 07:34.
Original description (NVD)
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.
NVD references (5)
- https://github.com/go-pay/gopay
- https://github.com/go-pay/gopay/blob/v1.5.118/pkg/xhttp/client.go#L15-L37
- https://github.com/go-pay/gopay/commit/f6df04fd4f64a2ad2c303ba063b6502bfdd259fd
- https://github.com/go-pay/gopay/issues/540
- https://www.vulncheck.com/advisories/gopay-before-1.5.119-disabled-tls-certificate-verification-in-xhttp-clie…
Sources
The tracker combines official, freely usable data sources – updated continuously:
- NVD (NIST) – CVEs, rating (CVSS), affected products
- CISA KEV – vulnerabilities confirmed by CISA as actively exploited
- CISA Vulnrichment – CISA assessment (SSVC) in the official CVE record
- FIRST EPSS – probability of exploitation
- Microsoft MSRC – Patch Tuesday: vulnerabilities, severity, updates
- PoC-in-GitHub – public proof-of-concept repositories
- Metasploit (Rapid7) – modules of the Metasploit Framework
- Exploit-DB (OffSec) – archive of public exploits (links only)
- Patch days: official vendor pages (linked per vendor) (Vendor patch days)
This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.
Affected? We can help.
We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.
