October 21, 2026
Locks checked, bolts tightened
We searched 2Secret for weak spots and fixed what we found. Your Secret Key stays out of iPhone backups, AutoFill is stricter on shared domains, and the server and our releases are better protected. Update to 1.9.2.
We went through 2Secret looking for weak spots: the encryption, the sync server, the apps on every platform, the browser extension, this website and the way releases are built and signed.
The encryption itself held up. Your vault is still encrypted on your own device with your master password and your Secret Key, and the server only ever sees encrypted data. None of the publicly known vulnerabilities in the libraries 2Secret uses turned out to be exploitable in 2Secret. We did find a number of things that could be better, mostly about what a compromised server or a malicious website could try. 2Secret 1.9.2 fixes them.
On your devices
- iPhone and iPad: your Secret Key is no longer included in iCloud and computer backups, so a backup never holds it next to your encrypted vault.
- AutoFill and the browser extension: on websites where everyone gets a subdomain of their own, such as github.io, a login is only offered on its own site, never on someone else's.
- Secure connections only: the apps connect to a sync server only over https://. Plain http:// works only with a server on the same device.
- Vault keys never go back: when someone is removed from a shared vault, the vault gets a new key. Your devices now remember the keys they replaced and refuse them, so a server cannot give a removed member access to new items again.
- Clipboard: copied passwords stay out of Windows' clipboard history and cloud clipboard, and out of clipboard managers on Linux and macOS.
- Website icons: they are only fetched from public websites, also when an address is an IP address written in a short form.
On the server
- The server checks the encrypted data it stores, so one account cannot disrupt syncing for others.
- Sign-in attempts and password checks are limited per address.
- Invisible characters are removed from names, so one account cannot be made to look like another.
Releases
- Every release now comes with a signed checksum file (SHA256SUMS.sig), signed with the same key as our app updates. You can use it to check downloads that do not update themselves, such as the .deb and .rpm packages, the browser extension and the command-line tool. [How to check a download](https://github.com/joostiphone/2Secret/blob/HEAD/docs/UPDATES.md#checking-a-download).
- The tools that build our releases now get fewer rights, and signing keys are only available to the step that needs them.
- Libraries are updated, including rustls and SQLite 3.53.2 in the server.
How to update
- Desktop apps: if updates are on (*Settings → Updates*), 2Secret installs 1.9.2 by itself. Otherwise, get it from the [download page](/download).
- sync.2secret.app: nothing to do. The server updates itself.
- Your own server: update to 1.9.2. The example invite codes from the documentation (change-me…) no longer let anyone sign up, so choose your own. With the Proxmox install script, the client's address is now read from CF-Connecting-IP only behind a Cloudflare Tunnel; set --ip-header if you use another proxy.
The full list of changes is in the [changelog](https://github.com/joostiphone/2Secret/blob/HEAD/CHANGELOG.md).