mirror of
https://github.com/dani-garcia/vaultwarden.git
synced 2026-08-26 11:55:50 -05:00
[GH-ISSUE #7333] Browser extensions v2026.4.0+ fail with EncString(InvalidTypeSymm) — type 2 encrypted strings have 3 parts (data|iv|mac) instead of standard 2 #35632
Reference in New Issue
Block a user
Originally created by @jr2804 on GitHub (Jun 14, 2026).
Original GitHub issue: https://github.com/dani-garcia/vaultwarden/issues/7333
Description
Browser extensions (Chrome, Firefox, Edge) v2026.4.0+ and Android app fail to load vault entries after successful login. The web vault (v2026.4.1) works fine.
The extensions show successful authentication (user avatar visible) but the vault stays on skeleton loading placeholders indefinitely and never shows entries.
Error
From extension DevTools console:
The same error occurs on Android after clearing all app data and on browser extensions after full reinstall / clear storage.
Environment
f21a3ada, also tested on testing tagd6a3d539— same issue)Root Cause Analysis
Encryption format mismatch
Vaultwarden's
encrypt()function produces type 2 (AesCbc256_B64) encrypted strings with 3 pipe-separated parts (data|iv|mac):The Bitwarden specification states that type 2 should have 2 parts (
data|iv), while the MAC is only expected for type 0 (AesCbc256_HmacSha256_B64, format:0.data|iv|mac).Verified
profile.key): type 2 with 3 partsprofile.privateKey): type 2 with 3 partsThe Python python-vaultwarden library handles this format leniently, but the new Rust WASM SDK (introduced in Bitwarden extension v2026.4.0+) validates strictly and throws
InvalidTypeSymm.The stack trace confirms the error originates at
getStore browser-local-storage.service.ts:78— the WASM SDK crashes when trying to parse the locally stored encrypted data after a successful API sync.Why web vault works
The web vault v2026.4.1 uses the older JavaScript-based SDK which is lenient about the type 2 format. The Rust WASM SDK is only used in browser extensions and mobile apps.
Steps to Reproduce
vaultwarden/server:1.36.0)EncString(InvalidTypeSymm { enc_type: "0", parts: 1 })Expected Behavior
Browser extensions and Android app should successfully load and display vault entries after login, as the web vault does.
Possible Fix
Vaultwarden's
encrypt()function should either:0.data|iv|mac) instead of type 2 with MAC2.data|iv(without MAC)Existing Data
Labels
bug, encryption, sdk-compatibility