xkeys Seal encryption used fixed key for all encryption
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Security bypass
- Confidentiality · integrity · availability
- High · None · None
- Fix status
- Partial Red Hat: 1 fixed, 5 without a fix
Attack profile from CVSS 3.1 · CNA. Fix status from CNA, GitHub and Red Hat. Impact type from CWE-321.
Summary
NATS.io is a high performance open source pub-sub distributed communication technology, built for the cloud, on-premise, IoT, and edge computing. The cryptographic key handling library, nkeys, recently gained support for encryption, not just for signing/authentication. This is used in nats-server 2.10 (Sep 2023) and newer for authentication callouts. In nkeys versions 0.4.0 through 0.4.5, corresponding with NATS server versions 2.10.0 through 2.10.3, the nkeys library's `xkeys` encryption handling logic mistakenly passed an array by value into an internal function, where the function mutated that buffer to populate the encryption key to use. As a result, all encryption was actually to an all-zeros key. This affects encryption only, not signing. FIXME: FILL IN IMPACT ON NATS-SERVER AUTH CALLOUT SECURITY. nkeys Go library 0.4.6, corresponding with NATS Server 2.10.4, has a patch for this issue. No known workarounds are available. For any application handling auth callouts in Go, if using the nkeys library, update the dependency, recompile and deploy that in lockstep.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- Yes
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| backstage | nkeys | 2.10.0 to before 2.10.4; 0.4.0 to before 0.4.6 | 2.10.4, 0.4.6 | Patch available | CNA |
| — | github.com/nats-io/nkeys (Go) | 0.4.0 to before 0.4.6 | 0.4.6 | Patch available | GHSA-mr45-rx8q-wcm9 |
| — | github.com/nats-io/nats-server/v2 (Go) | 2.10.0 to before 2.10.4 | 2.10.4 | Patch available | GHSA-mr45-rx8q-wcm9 |
- nkeys Vendorbackstage Affected 2.10.0 to before 2.10.4; 0.4.0 to before 0.4.6 Fixed in 2.10.4, 0.4.6 Patch available CNA
- github.com/nats-io/nkeys (Go) Vendor— Affected 0.4.0 to before 0.4.6 Fixed in 0.4.6 Patch available GHSA-mr45-rx8q-wcm9
- github.com/nats-io/nats-server/v2 (Go) Vendor— Affected 2.10.0 to before 2.10.4 Fixed in 2.10.4 Patch available GHSA-mr45-rx8q-wcm9
Remediation
- Fix · CNA nkeys (nats-io) Fixed in 2.10.4, 0.4.6
- Fix · GHSA-mr45-rx8q-wcm9 github.com/nats-io/nkeys (Go) Fixed in 0.4.6 Advisory →
- Fix · GHSA-mr45-rx8q-wcm9 github.com/nats-io/nats-server/v2 (Go) Fixed in 2.10.4 Advisory →
Red Hat 1 advisory
- RHSA-2023:7663 Released 2023-12-06 · Red Hat rating ImportantRed Hat OpenShift distributed tracing 3.0.0 operator/operand containers
- Red Hat OpenShift distributed tracing 3.0 rhosdt/jaeger-agent-rhel8, rhosdt/jaeger-all-in-one-rhel8, rhosdt/jaeger-collector-rhel8 +8
Vendor assessments
Red Hat
Red Hat rating: Important. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| OpenShift Serverless | Affected | No fix planned: Will not fix |
| Red Hat OpenShift Container Platform 4 | Affected | No fix yet |
| Red Hat OpenShift distributed tracing 2 | Affected | No fix yet |
| Red Hat Openshift Container Storage 4 | Affected | No fix planned: Out of support scope |
| Red Hat Openshift Data Foundation 4 | Affected | No fix planned: Will not fix |
| Red Hat OpenShift distributed tracing 3.0 | Fixed | RHSA-2023:7663 |
Not affected: 7 products
- OpenShift API for Data Protection
- Red Hat Ceph Storage 5
- Red Hat OpenShift Container Platform 4
- Red Hat OpenShift GitOps
- Red Hat OpenShift distributed tracing 3.0
- Red Hat Openshift Data Foundation 4
- Red Hat Quay 3
Timeline
- 2026-10-02 Threatist record created from CVE-2023-46129
- 2026-10-03 Alias added: GHSA-mr45-rx8q-wcm9
References
Advisory 3
Other 6
- https://lists.fedoraproject.org/archives/list/[email protected]/message/ULQQONMSCQSH5Z5OWFFQHCGEZ3NL4DRJ/
- https://lists.fedoraproject.org/archives/list/[email protected]/message/R3UETKPUB3V5JS5TLZOF3SMTGT5K5APS/
- https://github.com/nats-io/nkeys/commit/58fb9d69f42ea73fffad1d14e5914dc666f3daa1
- https://github.com/nats-io/nkeys
- https://lists.fedoraproject.org/archives/list/[email protected]/message/R3UETKPUB3V5JS5TLZOF3SMTGT5K5APS
- https://lists.fedoraproject.org/archives/list/[email protected]/message/ULQQONMSCQSH5Z5OWFFQHCGEZ3NL4DRJ
More backstage Nats-server vulnerabilities
- TI-2026-22233 NATS: Pre-auth remote server crash via WebSocket frame length overflow in wsRead CVSS 3.1HIGH 7.5
- TI-2022-11116 NATS nats-server 2.2.0 through 2.7.4 allows directory traversal because of an unintended… CVSS 3.1CRITICAL 9.8
- TI-2020-16319 The JWT library in NATS nats-server before 2.1.9 has Incorrect Access Control because of… CVSS 3.1CRITICAL 9.8
- TI-2026-25637 NATS has MQTT plaintext password disclosure CVSS 3.1HIGH 8.6
- TI-2022-08320 NATS nats-server before 2.7.2 has Incorrect Access Control. CVSS 3.1HIGH 8.8
- TI-2026-41950 NATS Server: Pre-auth server crash via double INFO in leafnode handshake CVSS 3.1HIGH 7.5
Sources
- CVE-2023-46129 · CVE Program
- CVE-2023-46129 · NVD
- FIRST EPSS
- GHSA-mr45-rx8q-wcm9 · GitHub Advisory Database · CC BY 4.0
- CVE-2023-46129 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences