Критическая уязвимость CVE-2026-105218 в gopay: отключена проверка TLS-сертификатов
В библиотеке gopay до версии 1.5.119 обнаружена критическая уязвимость CVE-2026-105218 с оценкой CVSS 9.1. Из-за отключённой проверки TLS-сертификатов в xhttp-клиенте атакующий может выдавать себя за платёжные API и перехватывать данные мерчантов. Уязвимость затрагивает все интеграции с платёжными провайдерами через gopay.
Подробности
Уязвимость затрагивает продукт go-pay gopay в версиях до 1.5.119 включительно. В функции defaultClient() файла pkg/xhttp/client.go проверка TLS-сертификатов отключена по умолчанию. Это означает, что HTTP-клиент принимает любой предъявленный сертификат, не сверяя его с доверенными центрами сертификации и не проверяя соответствие имени хоста. В результате атакующий, способный перехватить сетевой трафик (например, через MITM-позицию в сети, подмену DNS или компрометацию промежуточного узла), может выдать себя за платёжный API. При этом он получает доступ к: - учётным данным мерчанта, используемым при обращении к платёжному провайдеру; - криптографическим подписям, применяемым для подтверждения операций; - данным транзакций, включая суммы, идентификаторы заказов и статусы. Кроме того, атакующий может модифицировать ответы платёжного API: искажать результаты платежей, возвратов и запросов статуса заказов. Это создаёт риск финансовых потерь, нарушения бизнес-логики и репутационного ущерба для организаций, использующих библиотеку. Отдельно стоит отметить, что проблема актуальна именно по умолчанию — то есть не требует, чтобы разработчик явно отключил проверку сертификатов в своём коде. Достаточно использовать уязвимую версию gopay в стандартной конфигурации.Что делать
Основная рекомендация — обновить библиотеку gopay до версии 1.5.119 или выше. В этой версии проблема устранена, и проверка TLS-сертификатов возвращена в корректное состояние. Дополнительные меры: 1. Проведите инвентаризацию зависимостей: убедитесь, что ни один сервис или сборка не использует gopay версии ниже 1.5.119. Обратите внимание на транзитивные зависимости — библиотека может подтягиваться косвенно. 2. Если обновление невозможно в краткосрочной перспективе, рассмотрите сетевые митигации: ограничьте исходящие соединения платёжных сервисов доверенными IP-адресами провайдеров, применяйте pinning на уровне инфраструктуры, используйте mTLS на стороне прокси. 3. Проверьте журналы платёжных операций за период использования уязвимой версии на предмет аномалий: несоответствий сумм, повторных запросов, нехарактерных IP-адресов. 4. При подозрении на компрометацию — смените API-ключи и секреты, используемые для взаимодействия с платёжными провайдерами, и уведомите службу безопасности провайдера. Итог: CVE-2026-105218 — критическая уязвимость, которая напрямую затрагивает доверие к платёжному каналу. Отключённая проверка TLS-сертификатов в gopay до 1.5.119 открывает возможность MITM-атак с перехватом и подменой платёжных данных. Единственное надёжное решение — обновление до версии 1.5.119 или новее; сетевые митигации следует рассматривать только как временную меру.Источник: CVE Project (cvelistV5)
