[PR #7308] Fix invalid SSH key sync for Bitwarden 2026.5 #27488

Open
opened 2026-06-15 14:47:51 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/dani-garcia/vaultwarden/pull/7308
Author: @ix64
Created: 6/6/2026
Status: 🔄 Open

Base: mainHead: fix/ssh-key-sync-2026-5


📝 Commits (1)

  • 3c584be Fix invalid SSH key sync for Bitwarden 2026.5

📊 Changes

1 file changed (+62 additions, -10 deletions)

View changed files

📝 src/db/models/cipher.rs (+62 -10)

📄 Description

Description

Fixes sync responses for invalid SSH key cipher data on Bitwarden 2026.5 clients.

SDK-backed clients expect SSH key cipher data to include string values for keyFingerprint, privateKey, and publicKey. Returning null for invalid SSH key data can make SDK/WASM deserialization fail before the user can edit or delete the bad item.

This changes invalid SSH key handling to return encrypted placeholder values for the mandatory SSH key fields instead of null, allowing clients to continue processing the cipher.

Evidence

In bitwarden/clients, SSH key cipher type is 5:
https://github.com/bitwarden/clients/blob/8652881a5019a800381274566b9b67b77f8c6043/libs/common/src/vault/enums/cipher-type.ts#L1-L7

The client API model defines privateKey, publicKey, and keyFingerprint as string fields:
https://github.com/bitwarden/clients/blob/8652881a5019a800381274566b9b67b77f8c6043/libs/common/src/vault/models/api/ssh-key.api.ts#L5-L17

The Bitwarden SDK SSH key view also models the decrypted fields as non-optional String values, and parsing CipherSshKeyModel requires all three encrypted fields:
https://sdk-api-docs.bitwarden.com/src/bitwarden_vault/cipher/ssh_key.rs.html#35
https://sdk-api-docs.bitwarden.com/src/bitwarden_vault/cipher/ssh_key.rs.html#89


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/dani-garcia/vaultwarden/pull/7308 **Author:** [@ix64](https://github.com/ix64) **Created:** 6/6/2026 **Status:** 🔄 Open **Base:** `main` ← **Head:** `fix/ssh-key-sync-2026-5` --- ### 📝 Commits (1) - [`3c584be`](https://github.com/dani-garcia/vaultwarden/commit/3c584be7d09eaa0c15a405e08484b71468e11fa7) Fix invalid SSH key sync for Bitwarden 2026.5 ### 📊 Changes **1 file changed** (+62 additions, -10 deletions) <details> <summary>View changed files</summary> 📝 `src/db/models/cipher.rs` (+62 -10) </details> ### 📄 Description ## Description Fixes sync responses for invalid SSH key cipher data on Bitwarden 2026.5 clients. SDK-backed clients expect SSH key cipher data to include string values for `keyFingerprint`, `privateKey`, and `publicKey`. Returning `null` for invalid SSH key data can make SDK/WASM deserialization fail before the user can edit or delete the bad item. This changes invalid SSH key handling to return encrypted placeholder values for the mandatory SSH key fields instead of `null`, allowing clients to continue processing the cipher. ## Evidence In `bitwarden/clients`, SSH key cipher type is `5`: https://github.com/bitwarden/clients/blob/8652881a5019a800381274566b9b67b77f8c6043/libs/common/src/vault/enums/cipher-type.ts#L1-L7 The client API model defines `privateKey`, `publicKey`, and `keyFingerprint` as string fields: https://github.com/bitwarden/clients/blob/8652881a5019a800381274566b9b67b77f8c6043/libs/common/src/vault/models/api/ssh-key.api.ts#L5-L17 The Bitwarden SDK SSH key view also models the decrypted fields as non-optional `String` values, and parsing `CipherSshKeyModel` requires all three encrypted fields: https://sdk-api-docs.bitwarden.com/src/bitwarden_vault/cipher/ssh_key.rs.html#35 https://sdk-api-docs.bitwarden.com/src/bitwarden_vault/cipher/ssh_key.rs.html#89 --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-06-15 14:47:51 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/vaultwarden#27488