Common Weakness Enumeration

CWE-295

Allowed

Improper Certificate Validation

Abstraction: Base · Status: Draft

The product does not validate, or incorrectly validates, a certificate.

2312 vulnerabilities reference this CWE, most recent first.

CVE-2026-109423 (GCVE-0-2026-109423)

Vulnerability from cvelistv5 – Published: 2026-10-12 19:34 – Updated: 2026-10-12 19:34
VLAI
Title
NetEase Cloud Music TLS Certificate Validation Bypass
Summary
NetEase Cloud Music client for Windows (cloudmusic.exe) versions 3.1.38 and 3.1.39.205426 contains a TLS certificate validation vulnerability that allows a network-adjacent attacker to intercept and decrypt HTTPS traffic by failing to validate the server certificate chain, verify the hostname, or consult any Windows certificate trust store. Attackers can perform a man-in-the-middle attack using a rogue certificate authority to decrypt traffic, capture the MUSIC_U session credential sent in authenticated API requests, and modify server responses in transit, enabling account takeover and transport-layer response forgery.
CWE
  • CWE-295 - Improper Certificate Validation
Assigner
VulnCheck CNA under the mitre root
CNA scorecard B 84/100 over 6106 records in the last 180 days details
Impacted products
Vendor Product Version
NetEase NetEase Cloud Music for Windows Affected: 3.1.38 (custom)
Affected: 3.1.39.205426 (custom)
Create a notification for this product.
Date Public
2026-09-29 00:00
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "NetEase Cloud Music for Windows",
          "vendor": "NetEase",
          "versions": [
            {
              "status": "affected",
              "version": "3.1.38",
              "versionType": "custom"
            },
            {
              "status": "affected",
              "version": "3.1.39.205426",
              "versionType": "custom"
            }
          ]
        }
      ],
      "credits": [
        {
          "lang": "en",
          "type": "finder",
          "value": "LeoWSY-hashblue"
        }
      ],
      "datePublic": "2026-09-29T00:00:00.000Z",
      "descriptions": [
        {
          "lang": "en",
          "value": "NetEase Cloud Music client for Windows (cloudmusic.exe) versions 3.1.38 and 3.1.39.205426 contains a TLS certificate validation vulnerability that allows a network-adjacent attacker to intercept and decrypt HTTPS traffic by failing to validate the server certificate chain, verify the hostname, or consult any Windows certificate trust store. Attackers can perform a man-in-the-middle attack using a rogue certificate authority to decrypt traffic, capture the MUSIC_U session credential sent in authenticated API requests, and modify server responses in transit, enabling account takeover and transport-layer response forgery."
        }
      ],
      "metrics": [
        {
          "cvssV4_0": {
            "Automatable": "NOT_DEFINED",
            "Recovery": "NOT_DEFINED",
            "Safety": "NOT_DEFINED",
            "attackComplexity": "HIGH",
            "attackRequirements": "NONE",
            "attackVector": "NETWORK",
            "baseScore": 9.1,
            "baseSeverity": "CRITICAL",
            "exploitMaturity": "NOT_DEFINED",
            "privilegesRequired": "NONE",
            "providerUrgency": "NOT_DEFINED",
            "subAvailabilityImpact": "NONE",
            "subConfidentialityImpact": "NONE",
            "subIntegrityImpact": "NONE",
            "userInteraction": "NONE",
            "valueDensity": "NOT_DEFINED",
            "vectorString": "CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N",
            "version": "4.0",
            "vulnAvailabilityImpact": "NONE",
            "vulnConfidentialityImpact": "HIGH",
            "vulnIntegrityImpact": "HIGH",
            "vulnerabilityResponseEffort": "NOT_DEFINED"
          },
          "format": "CVSS",
          "scenarios": [
            {
              "lang": "en",
              "value": "GENERAL"
            }
          ]
        },
        {
          "cvssV3_1": {
            "attackComplexity": "HIGH",
            "attackVector": "NETWORK",
            "availabilityImpact": "NONE",
            "baseScore": 7.4,
            "baseSeverity": "HIGH",
            "confidentialityImpact": "HIGH",
            "integrityImpact": "HIGH",
            "privilegesRequired": "NONE",
            "scope": "UNCHANGED",
            "userInteraction": "NONE",
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N",
            "version": "3.1"
          },
          "format": "CVSS",
          "scenarios": [
            {
              "lang": "en",
              "value": "GENERAL"
            }
          ]
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-295",
              "description": "Improper Certificate Validation",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-12T19:34:31.770Z",
        "orgId": "83251b91-4cc7-4094-a5c7-464a1b83ea10",
        "shortName": "VulnCheck"
      },
      "references": [
        {
          "name": "Researcher Disclosure",
          "tags": [
            "technical-description"
          ],
          "url": "https://gist.github.com/LeoWSY-hashblue/10e5383fc2d4d75faf74a9507c6bba9f"
        },
        {
          "name": "Product Page",
          "tags": [
            "product"
          ],
          "url": "https://hr.163.com/product.html/music"
        },
        {
          "name": "VulnCheck Advisory: NetEase Cloud Music TLS Certificate Validation Bypass",
          "tags": [
            "third-party-advisory"
          ],
          "url": "https://www.vulncheck.com/advisories/netease-cloud-music-tls-certificate-validation-bypass"
        }
      ],
      "source": {
        "discovery": "UNKNOWN"
      },
      "title": "NetEase Cloud Music TLS Certificate Validation Bypass",
      "x_generator": {
        "engine": "vulncheck"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "83251b91-4cc7-4094-a5c7-464a1b83ea10",
    "assignerShortName": "VulnCheck",
    "cveId": "CVE-2026-109423",
    "datePublished": "2026-10-12T19:34:31.770Z",
    "dateReserved": "2026-10-12T15:52:36.681Z",
    "dateUpdated": "2026-10-12T19:34:31.770Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}

CVE-2026-109399 (GCVE-0-2026-109399)

Vulnerability from cvelistv5 – Published: 2026-10-12 15:16 – Updated: 2026-10-12 15:16
VLAI
Title
SWUpdate through 2026.05.1 CMS Signature Verification Bypass via Embedded Intermediates
Summary
SWUpdate through 2026.05.1 contains an improper certificate validation vulnerability in crypto/swupdate_cms_verify_openssl.c that trusts untrusted X.509 certificates embedded in CMS SignedData for chain building. Attackers holding a signing key from a sibling intermediate under the same root can embed that intermediate in the signature to install malicious updates.
CWE
  • CWE-295 - Improper Certificate Validation
Assigner
VulnCheck CNA under the mitre root
CNA scorecard B 84/100 over 6106 records in the last 180 days details
Impacted products
Vendor Product Version
sbabic swupdate Affected: 0 , ≤ 2026.05.1 (custom)
    cpe:2.3:a:swupdate:swupdate:*:*:*:*:*:*:*:*
Create a notification for this product.
Date Public
2026-02-11 08:00
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "packageURL": "pkg:github/sbabic/swupdate",
          "product": "swupdate",
          "repo": "https://github.com/sbabic/swupdate",
          "vendor": "sbabic",
          "versions": [
            {
              "lessThanOrEqual": "2026.05.1",
              "status": "affected",
              "version": "0",
              "versionType": "custom"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:a:swupdate:swupdate:*:*:*:*:*:*:*:*",
                  "versionEndIncluding": "2026.05.1",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "credits": [
        {
          "lang": "en",
          "type": "finder",
          "value": "David Gstir (sigma star gmbh)"
        },
        {
          "lang": "en",
          "type": "finder",
          "value": "Richard Weinberger (sigma star gmbh)"
        }
      ],
      "datePublic": "2026-02-11T08:00:52.000Z",
      "descriptions": [
        {
          "lang": "en",
          "value": "SWUpdate through 2026.05.1 contains an improper certificate validation vulnerability in crypto/swupdate_cms_verify_openssl.c that trusts untrusted X.509 certificates embedded in CMS SignedData for chain building. Attackers holding a signing key from a sibling intermediate under the same root can embed that intermediate in the signature to install malicious updates."
        }
      ],
      "metrics": [
        {
          "cvssV4_0": {
            "attackComplexity": "HIGH",
            "attackRequirements": "PRESENT",
            "attackVector": "NETWORK",
            "baseScore": 9.2,
            "baseSeverity": "CRITICAL",
            "privilegesRequired": "NONE",
            "subAvailabilityImpact": "NONE",
            "subConfidentialityImpact": "NONE",
            "subIntegrityImpact": "NONE",
            "userInteraction": "NONE",
            "vectorString": "CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N",
            "version": "4.0",
            "vulnAvailabilityImpact": "HIGH",
            "vulnConfidentialityImpact": "HIGH",
            "vulnIntegrityImpact": "HIGH"
          },
          "format": "CVSS"
        },
        {
          "cvssV3_1": {
            "attackComplexity": "HIGH",
            "attackVector": "NETWORK",
            "availabilityImpact": "HIGH",
            "baseScore": 8.1,
            "baseSeverity": "HIGH",
            "confidentialityImpact": "HIGH",
            "integrityImpact": "HIGH",
            "privilegesRequired": "NONE",
            "scope": "UNCHANGED",
            "userInteraction": "NONE",
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "format": "CVSS"
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-295",
              "description": "Improper Certificate Validation",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-12T15:16:44.440Z",
        "orgId": "83251b91-4cc7-4094-a5c7-464a1b83ea10",
        "shortName": "VulnCheck"
      },
      "references": [
        {
          "name": "Researcher Disclosure",
          "tags": [
            "technical-description",
            "mailing-list"
          ],
          "url": "https://groups.google.com/g/swupdate/c/dsoMcGFnEns"
        },
        {
          "tags": [
            "patch"
          ],
          "url": "https://github.com/sbabic/swupdate/commit/e66c5640664a31668926a24c0c84b6b6570dc0d9"
        },
        {
          "tags": [
            "technical-description"
          ],
          "url": "https://github.com/sbabic/swupdate/blob/2026.05.1/crypto/swupdate_cms_verify_openssl.c"
        },
        {
          "tags": [
            "product"
          ],
          "url": "https://github.com/sbabic/swupdate"
        },
        {
          "name": "VulnCheck Advisory: SWUpdate through 2026.05.1 CMS Signature Verification Bypass via Embedded Intermediates",
          "tags": [
            "third-party-advisory"
          ],
          "url": "https://www.vulncheck.com/advisories/swupdate-through-2026.05.1-cms-signature-verification-bypass-via-embedded-intermediates"
        }
      ],
      "title": "SWUpdate through 2026.05.1 CMS Signature Verification Bypass via Embedded Intermediates",
      "x_generator": {
        "engine": "vulncheck-endgame"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "83251b91-4cc7-4094-a5c7-464a1b83ea10",
    "assignerShortName": "VulnCheck",
    "cveId": "CVE-2026-109399",
    "datePublished": "2026-10-12T15:16:44.440Z",
    "dateReserved": "2026-10-12T14:40:48.738Z",
    "dateUpdated": "2026-10-12T15:16:44.440Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}

CVE-2026-109245 (GCVE-0-2026-109245)

Vulnerability from cvelistv5 – Published: 2026-10-12 16:04 – Updated: 2026-10-13 18:01
VLAI
Title
FreeRDP 3.0.0 before 3.32.0 Improper Certificate Validation in freerdp_http_request
Summary
FreeRDP 3.0.0 before 3.32.0 contains an improper certificate validation vulnerability in freerdp_http_request() in libfreerdp/utils/http.c that completes TLS handshakes without verifying the server certificate chain. On-path attackers can impersonate login.microsoftonline.com in the Azure AD authentication flow to capture OAuth authorization codes and substitute the OpenID discovery document.
SSVC
Exploitation: poc Automatable: no Technical Impact: total
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-10-13 18:00 UTC
CWE
  • CWE-295 - Improper Certificate Validation
Assigner
VulnCheck CNA under the mitre root
CNA scorecard B 84/100 over 6106 records in the last 180 days details
References
Impacted products
Vendor Product Version
FreeRDP FreeRDP Affected: 3.0.0 , < 3.32.0 (semver)
Unaffected: 3.32.0 (semver)
    cpe:2.3:a:freerdp:freerdp:*:*:*:*:*:*:*:*
Create a notification for this product.
Date Public
2026-09-28 00:00
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-109245",
                "options": [
                  {
                    "Exploitation": "poc"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "total"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-10-13T18:00:43.214768Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-10-13T18:01:03.073Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "references": [
          {
            "tags": [
              "exploit"
            ],
            "url": "https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-h44v-39x6-9xvg"
          }
        ],
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "FreeRDP",
          "vendor": "FreeRDP",
          "versions": [
            {
              "lessThan": "3.32.0",
              "status": "affected",
              "version": "3.0.0",
              "versionType": "semver"
            },
            {
              "status": "unaffected",
              "version": "3.32.0",
              "versionType": "semver"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:a:freerdp:freerdp:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "3.32.0",
                  "versionStartIncluding": "3.0.0",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "credits": [
        {
          "lang": "en",
          "type": "reporter",
          "value": "DavidKorczynski"
        }
      ],
      "datePublic": "2026-09-28T00:00:00.000Z",
      "descriptions": [
        {
          "lang": "en",
          "value": "FreeRDP 3.0.0 before 3.32.0 contains an improper certificate validation vulnerability in freerdp_http_request() in libfreerdp/utils/http.c that completes TLS handshakes without verifying the server certificate chain. On-path attackers can impersonate login.microsoftonline.com in the Azure AD authentication flow to capture OAuth authorization codes and substitute the OpenID discovery document."
        }
      ],
      "metrics": [
        {
          "cvssV4_0": {
            "Automatable": "NOT_DEFINED",
            "Recovery": "NOT_DEFINED",
            "Safety": "NOT_DEFINED",
            "attackComplexity": "LOW",
            "attackRequirements": "PRESENT",
            "attackVector": "NETWORK",
            "baseScore": 7.4,
            "baseSeverity": "HIGH",
            "exploitMaturity": "NOT_DEFINED",
            "privilegesRequired": "NONE",
            "providerUrgency": "NOT_DEFINED",
            "subAvailabilityImpact": "NONE",
            "subConfidentialityImpact": "NONE",
            "subIntegrityImpact": "NONE",
            "userInteraction": "ACTIVE",
            "valueDensity": "NOT_DEFINED",
            "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N",
            "version": "4.0",
            "vulnAvailabilityImpact": "NONE",
            "vulnConfidentialityImpact": "HIGH",
            "vulnIntegrityImpact": "HIGH",
            "vulnerabilityResponseEffort": "NOT_DEFINED"
          },
          "format": "CVSS"
        },
        {
          "cvssV3_1": {
            "attackComplexity": "HIGH",
            "attackVector": "NETWORK",
            "availabilityImpact": "NONE",
            "baseScore": 6.8,
            "baseSeverity": "MEDIUM",
            "confidentialityImpact": "HIGH",
            "integrityImpact": "HIGH",
            "privilegesRequired": "NONE",
            "scope": "UNCHANGED",
            "userInteraction": "REQUIRED",
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N",
            "version": "3.1"
          },
          "format": "CVSS"
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-295",
              "description": "Improper Certificate Validation",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-12T16:04:20.352Z",
        "orgId": "83251b91-4cc7-4094-a5c7-464a1b83ea10",
        "shortName": "VulnCheck"
      },
      "references": [
        {
          "name": "GitHub Security Advisory (GHSA-h44v-39x6-9xvg)",
          "tags": [
            "vendor-advisory"
          ],
          "url": "https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-h44v-39x6-9xvg"
        },
        {
          "name": "VulnCheck Advisory: FreeRDP 3.0.0 before 3.32.0 Improper Certificate Validation in freerdp_http_request",
          "tags": [
            "third-party-advisory"
          ],
          "url": "https://www.vulncheck.com/advisories/freerdp-3.0.0-before-3.32.0-improper-certificate-validation-in-freerdp-http-request"
        }
      ],
      "title": "FreeRDP 3.0.0 before 3.32.0 Improper Certificate Validation in freerdp_http_request",
      "x_generator": {
        "engine": "vulncheck-endgame"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "83251b91-4cc7-4094-a5c7-464a1b83ea10",
    "assignerShortName": "VulnCheck",
    "cveId": "CVE-2026-109245",
    "datePublished": "2026-10-12T16:04:20.352Z",
    "dateReserved": "2026-10-12T14:07:56.521Z",
    "dateUpdated": "2026-10-13T18:01:03.073Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}

CVE-2026-108185 (GCVE-0-2026-108185)

Vulnerability from cvelistv5 – Published: 2026-10-13 14:29 – Updated: 2026-10-13 14:29
VLAI
Summary
Improper certificate validation in the My Notes feature of certain Zoom Clients may allow an unauthenticated user to conduct an information disclosure via network access.
CWE
  • CWE-295 - Improper certificate validation
Assigner
Zoom CNA under the mitre root
CNA scorecard C 60/100 over 18 records in the last 180 days details
Impacted products
Vendor Product Version
Zoom Communications Zoom Clients Affected: see references (custom)
Create a notification for this product.
Date Public
2026-10-13 12:00
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "platforms": [
            "Windows",
            "MacOS",
            "Linux",
            "iOS",
            "Android"
          ],
          "product": "Zoom Clients",
          "vendor": "Zoom Communications",
          "versions": [
            {
              "status": "affected",
              "version": "see references",
              "versionType": "custom"
            }
          ]
        }
      ],
      "datePublic": "2026-10-13T12:00:00.000Z",
      "descriptions": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "\u003cp\u003eImproper certificate validation in the My Notes feature of certain Zoom Clients may allow an unauthenticated user to conduct an information disclosure via network access.\u003c/p\u003e"
            }
          ],
          "value": "Improper certificate validation in the My Notes feature of certain Zoom Clients may allow an unauthenticated user to conduct an information disclosure via network access."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "attackComplexity": "HIGH",
            "attackVector": "NETWORK",
            "availabilityImpact": "NONE",
            "baseScore": 7.4,
            "baseSeverity": "HIGH",
            "confidentialityImpact": "HIGH",
            "integrityImpact": "HIGH",
            "privilegesRequired": "NONE",
            "scope": "UNCHANGED",
            "userInteraction": "NONE",
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N",
            "version": "3.1"
          },
          "format": "CVSS",
          "scenarios": [
            {
              "lang": "en",
              "value": "GENERAL"
            }
          ]
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-295",
              "description": "CWE-295 Improper certificate validation",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-13T14:29:48.575Z",
        "orgId": "99b9af0d-a833-4a5d-9e2f-8b1324f35351",
        "shortName": "Zoom"
      },
      "references": [
        {
          "url": "https://www.zoom.com/en/trust/security-bulletin/zsb-26022"
        }
      ],
      "source": {
        "discovery": "UNKNOWN"
      },
      "x_generator": {
        "engine": "Vulnogram 1.0.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "99b9af0d-a833-4a5d-9e2f-8b1324f35351",
    "assignerShortName": "Zoom",
    "cveId": "CVE-2026-108185",
    "datePublished": "2026-10-13T14:29:48.575Z",
    "dateReserved": "2026-10-09T17:15:48.426Z",
    "dateUpdated": "2026-10-13T14:29:48.575Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}

CVE-2026-108184 (GCVE-0-2026-108184)

Vulnerability from cvelistv5 – Published: 2026-10-13 14:28 – Updated: 2026-10-13 14:28
VLAI
Summary
Improper certificate validation in certain Zoom Clients for Windows may allow an unauthenticated user to conduct an information disclosure via network access.
CWE
  • CWE-295 - Improper certificate validation
Assigner
Zoom CNA under the mitre root
CNA scorecard C 60/100 over 18 records in the last 180 days details
Impacted products
Vendor Product Version
Zoom Communications Zoom Clients Affected: see references (custom)
Create a notification for this product.
Date Public
2026-10-13 12:00
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "platforms": [
            "Windows"
          ],
          "product": "Zoom Clients",
          "vendor": "Zoom Communications",
          "versions": [
            {
              "status": "affected",
              "version": "see references",
              "versionType": "custom"
            }
          ]
        }
      ],
      "datePublic": "2026-10-13T12:00:00.000Z",
      "descriptions": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "\u003cp\u003eImproper certificate validation in certain Zoom Clients for Windows may allow an unauthenticated user to conduct an information disclosure via network access.\u003c/p\u003e"
            }
          ],
          "value": "Improper certificate validation in certain Zoom Clients for Windows may allow an unauthenticated user to conduct an information disclosure via network access."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "attackComplexity": "HIGH",
            "attackVector": "NETWORK",
            "availabilityImpact": "NONE",
            "baseScore": 7.4,
            "baseSeverity": "HIGH",
            "confidentialityImpact": "HIGH",
            "integrityImpact": "HIGH",
            "privilegesRequired": "NONE",
            "scope": "UNCHANGED",
            "userInteraction": "NONE",
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N",
            "version": "3.1"
          },
          "format": "CVSS",
          "scenarios": [
            {
              "lang": "en",
              "value": "GENERAL"
            }
          ]
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-295",
              "description": "CWE-295 Improper certificate validation",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-13T14:28:33.249Z",
        "orgId": "99b9af0d-a833-4a5d-9e2f-8b1324f35351",
        "shortName": "Zoom"
      },
      "references": [
        {
          "url": "https://www.zoom.com/en/trust/security-bulletin/zsb-26021"
        }
      ],
      "source": {
        "discovery": "UNKNOWN"
      },
      "x_generator": {
        "engine": "Vulnogram 1.0.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "99b9af0d-a833-4a5d-9e2f-8b1324f35351",
    "assignerShortName": "Zoom",
    "cveId": "CVE-2026-108184",
    "datePublished": "2026-10-13T14:28:33.249Z",
    "dateReserved": "2026-10-09T17:15:48.426Z",
    "dateUpdated": "2026-10-13T14:28:33.249Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}

CVE-2026-107587 (GCVE-0-2026-107587)

Vulnerability from cvelistv5 – Published: 2026-10-08 11:49 – Updated: 2026-10-08 14:13
VLAI
Title
Improper Certificate Validation in hMailServer
Summary
Improper certificate validation in the webmail of Progressive Robot hMailServer 6.3.2 through 6.3.5 allows a remote unauthenticated attacker to have S/MIME-encrypted mail that the account later sends to another correspondent also encrypted to the attacker's key. When its recipient opened a signed message, the webmail kept the signer's certificate for encrypting replies whether or not the server found its chain trusted, under the first e-mail address the certificate listed rather than the message's From address, and beside any certificate already held for that address. Encrypted mail later sent from the webmail to that address was encrypted to every certificate held for it, so a holder of the kept certificate's key who obtains a copy of such a message can read it.
SSVC
Exploitation: none Automatable: no Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-10-08 14:13 UTC
CWE
  • CWE-295 - Improper Certificate Validation
Assigner
GitLab CNA under the mitre root
CNA scorecard C 75/100 over 312 records in the last 180 days details
Impacted products
Vendor Product Version
Progressive Robot Ltd hMailServer Affected: 6.3.2 , < 6.3.6 (semver)
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-107587",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-10-08T14:13:29.336107Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-10-08T14:13:38.084Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "hMailServer",
          "repo": "https://gitlab.com/hmailserver/hmailserver",
          "vendor": "Progressive Robot Ltd",
          "versions": [
            {
              "lessThan": "6.3.6",
              "status": "affected",
              "version": "6.3.2",
              "versionType": "semver"
            }
          ]
        }
      ],
      "credits": [
        {
          "lang": "en",
          "type": "finder",
          "value": "Found in the hMailServer project\u0027s own security review (Progressive Robot Ltd)"
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "Improper certificate validation in the webmail of Progressive Robot hMailServer 6.3.2 through 6.3.5 allows a remote unauthenticated attacker to have S/MIME-encrypted mail that the account later sends to another correspondent also encrypted to the attacker\u0027s key. When its recipient opened a signed message, the webmail kept the signer\u0027s certificate for encrypting replies whether or not the server found its chain trusted, under the first e-mail address the certificate listed rather than the message\u0027s From address, and beside any certificate already held for that address. Encrypted mail later sent from the webmail to that address was encrypted to every certificate held for it, so a holder of the kept certificate\u0027s key who obtains a copy of such a message can read it."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "attackComplexity": "HIGH",
            "attackVector": "NETWORK",
            "availabilityImpact": "NONE",
            "baseScore": 5.9,
            "baseSeverity": "MEDIUM",
            "confidentialityImpact": "HIGH",
            "integrityImpact": "LOW",
            "privilegesRequired": "NONE",
            "scope": "UNCHANGED",
            "userInteraction": "REQUIRED",
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:L/A:N",
            "version": "3.1"
          },
          "format": "CVSS",
          "scenarios": [
            {
              "lang": "en",
              "value": "GENERAL"
            }
          ]
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-295",
              "description": "CWE-295: Improper Certificate Validation",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-08T11:49:01.081Z",
        "orgId": "ceab7361-8a18-47b1-92ba-4d7d25f6715a",
        "shortName": "GitLab"
      },
      "references": [
        {
          "url": "https://gitlab.com/hmailserver/hmailserver/-/work_items/66"
        },
        {
          "url": "https://gitlab.com/hmailserver/hmailserver/-/releases/v6.3.6"
        }
      ],
      "solutions": [
        {
          "lang": "en",
          "value": "Upgrade to hMailServer 6.3.6, whose webmail keeps a signer\u0027s certificate only when its chain is trusted, only under the From address the signature was verified for, and a different certificate for an address that has one only when the reader chooses to. After upgrading, review the correspondents\u0027 certificates on the webmail\u0027s Security page and remove any that should not be there. Until then: check the certificates listed for an address before sending it encrypted mail from the webmail, or encrypt in a mail program."
        }
      ],
      "title": "Improper Certificate Validation in hMailServer"
    }
  },
  "cveMetadata": {
    "assignerOrgId": "ceab7361-8a18-47b1-92ba-4d7d25f6715a",
    "assignerShortName": "GitLab",
    "cveId": "CVE-2026-107587",
    "datePublished": "2026-10-08T11:49:01.081Z",
    "dateReserved": "2026-10-08T11:17:47.802Z",
    "dateUpdated": "2026-10-08T14:13:38.084Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}

CVE-2026-107318 (GCVE-0-2026-107318)

Vulnerability from cvelistv5 – Published: 2026-10-08 20:32 – Updated: 2026-10-09 11:50
VLAI
Title
@fastify/reply-from vulnerable to improper certificate validation in built-in HTTPS transports
Summary
@fastify/reply-from is a Fastify plugin that forwards requests to an upstream HTTP or HTTPS server. In versions prior to 12.7.0, all of the built-in HTTPS transports override the secure default and set rejectUnauthorized to false, so the proxy does not verify the TLS certificate of the upstream even when the application points it at an https upstream in the default configuration. An on-path network attacker can therefore impersonate the configured HTTPS upstream, read the credentials and request bodies the proxy forwards, and return forged responses that the application trusts. The issue is fixed in @fastify/reply-from 12.7.0, and users should upgrade to 12.7.0 or later. As a workaround, pass an explicit rejectUnauthorized true on the transport, supply an already configured undici instance, or use the undici global agent.
SSVC
Exploitation: none Automatable: no Technical Impact: total
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-10-09 11:50 UTC
CWE
  • CWE-295 - Improper Certificate Validation
Assigner
openjs CNA under the redhat root
CNA scorecard C 65/100 over 100 records in the last 180 days details
Impacted products
Vendor Product Version
@fastify/reply-from @fastify/reply-from Affected: 0 , < 12.7.0 (semver)
Unaffected: 12.7.0 (semver)
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-107318",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "total"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-10-09T11:50:31.702426Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-10-09T11:50:42.722Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "packageURL": "pkg:npm/@fastify/reply-from",
          "product": "@fastify/reply-from",
          "vendor": "@fastify/reply-from",
          "versions": [
            {
              "lessThan": "12.7.0",
              "status": "affected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "status": "unaffected",
              "version": "12.7.0",
              "versionType": "semver"
            }
          ]
        }
      ],
      "credits": [
        {
          "lang": "en",
          "type": "remediation developer",
          "value": "mcollina"
        },
        {
          "lang": "en",
          "type": "remediation reviewer",
          "value": "UlisesGascon"
        },
        {
          "lang": "en",
          "type": "reporter",
          "value": "oss-security-shopify"
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "@fastify/reply-from is a Fastify plugin that forwards requests to an upstream HTTP or HTTPS server. In versions prior to 12.7.0, all of the built-in HTTPS transports override the secure default and set rejectUnauthorized to false, so the proxy does not verify the TLS certificate of the upstream even when the application points it at an https upstream in the default configuration. An on-path network attacker can therefore impersonate the configured HTTPS upstream, read the credentials and request bodies the proxy forwards, and return forged responses that the application trusts. The issue is fixed in @fastify/reply-from 12.7.0, and users should upgrade to 12.7.0 or later. As a workaround, pass an explicit rejectUnauthorized true on the transport, supply an already configured undici instance, or use the undici global agent."
            }
          ],
          "value": "@fastify/reply-from is a Fastify plugin that forwards requests to an upstream HTTP or HTTPS server. In versions prior to 12.7.0, all of the built-in HTTPS transports override the secure default and set rejectUnauthorized to false, so the proxy does not verify the TLS certificate of the upstream even when the application points it at an https upstream in the default configuration. An on-path network attacker can therefore impersonate the configured HTTPS upstream, read the credentials and request bodies the proxy forwards, and return forged responses that the application trusts. The issue is fixed in @fastify/reply-from 12.7.0, and users should upgrade to 12.7.0 or later. As a workaround, pass an explicit rejectUnauthorized true on the transport, supply an already configured undici instance, or use the undici global agent."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.4,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N",
            "version": "3.1"
          },
          "format": "CVSS",
          "scenarios": [
            {
              "lang": "en",
              "value": "GENERAL"
            }
          ]
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-295",
              "description": "CWE-295: Improper Certificate Validation",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-08T20:32:03.483Z",
        "orgId": "ce714d77-add3-4f53-aff5-83d477b104bb",
        "shortName": "openjs"
      },
      "references": [
        {
          "url": "https://github.com/fastify/fastify-reply-from/security/advisories/GHSA-j425-jw94-m29r"
        },
        {
          "url": "https://cna.openjsf.org/security-advisories.html"
        }
      ],
      "title": "@fastify/reply-from vulnerable to improper certificate validation in built-in HTTPS transports",
      "x_generator": {
        "engine": "cve-kit 1.0.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "ce714d77-add3-4f53-aff5-83d477b104bb",
    "assignerShortName": "openjs",
    "cveId": "CVE-2026-107318",
    "datePublished": "2026-10-08T20:32:03.483Z",
    "dateReserved": "2026-10-07T17:27:41.901Z",
    "dateUpdated": "2026-10-09T11:50:42.722Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}

CVE-2026-105794 (GCVE-0-2026-105794)

Vulnerability from cvelistv5 – Published: 2026-10-06 14:14 – Updated: 2026-10-06 17:40
VLAI
Title
MsQuic: Improper Certificate Validation in Microsoft.Native.Quic.MsQuic.OpenSSL
Summary
MsQuic is a cross-platform C implementation of the IETF QUIC protocol exposed to C, C++, C#, and Rust. Prior to 2.4.20, 2.5.11, and 2.6.1, MsQuic clients using the OpenSSL or QuicTLS TLS backend do not properly verify that a server certificate matches the intended target server hostname. An on-path attacker can therefore present a certificate that does not match the intended target hostname and spoof the server in a man-in-the-middle attack. The Schannel backend is not affected. This issue is fixed in versions 2.4.20, 2.5.11, and 2.6.1.
SSVC
Exploitation: none Automatable: no Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-10-06 17:34 UTC
CWE
  • CWE-295 - Improper Certificate Validation
Assigner
GitHub_M CNA under the mitre root
CNA scorecard C 72/100 over 7637 records in the last 180 days details
Impacted products
Vendor Product Version
microsoft msquic Affected: < 2.4.20
Affected: >= 2.5.0, < 2.5.11
Affected: >= 2.6.0, < 2.6.1
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-105794",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-10-06T17:34:05.356189Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-10-06T17:40:05.706Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "product": "msquic",
          "vendor": "microsoft",
          "versions": [
            {
              "status": "affected",
              "version": "\u003c 2.4.20"
            },
            {
              "status": "affected",
              "version": "\u003e= 2.5.0, \u003c 2.5.11"
            },
            {
              "status": "affected",
              "version": "\u003e= 2.6.0, \u003c 2.6.1"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "MsQuic is a cross-platform C implementation of the IETF QUIC protocol exposed to C, C++, C#, and Rust. Prior to 2.4.20, 2.5.11, and 2.6.1, MsQuic clients using the OpenSSL or QuicTLS TLS backend do not properly verify that a server certificate matches the intended target server hostname. An on-path attacker can therefore present a certificate that does not match the intended target hostname and spoof the server in a man-in-the-middle attack. The Schannel backend is not affected. This issue is fixed in versions 2.4.20, 2.5.11, and 2.6.1."
        }
      ],
      "metrics": [
        {
          "cvssV4_0": {
            "attackComplexity": "LOW",
            "attackRequirements": "PRESENT",
            "attackVector": "NETWORK",
            "baseScore": 9.1,
            "baseSeverity": "CRITICAL",
            "privilegesRequired": "NONE",
            "subAvailabilityImpact": "NONE",
            "subConfidentialityImpact": "NONE",
            "subIntegrityImpact": "NONE",
            "userInteraction": "NONE",
            "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N",
            "version": "4.0",
            "vulnAvailabilityImpact": "NONE",
            "vulnConfidentialityImpact": "HIGH",
            "vulnIntegrityImpact": "HIGH"
          }
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-295",
              "description": "CWE-295: Improper Certificate Validation",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-06T14:14:54.483Z",
        "orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
        "shortName": "GitHub_M"
      },
      "references": [
        {
          "name": "https://github.com/microsoft/msquic/security/advisories/GHSA-w5f4-fx9m-m4q7",
          "tags": [
            "x_refsource_CONFIRM"
          ],
          "url": "https://github.com/microsoft/msquic/security/advisories/GHSA-w5f4-fx9m-m4q7"
        },
        {
          "name": "https://github.com/microsoft/msquic/pull/6274",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/microsoft/msquic/pull/6274"
        },
        {
          "name": "https://github.com/microsoft/msquic/pull/6275",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/microsoft/msquic/pull/6275"
        },
        {
          "name": "https://github.com/microsoft/msquic/pull/6276",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/microsoft/msquic/pull/6276"
        },
        {
          "name": "https://github.com/microsoft/msquic/pull/6277",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/microsoft/msquic/pull/6277"
        },
        {
          "name": "https://github.com/microsoft/msquic/commit/0591586443cc73a2d2cfb679527d91a144b4a412",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/microsoft/msquic/commit/0591586443cc73a2d2cfb679527d91a144b4a412"
        },
        {
          "name": "https://github.com/microsoft/msquic/commit/508e811370df93e2ad848f5c78347d4fe4f65a91",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/microsoft/msquic/commit/508e811370df93e2ad848f5c78347d4fe4f65a91"
        },
        {
          "name": "https://github.com/microsoft/msquic/commit/90fd45498bf9b506b8556fb407088688474d6c81",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/microsoft/msquic/commit/90fd45498bf9b506b8556fb407088688474d6c81"
        },
        {
          "name": "https://github.com/microsoft/msquic/commit/a01333cf7c2659cce0ff03ef3f21e1ff15bb5b83",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/microsoft/msquic/commit/a01333cf7c2659cce0ff03ef3f21e1ff15bb5b83"
        },
        {
          "name": "https://github.com/microsoft/msquic/releases/tag/v2.4.20",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/microsoft/msquic/releases/tag/v2.4.20"
        },
        {
          "name": "https://github.com/microsoft/msquic/releases/tag/v2.5.11",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/microsoft/msquic/releases/tag/v2.5.11"
        },
        {
          "name": "https://github.com/microsoft/msquic/releases/tag/v2.6.1",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/microsoft/msquic/releases/tag/v2.6.1"
        }
      ],
      "source": {
        "advisory": "GHSA-w5f4-fx9m-m4q7",
        "discovery": "UNKNOWN"
      },
      "title": "MsQuic: Improper Certificate Validation in Microsoft.Native.Quic.MsQuic.OpenSSL"
    }
  },
  "cveMetadata": {
    "assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
    "assignerShortName": "GitHub_M",
    "cveId": "CVE-2026-105794",
    "datePublished": "2026-10-06T14:14:54.483Z",
    "dateReserved": "2026-10-05T20:37:19.364Z",
    "dateUpdated": "2026-10-06T17:40:05.706Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}

CVE-2026-105236 (GCVE-0-2026-105236)

Vulnerability from cvelistv5 – Published: 2026-10-14 16:55 – Updated: 2026-10-14 16:55
VLAI
Title
TLS 1.2 session resumption in ssl crosses SNI virtual-host client-certificate trust boundaries
Summary
Improper Certificate Validation vulnerability in the ssl application in Erlang/OTP allows a client that holds a certificate trusted by one SNI virtual host to authenticate to a second SNI virtual host on the same listener by resuming its TLS 1.2 session there. A server that serves several SNI names from one listen socket through sni_fun or sni_hosts keeps one pre-TLS 1.3 session cache per listener and does not bind a cached session to the SNI name or client trust policy that established it. When an SNI option set switches to verify_peer without naming reuse_sessions, ssl_config:update_options/3 inherits the base listener's reuse_sessions value of true, so the default that disables reuse for client-authenticating servers does not apply. On an abbreviated handshake ssl_session:is_resumable/4 checks only that the cached session uses one of the current server certificates and carries some peer certificate, and never revalidates that certificate against the CA selected for the requested name. The names must share a server certificate, which is common with wildcard or multi-SAN certificates. TLS 1.3 does not use this cache and is not affected. This issue affects OTP from OTP 18.0 before OTP 27.3.4.19, OTP 28.5.0.8, and OTP 29.1.2, corresponding to ssl from 7.0 before 11.2.12.14, 11.6.0.7, and 11.7.8.
CWE
  • CWE-295 - Improper Certificate Validation
Assigner
EEF CNA under the mitre root
CNA scorecard A 97/100 over 313 records in the last 180 days details
Impacted products
Vendor Product Version
Erlang OTP Affected: 18.0 , < * (otp)
    cpe:2.3:a:erlang:erlang\/otp:*:*:*:*:*:*:*:*
Create a notification for this product.
Erlang OTP Affected: 7.0 , < * (otp)
    cpe:2.3:a:erlang:erlang\/otp:*:*:*:*:*:*:*:*
Create a notification for this product.
Erlang OTP Affected: 4fe38c4b8b2c8024afb60990e598ff823743fd54 , < * (git)
    cpe:2.3:a:erlang:erlang\/otp:*:*:*:*:*:*:*:*
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "cpes": [
            "cpe:2.3:a:erlang:erlang\\/otp:*:*:*:*:*:*:*:*"
          ],
          "defaultStatus": "unaffected",
          "modules": [
            "ssl_gen_statem",
            "ssl_config",
            "ssl_session",
            "ssl_handshake"
          ],
          "packageName": "otp",
          "packageURL": "pkg:software-id/erlang.org/otp",
          "product": "OTP",
          "programFiles": [
            "lib/ssl/src/ssl_gen_statem.erl",
            "lib/ssl/src/ssl_config.erl",
            "lib/ssl/src/ssl_session.erl",
            "lib/ssl/src/ssl_handshake.erl"
          ],
          "programRoutines": [
            {
              "name": "ssl_gen_statem:handle_sni_extension/2"
            },
            {
              "name": "ssl_gen_statem:handle_sni_hostname/2"
            },
            {
              "name": "ssl_gen_statem:update_ssl_options_from_sni/2"
            },
            {
              "name": "ssl_gen_statem:fallback_options/2"
            },
            {
              "name": "ssl_config:update_options/3"
            },
            {
              "name": "ssl_config:opt_reuse_sessions/3"
            },
            {
              "name": "ssl_session:server_select_session/5"
            },
            {
              "name": "ssl_session:is_resumable/4"
            },
            {
              "name": "ssl_session:reusable_options/2"
            },
            {
              "name": "ssl_handshake:select_session/8"
            }
          ],
          "vendor": "Erlang",
          "versions": [
            {
              "changes": [
                {
                  "at": "27.3.4.19",
                  "status": "unaffected"
                },
                {
                  "at": "28.5.0.8",
                  "status": "unaffected"
                },
                {
                  "at": "29.1.2",
                  "status": "unaffected"
                }
              ],
              "lessThan": "*",
              "status": "affected",
              "version": "18.0",
              "versionType": "otp"
            }
          ]
        },
        {
          "cpes": [
            "cpe:2.3:a:erlang:erlang\\/otp:*:*:*:*:*:*:*:*"
          ],
          "defaultStatus": "unaffected",
          "modules": [
            "ssl_gen_statem",
            "ssl_config",
            "ssl_session",
            "ssl_handshake"
          ],
          "packageName": "ssl",
          "packageURL": "pkg:otp/ssl?repository_url=https:%2F%2Fgithub.com%2Ferlang%2Fotp\u0026vcs_url=git%2Bhttps:%2F%2Fgithub.com%2Ferlang%2Fotp.git",
          "product": "OTP",
          "programFiles": [
            "src/ssl_gen_statem.erl",
            "src/ssl_config.erl",
            "src/ssl_session.erl",
            "src/ssl_handshake.erl"
          ],
          "programRoutines": [
            {
              "name": "ssl_gen_statem:handle_sni_extension/2"
            },
            {
              "name": "ssl_gen_statem:handle_sni_hostname/2"
            },
            {
              "name": "ssl_gen_statem:update_ssl_options_from_sni/2"
            },
            {
              "name": "ssl_gen_statem:fallback_options/2"
            },
            {
              "name": "ssl_config:update_options/3"
            },
            {
              "name": "ssl_config:opt_reuse_sessions/3"
            },
            {
              "name": "ssl_session:server_select_session/5"
            },
            {
              "name": "ssl_session:is_resumable/4"
            },
            {
              "name": "ssl_session:reusable_options/2"
            },
            {
              "name": "ssl_handshake:select_session/8"
            }
          ],
          "repo": "https://github.com/erlang/otp",
          "vendor": "Erlang",
          "versions": [
            {
              "changes": [
                {
                  "at": "11.2.12.14",
                  "status": "unaffected"
                },
                {
                  "at": "11.6.0.7",
                  "status": "unaffected"
                },
                {
                  "at": "11.7.8",
                  "status": "unaffected"
                }
              ],
              "lessThan": "*",
              "status": "affected",
              "version": "7.0",
              "versionType": "otp"
            }
          ]
        },
        {
          "collectionURL": "https://github.com",
          "cpes": [
            "cpe:2.3:a:erlang:erlang\\/otp:*:*:*:*:*:*:*:*"
          ],
          "defaultStatus": "unaffected",
          "modules": [
            "ssl_gen_statem",
            "ssl_config",
            "ssl_session",
            "ssl_handshake"
          ],
          "packageName": "erlang/otp",
          "packageURL": "pkg:github/erlang/otp",
          "product": "OTP",
          "programFiles": [
            "lib/ssl/src/ssl_gen_statem.erl",
            "lib/ssl/src/ssl_config.erl",
            "lib/ssl/src/ssl_session.erl",
            "lib/ssl/src/ssl_handshake.erl"
          ],
          "programRoutines": [
            {
              "name": "ssl_gen_statem:handle_sni_extension/2"
            },
            {
              "name": "ssl_gen_statem:handle_sni_hostname/2"
            },
            {
              "name": "ssl_gen_statem:update_ssl_options_from_sni/2"
            },
            {
              "name": "ssl_gen_statem:fallback_options/2"
            },
            {
              "name": "ssl_config:update_options/3"
            },
            {
              "name": "ssl_config:opt_reuse_sessions/3"
            },
            {
              "name": "ssl_session:server_select_session/5"
            },
            {
              "name": "ssl_session:is_resumable/4"
            },
            {
              "name": "ssl_session:reusable_options/2"
            },
            {
              "name": "ssl_handshake:select_session/8"
            }
          ],
          "repo": "https://github.com/erlang/otp",
          "vendor": "Erlang",
          "versions": [
            {
              "changes": [
                {
                  "at": "0c20f3683b3c81fd30b46047195be9b3d2c69d76",
                  "status": "unaffected"
                },
                {
                  "at": "4d76adbf39d547a931048544df09c3c087e56618",
                  "status": "unaffected"
                },
                {
                  "at": "10ee925d0fee8413f1170cc21bfcf123c8d22454",
                  "status": "unaffected"
                }
              ],
              "lessThan": "*",
              "status": "affected",
              "version": "4fe38c4b8b2c8024afb60990e598ff823743fd54",
              "versionType": "git"
            }
          ]
        }
      ],
      "configurations": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "\u003cp\u003eExploitation requires all of the following. One TLS listener serves at least two SNI names through \u003ccode\u003esni_fun\u003c/code\u003e or \u003ccode\u003esni_hosts\u003c/code\u003e. The names use the same server certificate but select different client CAs with \u003ccode\u003everify_peer\u003c/code\u003e. TLS 1.2 or earlier is enabled. No SNI option set sets \u003ccode\u003ereuse_sessions\u003c/code\u003e to false while the base listener\u0027s effective value is true, which is the default when the base listener uses \u003ccode\u003everify_none\u003c/code\u003e. The attacker holds a client certificate that the lower-trust name accepts.\u003c/p\u003e"
            },
            {
              "base64": false,
              "type": "text/markdown",
              "value": "Exploitation requires all of the following. One TLS listener serves at least two SNI names through `sni_fun` or `sni_hosts`. The names use the same server certificate but select different client CAs with `verify_peer`. TLS 1.2 or earlier is enabled. No SNI option set sets `reuse_sessions` to false while the base listener\u0027s effective value is true, which is the default when the base listener uses `verify_none`. The attacker holds a client certificate that the lower-trust name accepts."
            }
          ],
          "value": "Exploitation requires all of the following. One TLS listener serves at least two SNI names through sni_fun or sni_hosts. The names use the same server certificate but select different client CAs with verify_peer. TLS 1.2 or earlier is enabled. No SNI option set sets reuse_sessions to false while the base listener\u0027s effective value is true, which is the default when the base listener uses verify_none. The attacker holds a client certificate that the lower-trust name accepts."
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:a:erlang:erlang\\/otp:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "27.3.4.19",
                  "versionStartIncluding": "18.0",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:a:erlang:erlang\\/otp:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "28.5.0.8",
                  "versionStartIncluding": "28.0",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:a:erlang:erlang\\/otp:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "29.1.2",
                  "versionStartIncluding": "29.0",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ],
          "operator": "AND"
        }
      ],
      "credits": [
        {
          "lang": "en",
          "type": "finder",
          "value": "Yonghwa Lee / Xint by Theori"
        },
        {
          "lang": "en",
          "type": "reporter",
          "value": "Yonghwa Lee / Xint by Theori"
        },
        {
          "lang": "en",
          "type": "remediation developer",
          "value": "Ingela Anderton Andin"
        }
      ],
      "dateAssigned": "2026-10-08T15:40:48.000Z",
      "descriptions": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "\u003cp\u003eImproper Certificate Validation vulnerability in the ssl application in Erlang/OTP allows a client that holds a certificate trusted by one SNI virtual host to authenticate to a second SNI virtual host on the same listener by resuming its TLS 1.2 session there.\u003c/p\u003e\n\u003cp\u003eA server that serves several SNI names from one listen socket through \u003ccode\u003esni_fun\u003c/code\u003e or \u003ccode\u003esni_hosts\u003c/code\u003e keeps one pre-TLS 1.3 session cache per listener and does not bind a cached session to the SNI name or client trust policy that established it. When an SNI option set switches to \u003ccode\u003everify_peer\u003c/code\u003e without naming \u003ccode\u003ereuse_sessions\u003c/code\u003e, \u003ccode\u003essl_config:update_options/3\u003c/code\u003e inherits the base listener\u0027s \u003ccode\u003ereuse_sessions\u003c/code\u003e value of true, so the default that disables reuse for client-authenticating servers does not apply. On an abbreviated handshake \u003ccode\u003essl_session:is_resumable/4\u003c/code\u003e checks only that the cached session uses one of the current server certificates and carries some peer certificate, and never revalidates that certificate against the CA selected for the requested name. The names must share a server certificate, which is common with wildcard or multi-SAN certificates. TLS 1.3 does not use this cache and is not affected.\u003c/p\u003e\n\u003cp\u003eThis issue affects OTP from OTP\u0026nbsp;18.0 before OTP\u0026nbsp;27.3.4.19, OTP\u0026nbsp;28.5.0.8, and OTP\u0026nbsp;29.1.2, corresponding to ssl from 7.0 before 11.2.12.14, 11.6.0.7, and 11.7.8.\u003c/p\u003e"
            },
            {
              "base64": false,
              "type": "text/markdown",
              "value": "Improper Certificate Validation vulnerability in the ssl application in Erlang/OTP allows a client that holds a certificate trusted by one SNI virtual host to authenticate to a second SNI virtual host on the same listener by resuming its TLS 1.2 session there.\n\nA server that serves several SNI names from one listen socket through `sni_fun` or `sni_hosts` keeps one pre-TLS 1.3 session cache per listener and does not bind a cached session to the SNI name or client trust policy that established it. When an SNI option set switches to `verify_peer` without naming `reuse_sessions`, `ssl_config:update_options/3` inherits the base listener\u0027s `reuse_sessions` value of true, so the default that disables reuse for client-authenticating servers does not apply. On an abbreviated handshake `ssl_session:is_resumable/4` checks only that the cached session uses one of the current server certificates and carries some peer certificate, and never revalidates that certificate against the CA selected for the requested name. The names must share a server certificate, which is common with wildcard or multi-SAN certificates. TLS 1.3 does not use this cache and is not affected.\n\nThis issue affects OTP from OTP\u00a018.0 before OTP\u00a027.3.4.19, OTP\u00a028.5.0.8, and OTP\u00a029.1.2, corresponding to ssl from 7.0 before 11.2.12.14, 11.6.0.7, and 11.7.8."
            }
          ],
          "value": "Improper Certificate Validation vulnerability in the ssl application in Erlang/OTP allows a client that holds a certificate trusted by one SNI virtual host to authenticate to a second SNI virtual host on the same listener by resuming its TLS 1.2 session there.\n\nA server that serves several SNI names from one listen socket through sni_fun or sni_hosts keeps one pre-TLS 1.3 session cache per listener and does not bind a cached session to the SNI name or client trust policy that established it. When an SNI option set switches to verify_peer without naming reuse_sessions, ssl_config:update_options/3 inherits the base listener\u0027s reuse_sessions value of true, so the default that disables reuse for client-authenticating servers does not apply. On an abbreviated handshake ssl_session:is_resumable/4 checks only that the cached session uses one of the current server certificates and carries some peer certificate, and never revalidates that certificate against the CA selected for the requested name. The names must share a server certificate, which is common with wildcard or multi-SAN certificates. TLS 1.3 does not use this cache and is not affected.\n\nThis issue affects OTP from OTP\u00a018.0 before OTP\u00a027.3.4.19, OTP\u00a028.5.0.8, and OTP\u00a029.1.2, corresponding to ssl from 7.0 before 11.2.12.14, 11.6.0.7, and 11.7.8."
        }
      ],
      "impacts": [
        {
          "capecId": "CAPEC-114",
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eA client holding a certificate issued by the lower-trust SNI name\u0027s CA connects to the higher-trust name as a fully authenticated mTLS peer and obtains whatever that service grants on a successful client-certificate handshake. Multi-tenant or partner-facing listeners that separate trust domains by SNI name are affected.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "A client holding a certificate issued by the lower-trust SNI name\u0027s CA connects to the higher-trust name as a fully authenticated mTLS peer and obtains whatever that service grants on a successful client-certificate handshake. Multi-tenant or partner-facing listeners that separate trust domains by SNI name are affected."
                }
              ],
              "value": "A client holding a certificate issued by the lower-trust SNI name\u0027s CA connects to the higher-trust name as a fully authenticated mTLS peer and obtains whatever that service grants on a successful client-certificate handshake. Multi-tenant or partner-facing listeners that separate trust domains by SNI name are affected."
            }
          ]
        }
      ],
      "metrics": [
        {
          "cvssV4_0": {
            "Automatable": "NOT_DEFINED",
            "Recovery": "NOT_DEFINED",
            "Safety": "NOT_DEFINED",
            "attackComplexity": "LOW",
            "attackRequirements": "PRESENT",
            "attackVector": "NETWORK",
            "baseScore": 6.3,
            "baseSeverity": "MEDIUM",
            "privilegesRequired": "NONE",
            "providerUrgency": "NOT_DEFINED",
            "subAvailabilityImpact": "NONE",
            "subConfidentialityImpact": "NONE",
            "subIntegrityImpact": "NONE",
            "userInteraction": "NONE",
            "valueDensity": "NOT_DEFINED",
            "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N",
            "version": "4.0",
            "vulnAvailabilityImpact": "NONE",
            "vulnConfidentialityImpact": "LOW",
            "vulnIntegrityImpact": "LOW",
            "vulnerabilityResponseEffort": "NOT_DEFINED"
          },
          "format": "CVSS",
          "scenarios": [
            {
              "lang": "en",
              "value": "GENERAL"
            }
          ]
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-295",
              "description": "CWE-295 Improper Certificate Validation",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-14T16:55:51.495Z",
        "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "shortName": "EEF"
      },
      "references": [
        {
          "name": "GitHub Advisory",
          "tags": [
            "related",
            "vendor-advisory"
          ],
          "url": "https://github.com/erlang/otp/security/advisories/GHSA-2g23-cgjh-34gq"
        },
        {
          "name": "EEF CNA record for CVE-2026-105236",
          "tags": [
            "related"
          ],
          "url": "https://cna.erlef.org/cves/CVE-2026-105236.html"
        },
        {
          "name": "OSV record EEF-CVE-2026-105236",
          "tags": [
            "related"
          ],
          "url": "https://osv.dev/vulnerability/EEF-CVE-2026-105236"
        },
        {
          "name": "Erlang/OTP version ordering",
          "tags": [
            "x_version-scheme"
          ],
          "url": "https://www.erlang.org/doc/system/versions.html#order-of-versions"
        },
        {
          "name": "Introducing commit 4fe38c4 in erlang/otp",
          "tags": [
            "related"
          ],
          "url": "https://github.com/erlang/otp/commit/4fe38c4b8b2c8024afb60990e598ff823743fd54"
        },
        {
          "name": "Fix commit 0c20f36 in erlang/otp",
          "tags": [
            "patch"
          ],
          "url": "https://github.com/erlang/otp/commit/0c20f3683b3c81fd30b46047195be9b3d2c69d76"
        },
        {
          "name": "Fix commit 4d76adb in erlang/otp",
          "tags": [
            "patch"
          ],
          "url": "https://github.com/erlang/otp/commit/4d76adbf39d547a931048544df09c3c087e56618"
        },
        {
          "name": "Fix commit 10ee925 in erlang/otp",
          "tags": [
            "patch"
          ],
          "url": "https://github.com/erlang/otp/commit/10ee925d0fee8413f1170cc21bfcf123c8d22454"
        }
      ],
      "source": {
        "discovery": "EXTERNAL"
      },
      "title": "TLS 1.2 session resumption in ssl crosses SNI virtual-host client-certificate trust boundaries",
      "workarounds": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "\u003cul\u003e\n\u003cli\u003eSet \u003ccode\u003e{reuse_sessions, false}\u003c/code\u003e in each SNI service\u0027s option set, or in the base listener options. The reporter\u0027s proof of concept confirmed that this blocks the cross-name resumption.\u003c/li\u003e\n\u003cli\u003eServe distinct SNI trust domains on separate listen sockets, which gives each its own session cache.\u003c/li\u003e\n\u003cli\u003eRestrict the listener to TLS 1.3 with \u003ccode\u003e{versions, [\u0027tlsv1.3\u0027]}\u003c/code\u003e. TLS 1.3 does not use the session-ID cache.\u003c/li\u003e\n\u003c/ul\u003e"
            },
            {
              "base64": false,
              "type": "text/markdown",
              "value": "- Set `{reuse_sessions, false}` in each SNI service\u0027s option set, or in the base listener options. The reporter\u0027s proof of concept confirmed that this blocks the cross-name resumption.\n- Serve distinct SNI trust domains on separate listen sockets, which gives each its own session cache.\n- Restrict the listener to TLS 1.3 with `{versions, [\u0027tlsv1.3\u0027]}`. TLS 1.3 does not use the session-ID cache."
            }
          ],
          "value": "* Set {reuse_sessions, false} in each SNI service\u0027s option set, or in the base listener options. The reporter\u0027s proof of concept confirmed that this blocks the cross-name resumption.\n* Serve distinct SNI trust domains on separate listen sockets, which gives each its own session cache.\n* Restrict the listener to TLS 1.3 with {versions, [\u0027tlsv1.3\u0027]}. TLS 1.3 does not use the session-ID cache."
        }
      ],
      "x_proofOfConcept": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "\u003col\u003e\n\u003cli\u003eCreate one server certificate with subject alternative names \u003ccode\u003elow.test\u003c/code\u003e and \u003ccode\u003ehigh.test\u003c/code\u003e, two self-signed client CAs (\u003ccode\u003elow-ca\u003c/code\u003e, \u003ccode\u003ehigh-ca\u003c/code\u003e), and one client certificate signed by \u003ccode\u003elow-ca\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eStart an \u003ccode\u003essl:listen/2\u003c/code\u003e server on TLS 1.2 with \u003ccode\u003e{verify, verify_none}\u003c/code\u003e and an \u003ccode\u003esni_fun\u003c/code\u003e that returns \u003ccode\u003e{verify, verify_peer}\u003c/code\u003e, \u003ccode\u003e{fail_if_no_peer_cert, true}\u003c/code\u003e and the \u003ccode\u003elow-ca\u003c/code\u003e or \u003ccode\u003ehigh-ca\u003c/code\u003e \u003ccode\u003ecacertfile\u003c/code\u003e for the respective name. Do not set \u003ccode\u003ereuse_sessions\u003c/code\u003e anywhere.\u003c/li\u003e\n\u003cli\u003eConnect with \u003ccode\u003eopenssl s_client -servername high.test -tls1_2 -no_ticket\u003c/code\u003e using the low client certificate. The server rejects the handshake with \u003ccode\u003eunknown_ca\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eConnect with \u003ccode\u003e-servername low.test\u003c/code\u003e and the same certificate, saving the session with \u003ccode\u003e-sess_out\u003c/code\u003e. The handshake succeeds.\u003c/li\u003e\n\u003cli\u003eConnect with \u003ccode\u003e-servername high.test\u003c/code\u003e and \u003ccode\u003e-sess_in\u003c/code\u003e pointing at the saved session. The server resumes the session, \u003ccode\u003essl:connection_information/2\u003c/code\u003e reports \u003ccode\u003esession_resumption\u003c/code\u003e true for \u003ccode\u003ehigh.test\u003c/code\u003e, and the application behind the protected name serves the request to a client whose certificate \u003ccode\u003ehigh-ca\u003c/code\u003e never issued.\u003c/li\u003e\n\u003c/ol\u003e"
            },
            {
              "base64": false,
              "type": "text/markdown",
              "value": "1. Create one server certificate with subject alternative names `low.test` and `high.test`, two self-signed client CAs (`low-ca`, `high-ca`), and one client certificate signed by `low-ca`.\n2. Start an `ssl:listen/2` server on TLS 1.2 with `{verify, verify_none}` and an `sni_fun` that returns `{verify, verify_peer}`, `{fail_if_no_peer_cert, true}` and the `low-ca` or `high-ca` `cacertfile` for the respective name. Do not set `reuse_sessions` anywhere.\n3. Connect with `openssl s_client -servername high.test -tls1_2 -no_ticket` using the low client certificate. The server rejects the handshake with `unknown_ca`.\n4. Connect with `-servername low.test` and the same certificate, saving the session with `-sess_out`. The handshake succeeds.\n5. Connect with `-servername high.test` and `-sess_in` pointing at the saved session. The server resumes the session, `ssl:connection_information/2` reports `session_resumption` true for `high.test`, and the application behind the protected name serves the request to a client whose certificate `high-ca` never issued."
            }
          ],
          "value": "* Create one server certificate with subject alternative names low.test and high.test, two self-signed client CAs (low-ca, high-ca), and one client certificate signed by low-ca.\n* Start an ssl:listen/2 server on TLS 1.2 with {verify, verify_none} and an sni_fun that returns {verify, verify_peer}, {fail_if_no_peer_cert, true} and the low-ca or high-ca cacertfile for the respective name. Do not set reuse_sessions anywhere.\n* Connect with openssl s_client -servername high.test -tls1_2 -no_ticket using the low client certificate. The server rejects the handshake with unknown_ca.\n* Connect with -servername low.test and the same certificate, saving the session with -sess_out. The handshake succeeds.\n* Connect with -servername high.test and -sess_in pointing at the saved session. The server resumes the session, ssl:connection_information/2 reports session_resumption true for high.test, and the application behind the protected name serves the request to a client whose certificate high-ca never issued."
        }
      ],
      "x_technicalAnalysis": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "\u003cp\u003e\u003cstrong\u003e1. One session cache per listener.\u003c/strong\u003e \u003ccode\u003etls_socket:listen/3\u003c/code\u003e starts one pre-TLS 1.3 session-ID tracker per listen socket via \u003ccode\u003esession_id_tracker/2\u003c/code\u003e. Every SNI virtual host served from that socket shares it, and the cached \u003ccode\u003e#session{}\u003c/code\u003e record stores the peer and server certificates but no SNI name and no client trust policy.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e2. The SNI option set inherits session reuse.\u003c/strong\u003e When the ClientHello carries a server name, \u003ccode\u003essl_gen_statem:handle_sni_extension/2\u003c/code\u003e and \u003ccode\u003ehandle_sni_hostname/2\u003c/code\u003e call \u003ccode\u003eupdate_ssl_options_from_sni/2\u003c/code\u003e, which passes the base listener options as fallback into \u003ccode\u003essl_config:update_options/3\u003c/code\u003e. The base listener\u0027s \u003ccode\u003everify_none\u003c/code\u003e has already produced \u003ccode\u003ereuse_sessions = true\u003c/code\u003e. \u003ccode\u003essl_config:opt_reuse_sessions/3\u003c/code\u003e computes a \u003ccode\u003efalse\u003c/code\u003e default for \u003ccode\u003everify_peer\u003c/code\u003e, but \u003ccode\u003eget_opt_bool/4\u003c/code\u003e finds the inherited value and keeps it when the SNI option list does not mention \u003ccode\u003ereuse_sessions\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e3. Resumption does not revalidate the peer certificate.\u003c/strong\u003e On an abbreviated handshake \u003ccode\u003essl_handshake:select_session/8\u003c/code\u003e calls \u003ccode\u003essl_session:server_select_session/5\u003c/code\u003e, which accepts the cached session when \u003ccode\u003essl_session:is_resumable/4\u003c/code\u003e finds that it is marked resumable, that \u003ccode\u003eis_owncert/2\u003c/code\u003e matches one of the current server certificates, that \u003ccode\u003ereusable_options/2\u003c/code\u003e sees any cached peer certificate when \u003ccode\u003efail_if_no_peer_cert\u003c/code\u003e is set, and that the \u003ccode\u003ereuse_session\u003c/code\u003e fun agrees. Nothing compares the ClientHello server name with the name that created the session, and the cached peer certificate is not validated against the CA selected for the new name.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e4. Result.\u003c/strong\u003e A client whose certificate chains to the lower-trust name\u0027s CA completes a full handshake there, then presents the same session ID with the higher-trust server name. The server resumes the session, reports \u003ccode\u003esession_resumption\u003c/code\u003e as true and the low-trust peer certificate through \u003ccode\u003essl:peercert/1\u003c/code\u003e, and the application behind the protected name sees an authenticated mTLS peer. \u003ccode\u003eis_owncert/2\u003c/code\u003e is why both names must share a server certificate.\u003c/p\u003e"
            },
            {
              "base64": false,
              "type": "text/markdown",
              "value": "**1. One session cache per listener.** `tls_socket:listen/3` starts one pre-TLS 1.3 session-ID tracker per listen socket via `session_id_tracker/2`. Every SNI virtual host served from that socket shares it, and the cached `#session{}` record stores the peer and server certificates but no SNI name and no client trust policy.\n\n**2. The SNI option set inherits session reuse.** When the ClientHello carries a server name, `ssl_gen_statem:handle_sni_extension/2` and `handle_sni_hostname/2` call `update_ssl_options_from_sni/2`, which passes the base listener options as fallback into `ssl_config:update_options/3`. The base listener\u0027s `verify_none` has already produced `reuse_sessions = true`. `ssl_config:opt_reuse_sessions/3` computes a `false` default for `verify_peer`, but `get_opt_bool/4` finds the inherited value and keeps it when the SNI option list does not mention `reuse_sessions`.\n\n**3. Resumption does not revalidate the peer certificate.** On an abbreviated handshake `ssl_handshake:select_session/8` calls `ssl_session:server_select_session/5`, which accepts the cached session when `ssl_session:is_resumable/4` finds that it is marked resumable, that `is_owncert/2` matches one of the current server certificates, that `reusable_options/2` sees any cached peer certificate when `fail_if_no_peer_cert` is set, and that the `reuse_session` fun agrees. Nothing compares the ClientHello server name with the name that created the session, and the cached peer certificate is not validated against the CA selected for the new name.\n\n**4. Result.** A client whose certificate chains to the lower-trust name\u0027s CA completes a full handshake there, then presents the same session ID with the higher-trust server name. The server resumes the session, reports `session_resumption` as true and the low-trust peer certificate through `ssl:peercert/1`, and the application behind the protected name sees an authenticated mTLS peer. `is_owncert/2` is why both names must share a server certificate."
            }
          ],
          "value": "1. One session cache per listener. tls_socket:listen/3 starts one pre-TLS 1.3 session-ID tracker per listen socket via session_id_tracker/2. Every SNI virtual host served from that socket shares it, and the cached #session{} record stores the peer and server certificates but no SNI name and no client trust policy.\n\n2. The SNI option set inherits session reuse. When the ClientHello carries a server name, ssl_gen_statem:handle_sni_extension/2 and handle_sni_hostname/2 call update_ssl_options_from_sni/2, which passes the base listener options as fallback into ssl_config:update_options/3. The base listener\u0027s verify_none has already produced reuse_sessions = true. ssl_config:opt_reuse_sessions/3 computes a false default for verify_peer, but get_opt_bool/4 finds the inherited value and keeps it when the SNI option list does not mention reuse_sessions.\n\n3. Resumption does not revalidate the peer certificate. On an abbreviated handshake ssl_handshake:select_session/8 calls ssl_session:server_select_session/5, which accepts the cached session when ssl_session:is_resumable/4 finds that it is marked resumable, that is_owncert/2 matches one of the current server certificates, that reusable_options/2 sees any cached peer certificate when fail_if_no_peer_cert is set, and that the reuse_session fun agrees. Nothing compares the ClientHello server name with the name that created the session, and the cached peer certificate is not validated against the CA selected for the new name.\n\n4. Result. A client whose certificate chains to the lower-trust name\u0027s CA completes a full handshake there, then presents the same session ID with the higher-trust server name. The server resumes the session, reports session_resumption as true and the low-trust peer certificate through ssl:peercert/1, and the application behind the protected name sees an authenticated mTLS peer. is_owncert/2 is why both names must share a server certificate."
        }
      ]
    }
  },
  "cveMetadata": {
    "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
    "assignerShortName": "EEF",
    "cveId": "CVE-2026-105236",
    "datePublished": "2026-10-14T16:55:51.495Z",
    "dateReserved": "2026-10-08T14:45:01.411Z",
    "dateUpdated": "2026-10-14T16:55:51.495Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}

CVE-2026-105223 (GCVE-0-2026-105223)

Vulnerability from cvelistv5 – Published: 2026-10-05 00:44 – Updated: 2026-10-05 14:11
VLAI
Title
maclof kubernetes-client 0.17.0 before 0.32.0 Disabled TLS Certificate Verification
Summary
maclof kubernetes-client 0.17.0 before 0.32.0 disables TLS certificate verification in parseKubeconfig() and parseKubeconfigFile() when a kubeconfig lacks certificate-authority-data, ignoring insecure-skip-tls-verify. On-path attackers can impersonate the Kubernetes API server to capture Bearer tokens or Basic credentials and tamper with WebSocket or REST API traffic.
SSVC
Exploitation: none Automatable: no Technical Impact: total
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-10-05 14:11 UTC
CWE
  • CWE-295 - Improper Certificate Validation
Assigner
VulnCheck CNA under the mitre root
CNA scorecard B 84/100 over 6106 records in the last 180 days details
Impacted products
Vendor Product Version
maclof kubernetes-client Affected: 0.17.0 , < 0.32.0 (semver)
Create a notification for this product.
Date Public
2026-06-18 00:00
Credits
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-105223",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "total"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-10-05T14:11:24.748045Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-10-05T14:11:33.012Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "packageURL": "pkg:composer/maclof/kubernetes-client",
          "product": "kubernetes-client",
          "vendor": "maclof",
          "versions": [
            {
              "lessThan": "0.32.0",
              "status": "affected",
              "version": "0.17.0",
              "versionType": "semver"
            }
          ]
        }
      ],
      "credits": [
        {
          "lang": "en",
          "type": "finder",
          "value": "Siyang Wu"
        }
      ],
      "datePublic": "2026-06-18T00:00:00.000Z",
      "descriptions": [
        {
          "lang": "en",
          "value": "maclof kubernetes-client 0.17.0 before 0.32.0 disables TLS certificate verification in parseKubeconfig() and parseKubeconfigFile() when a kubeconfig lacks certificate-authority-data, ignoring insecure-skip-tls-verify. On-path attackers can impersonate the Kubernetes API server to capture Bearer tokens or Basic credentials and tamper with WebSocket or REST API traffic."
        }
      ],
      "metrics": [
        {
          "cvssV4_0": {
            "attackComplexity": "HIGH",
            "attackRequirements": "PRESENT",
            "attackVector": "NETWORK",
            "baseScore": 9.1,
            "baseSeverity": "CRITICAL",
            "privilegesRequired": "NONE",
            "subAvailabilityImpact": "NONE",
            "subConfidentialityImpact": "NONE",
            "subIntegrityImpact": "NONE",
            "userInteraction": "NONE",
            "vectorString": "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",
            "version": "4.0",
            "vulnAvailabilityImpact": "NONE",
            "vulnConfidentialityImpact": "HIGH",
            "vulnIntegrityImpact": "HIGH"
          },
          "format": "CVSS"
        },
        {
          "cvssV3_1": {
            "attackComplexity": "HIGH",
            "attackVector": "NETWORK",
            "availabilityImpact": "NONE",
            "baseScore": 7.4,
            "baseSeverity": "HIGH",
            "confidentialityImpact": "HIGH",
            "integrityImpact": "HIGH",
            "privilegesRequired": "NONE",
            "scope": "UNCHANGED",
            "userInteraction": "NONE",
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N",
            "version": "3.1"
          },
          "format": "CVSS"
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-295",
              "description": "Improper Certificate Validation",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-05T00:47:08.567Z",
        "orgId": "83251b91-4cc7-4094-a5c7-464a1b83ea10",
        "shortName": "VulnCheck"
      },
      "references": [
        {
          "name": "GitHub Issue #135",
          "tags": [
            "issue-tracking"
          ],
          "url": "https://github.com/maclof/kubernetes-client/issues/135"
        },
        {
          "tags": [
            "product"
          ],
          "url": "https://github.com/maclof/kubernetes-client"
        },
        {
          "tags": [
            "patch"
          ],
          "url": "https://github.com/maclof/kubernetes-client/commit/924c0b935fa538ed6b4b0948127609e99d0e6f34"
        },
        {
          "name": "kubernetes-client 0.32.0 Release Notes",
          "tags": [
            "release-notes"
          ],
          "url": "https://github.com/maclof/kubernetes-client/releases/tag/0.32.0"
        },
        {
          "tags": [
            "technical-description"
          ],
          "url": "https://github.com/maclof/kubernetes-client/blob/0.31.0/src/Client.php#L309-L312"
        },
        {
          "name": "VulnCheck Advisory: maclof kubernetes-client 0.17.0 before 0.32.0 Disabled TLS Certificate Verification",
          "tags": [
            "third-party-advisory"
          ],
          "url": "https://www.vulncheck.com/advisories/maclof-kubernetes-client-0.17.0-before-0.32.0-disabled-tls-certificate-verification"
        }
      ],
      "title": "maclof kubernetes-client 0.17.0 before 0.32.0 Disabled TLS Certificate Verification",
      "x_generator": {
        "engine": "vulncheck-endgame"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "83251b91-4cc7-4094-a5c7-464a1b83ea10",
    "assignerShortName": "VulnCheck",
    "cveId": "CVE-2026-105223",
    "datePublished": "2026-10-05T00:44:17.374Z",
    "dateReserved": "2026-10-04T13:04:00.479Z",
    "dateUpdated": "2026-10-05T14:11:33.012Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}

Mitigation
Architecture and Design Implementation

Certificates should be carefully managed and checked to assure that data are encrypted with the intended owner's public key.

Mitigation
Implementation

If certificate pinning is being used, ensure that all relevant properties of the certificate are fully validated before the certificate is pinned, including the hostname.

CAPEC-459: Creating a Rogue Certification Authority Certificate

An adversary exploits a weakness resulting from using a hashing algorithm with weak collision resistance to generate certificate signing requests (CSR) that contain collision blocks in their "to be signed" parts. The adversary submits one CSR to be signed by a trusted certificate authority then uses the signed blob to make a second certificate appear signed by said certificate authority. Due to the hash collision, both certificates, though different, hash to the same value and so the signed blob works just as well in the second certificate. The net effect is that the adversary's second X.509 certificate, which the Certification Authority has never seen, is now signed and validated by that Certification Authority.

CAPEC-475: Signature Spoofing by Improper Validation

An adversary exploits a cryptographic weakness in the signature verification algorithm implementation to generate a valid signature without knowing the key.