Перейти к содержимому
Noroxi

CWE-295 · 1 502 записей

Некорректная проверка сертификата

Почему это происходит?

Ошибка проверки сертификата незаметно подавляется вместо разрыва соединения. Часто это код, добавленный для тестовой среды и попавший в продуктивную.

Уязвимый и исправленный код

Показательный учебный пример. Выделенные строки показывают, где ошибка и где исправление.

Уязвимый код

kotlin
override fun checkServerTrusted(chain: Array<X509Certificate>, type: String) {  // Оставлено пустым для тестовой среды}

Исправленный код

kotlin
val client = OkHttpClient.Builder()  .certificatePinner(    CertificatePinner.Builder()      .add("api.sirius.example", "sha256/…")      .build()  ).build()

Как предотвратить

  1. 01Не изменяйте стандартную цепочку доверия платформы.
  2. 02В критичных приложениях используйте закрепление сертификатов (pinning).
  3. 03Не допускайте попадания тестовых конфигураций в продуктивную сборку.

CVE этого класса

1 504 записей

Все классы уязвимостей