Tillitis TKey Client has an Error in Protocol Implementation
Date: 2026-03
Affected: go/github.com/tillitis/tkeyclient
Attack vector: other
Category: vulnerability-disclosure
Severity: Medium
CVE: CVE-2026-32953
CWE: CWE-303

## Impact Some specific (1 out of 256) User Supplied Secrets (USS) were not used, making the resulting Compound Device Identifier (CDI) the same as if no USS was provided. Affected client applications: all client apps using the [tkeyclient](https://github.com/tillitis/tkeyclient) Go module. ## Patches Upgrade to v1.3.0. **NOTE WELL**: For the affected end users upgrading an app containing `tkeyclient` to v1.3.0 means their key material will change. An end user can get their old keys by not entering any USS. Please make sure to communicate this to end users. ## Affected users The steps required to assess whether your USS is vulnerable may vary depending on the client application. The example below shows how to perform the check using `tkey-ssh-agent` and the known vulnerable USS `adl`. 1. Insert the TKey into the client 2. Run `tkey-ssh-agent -p --uss` 3. When prompted for a User Supplied Secret, enter `adl` 4. Note the public key and call it `pubkey-with-uss` 5. Remove the TKey from the client 6. Insert the TKey into the client again 7. Run `tkey-ssh-agent -p` 8. Note the public key and call it `pubkey-without-uss` Expected behavior: `pubkey-with-uss` and `pubkey-without-uss` should not be equal. Observed behavior: `pubkey-with-uss` and `pubkey-without-uss` are equal. ## Workaround We recommend everyone using `tkeyclient` to update to v1.3.0 and release new versions of the client apps using it. However, end users that are unable to upgrade to a new version of a c


Mitigations:

Architectural layers (MAESTRO):