# CVE-2026-32144: OCSP designated-responder authorization bypass via missing signature verification

Status: published. Published: 2026-04-07. Updated: 2026-11-11.

Improper Certificate Validation vulnerability in Erlang OTP public_key (pubkey_ocsp module) allows OCSP designated-responder authorization bypass via missing signature verification.

The OCSP response validation in public_key:pkix_ocsp_validate/5 does not verify that a CA-designated responder certificate was cryptographically signed by the issuing CA. Instead, it only checks that the responder certificate's issuer name matches the CA's subject name and that the certificate has the OCSPSigning extended key usage. An attacker who can intercept or control OCSP responses can create a self-signed certificate with a matching issuer name and the OCSPSigning EKU, and use it to forge OCSP responses that mark revoked certificates as valid.

This affects SSL/TLS clients using OCSP stapling, which may accept connections to servers with revoked certificates, potentially transmitting sensitive data to compromised servers. Applications using the public_key:pkix_ocsp_validate/5 API directly are also affected, with impact depending on usage context.

This vulnerability is associated with program files lib/public_key/src/pubkey_ocsp.erl and program routines pubkey_ocsp:is_authorized_responder/3.

This issue affects OTP from OTP 27.0 before OTP 27.3.4.10 and OTP 28.4.2, corresponding to public_key from 1.16 before 1.17.1.2 and 1.20.3, and ssl from 11.2 before 11.2.12.7 and 11.5.4.

## Remediation

- workaround: For SSL users:

* Do not enable OCSP validation setting (current default is {stapling, no_staple})
* Use CRL-based revocation checking by setting the {crl_check, true} SSL option instead

For applications using public_key:pkix_ocsp_validate/5 directly:

* Pass {is_trusted_responder_fun, Fun} option with a function that validates trusted responder certificates
* Restrict OCSP responder access to trusted endpoints via network controls (only applicable if you control the OCSP infrastructure) (source: CNA: EEF)
- workaround: Mitigation for this issue is either not available or the currently available options do not meet the Red Hat Product Security criteria comprising ease of use and deployment, applicability to widespread installation base or stability. (source: ADP: redhat-SADP)
- fix: The reporting source identifies this reference as a patch. Check the advisory for affected versions and supported release branches. (source: CNA: EEF) — https://github.com/erlang/otp/commit/49033a6d93a5be0ee0dce04e1fb8b4ae7de1e0c0
- fix: The reporting source identifies this reference as a patch. Check the advisory for affected versions and supported release branches. (source: CNA: EEF) — https://github.com/erlang/otp/commit/ac7ff528be857c5d35eb29c7f24106e3a16d4891

## Affected products and versions

- Erlang / OTP (otp): ≥ 27.0; < * (affected, otp); unaffected at 27.3.4.10; unaffected at 28.4.2. Source: CNA: EEF
- Erlang / OTP (public_key): ≥ 1.16; < * (affected, otp); unaffected at 1.17.1.2; unaffected at 1.20.3. Source: CNA: EEF
- Erlang / OTP (ssl): ≥ 11.2; < * (affected, otp); unaffected at 11.2.12.7; unaffected at 11.5.4. Source: CNA: EEF
- Erlang / OTP (erlang/otp): ≥ 601a012837ea0a5c8095bf24223132824177124d; < * (affected, git); unaffected at 49033a6d93a5be0ee0dce04e1fb8b4ae7de1e0c0; unaffected at ac7ff528be857c5d35eb29c7f24106e3a16d4891. Source: CNA: EEF
- Red Hat / Red Hat OpenStack Platform 16.2 (erlang): Version range not reported. Source: ADP: redhat-SADP
- Red Hat / Red Hat OpenStack Platform 17.1 (erlang): Version range not reported. Source: ADP: redhat-SADP
- Red Hat / Red Hat OpenStack Platform 18.0 (erlang): Version range not reported. Source: ADP: redhat-SADP

## Severity and prioritization

- CVSS 4.0: 7.6 (high); CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:L/SI:L/SA:N; source: CNA: EEF

- CVSS 3.1: 7.4 (high); CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N; source: ADP: redhat-SADP

- CISA KEV: No listing in collected sources

- EPSS: 0.21% as of 2026-11-10; percentile 10.92%

- SSVC: exploitation none; automatable no; technical impact total; source ADP: CISA-ADP

- Weaknesses: CWE-295, CWE-347

## Exploit evidence

No exploit evidence in collected sources. This is not proof of no exploitation.

## References

- https://github.com/erlang/otp/security/advisories/GHSA-gxrm-pf64-99xm (CNA: EEF; vendor-advisory, related)

- https://cna.erlef.org/cves/CVE-2026-32144.html (CNA: EEF; related)

- https://osv.dev/vulnerability/EEF-CVE-2026-32144 (CNA: EEF; related)

- https://www.erlang.org/doc/system/versions.html#order-of-versions (CNA: EEF; x_version-scheme)

- https://github.com/erlang/otp/commit/601a012837ea0a5c8095bf24223132824177124d (CNA: EEF; related)

- https://github.com/erlang/otp/commit/49033a6d93a5be0ee0dce04e1fb8b4ae7de1e0c0 (CNA: EEF; patch)

- https://github.com/erlang/otp/commit/ac7ff528be857c5d35eb29c7f24106e3a16d4891 (CNA: EEF; patch)

- https://access.redhat.com/security/cve/CVE-2026-32144 (ADP: redhat-SADP; vdb-entry, x_refsource_REDHAT)

- https://bugzilla.redhat.com/show_bug.cgi?id=2455896 (ADP: redhat-SADP; issue-tracking, x_refsource_REDHAT)

- https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-32144.json (ADP: redhat-SADP; x_sadp-csaf-vex)

## Provenance

- CNA: EEF: https://www.cve.org/CVERecord?id=CVE-2026-32144; retrieved 2026-11-11; source updated 2026-11-11

- FIRST EPSS: https://api.first.org/data/v1/epss?cve=CVE-2026-32144; retrieved 2026-11-11; source updated Not reported

Revision: 2e41dd0b8f6c68656956cfc9df362876372803c238679a18c72dee1f1a16ed01

Canonical: https://y2.dev/cve/CVE-2026-32144

## Agent and API access

Public CVE pages, Markdown, and JSON are free to read without an account or API key.

- Public catalog: https://y2.dev/cve/index.json. Follow nextCursor with the same search, filters, sort, and limit (1–100). A null cursor marks the end.

- WebMCP: search_cve_disclosures, get_cve_disclosure, get_cve_page_markdown, get_y2_cve_access. Available in compatible browsers.

- Cyber API: https://api.y2.dev/api/v2/cyber/cves and https://api.y2.dev/api/v2/cyber/cves/{cveId}.

- Y2 Pro or Elite: create a workspace API key with the intel:cyber scope and send Authorization: Bearer <Y2_API_KEY>. Setup: https://y2.dev/docs/api/create-key.

- x402: Pay per request without an account or API key. Omit Authorization, read the HTTP 402 PAYMENT-REQUIRED challenge, validate its current requirements, and retry with PAYMENT-SIGNATURE through an authorized payment client. These browser tools never make payments. Guide: https://y2.dev/docs/api/x402.

- OpenAPI: https://y2.dev/api/openapi.yaml. Agent access metadata: https://y2.dev/cve/agent.json.

Collected public records only. Check source status for coverage and freshness.