Public bug reported:

AI-generated bug description as I am not deeply familiar with FDE nor the Linux 
kernel. 
# TPM-backed FDE install completes but seals unusable keyslots — "incompatible 
key data role params" on every boot since install

## Summary

A fresh Ubuntu 26.04 desktop install with TPM-backed FDE (`PartitionMethod: 
use_tpmfde`) completed
successfully, but the sealed TPM keyslots have **never been openable**. 
`snap-bootstrap` fails to
recover keys from both `default` and `default-fallback` on every boot since 
installation, so the
system falls back to the recovery key every time.

Separately and from the same first boot, `devicemgr` cannot authenticate to the 
TPM lockout
hierarchy, so `TPM_CC_DictionaryAttackLockReset` fails and FDE auto-repair 
never initialises
(`auto-repair-result: "not-initialized"`).

Both faults were present within 9 minutes of the install finishing. Nothing 
degraded over time;
the installation produced a non-functional TPM FDE configuration from the start.

## System

| | |
|---|---|
| Machine | LENOVO 21KS000PMX (ThinkPad P16s Gen 3) |
| CPU | Intel Core Ultra 9 185H |
| BIOS | R2DET42W (1.27) |
| OS | Ubuntu 26.04 |
| Install method | `PartitionMethod: use_tpmfde`, Ubuntu 26.04 Minimal |
| Installed | 2026-08-25 ~20:32 CEST |
| snapd (deb) | 2.76.3+ubuntu26.04 (was 2.76+ubuntu26.04.2 when first observed) 
|
| snapd (snap) | 2.75.2 (rev 26865, latest/stable) |
| pc-kernel | 3390 (7.0.0-14.14) → refreshed to 3672 (7.0.0-28.28) |

## Symptom

Recovery key is required on every boot. TPM auto-unlock has never
worked, not once.

```
$ snap debug api /v2/system-info/storage-encrypted
{
  "result": {
    "auto-repair-result": "not-initialized",
    "status": "recovery"
  },
  ...
}
```

## Evidence 1 — keyslots unusable on every boot

Three boots exist since install. All three produce identical errors from
`snap-bootstrap`.

**Boot -2 — first boot after install, 2026-08-25 20:40:18 (8 min after
install):**

```
snap-bootstrap[589]: Error with keyslot "default": cannot recover keys from 
keyslot:
  incompatible key data role params: invalid PCR policy data:
  cannot complete authorization policy assertions:
  the PCR policy is not authorized for the current configuration
snap-bootstrap[589]: Error with keyslot "default-fallback": [identical]
```

**Boot -1 — 2026-08-25 20:47:15:** identical, `snap-bootstrap[592]`

**Boot 0 — 2026-08-26 21:37:54, after pc-kernel refresh 3390 → 3672:** 
identical,
`snap-bootstrap[419]`. The kernel refresh did **not** change the outcome.

## Evidence 2 — lockout hierarchy auth fails, blocking auto-repair

First occurrence, same first boot, 2026-08-25 **20:41:47** (9 min after
install):

```
snapd[2771]: fdestate.go:222: cannot obtain primary key digest for data device
  /dev/disk/by-uuid/<uuid>: kernel key not found
snapd[2771]: stateengine.go:161: state ensure error: devicemgr:
  TPM returned an error for session 1 whilst executing command
  TPM_CC_DictionaryAttackLockReset: TPM_RC_AUTH_FAIL + TPM_RC_S + TPM_RC_1
  (the authorization HMAC check failed and DA counter incremented)
```

Recurring since, alternating between `TPM_RC_AUTH_FAIL` (when lockoutAuth is 
available) and
`TPM_RC_LOCKOUT` (during the 24h `lockoutRecovery` window armed by each 
failure).

snapd's stored lockout auth is present and well-formed:

```
$ sudo file /var/lib/snapd/save/device/fde/tpm-lockout-auth
/var/lib/snapd/save/device/fde/tpm-lockout-auth: JSON text data     # 658 
bytes, keys: auth-value, auth-policy
```

`ubuntu-save` is mounted and readable, so this is not an access problem.

## Evidence 3 — TPM state is snapd-provisioned and otherwise healthy

```
TPM2_PT_PERMANENT:
  ownerAuthSet:              0
  endorsementAuthSet:        0
  lockoutAuthSet:            1
  disableClear:              1
  inLockout:                 0
TPM2_PT_LOCKOUT_COUNTER:   0x0
TPM2_PT_MAX_AUTH_FAIL:     0x20
TPM2_PT_LOCKOUT_INTERVAL:  0x1C20     # 2h
TPM2_PT_LOCKOUT_RECOVERY:  0x15180    # 24h
```

Persistent handles: `0x81000001`, `0x81010001`, `0x81800000`,
`0x81800001`

`ownerAuthSet: 0` + `endorsementAuthSet: 0` + `lockoutAuthSet: 1` + 
`disableClear: 1` is the
expected signature of secboot provisioning — no foreign TPM owner. Note 
`disableClear: 1` means
the TPM cannot be cleared from the OS, only from firmware.

## Evidence 4 — keyslot layout

```
system-data (ubuntu-data):
  default          type=platform  platform-name=tpm2  auth-mode=none  
roles=[run+recover]
  default-fallback type=platform  platform-name=tpm2  auth-mode=none  
roles=[recover]
  default-recovery type=recovery
system-save (ubuntu-save):
  default          type=platform  platform-name=plainkey  auth-mode=none
  default-fallback type=platform  platform-name=tpm2      auth-mode=none  
roles=[recover]
  default-recovery type=recovery
```

Structurally complete — the keyslots exist and are enrolled. They simply
cannot be opened.

## Ruled out

- **PCR drift / firmware update** — `fwupdmgr security` reports HSI:3 with
  `TPM PCR0 reconstruction: Valid`, `TPM empty PCRs: Valid`, `UEFI secure boot: 
Enabled`,
  `Intel BootGuard: Enabled`. `fwupdmgr get-history` reports no history; 
`get-updates` reports
  System Firmware, ME, UEFI CA and UEFI dbx all already at latest. The failure 
also predates any
  possible update — it is present on the first boot.
- **Foreign TPM ownership (e.g. prior Windows/BitLocker)** — `ownerAuthSet: 0`,
  `endorsementAuthSet: 0`.
- **`ubuntu-save` inaccessible** — mounted at `/var/lib/snapd/save`, contents 
readable.
- **Missing lockout auth** — file present, valid JSON.
- **Missing kernel modules (`vmd`)** — `vmd.ko.zst` ships in the kernel snap; 
NVMe is directly
  reachable; 6902 modules present.
- **Stale kernel** — pc-kernel refreshed 3390 → 3672, error unchanged.

## Impact

- Recovery key required on every boot, permanently.
- FDE auto-repair cannot initialise, so the 2.71 "recovery key auto-repair" 
path never runs.
- No manual remedy available: the documented `/v2/system-volumes` actions cover 
recovery key
  replacement, keyslot enumeration and passphrase/PIN changes, but none re-seal 
or re-enroll a
  TPM platform keyslot.
- `disableClear: 1` means the TPM can only be cleared from firmware, and per 
LP#2045417 recovery
  after a TPM clear is not currently supported.

## Possibly related

- LP #2045417 — Refresh of pc-kernel snap fails if TPM is cleared
- LP #2052601 — TPM backed FDE does not re-enroll the key upon recovery
- LP #2063963 — Desktop TPM FDE install completes, immediate recovery key prompt

## Note on versions

The snapd deb (`2.76.3+ubuntu26.04`) and the snapd snap (`2.75.2`) differ, and 
`snap-bootstrap`
ships inside the pc-kernel snap's initramfs. Whether the `incompatible key data 
role params`
error reflects a version skew between the component that sealed the keys and 
the one attempting
to unseal them has not been confirmed and is offered only as a possible 
direction.

ProblemType: Bug
DistroRelease: Ubuntu 26.04
Package: snapd 2.76.3+ubuntu26.04
ProcVersionSignature: Ubuntu 7.0.0-28.28-generic 7.0.12
Uname: Linux 7.0.0-28-generic x86_64
ApportVersion: 2.34.1-0ubuntu0.1
Architecture: amd64
CasperMD5CheckResult: pass
CurrentDesktop: ubuntu:GNOME
Date: Wed Aug 26 22:24:43 2026
ProcEnviron:
 LANG=en_US.UTF-8
 PATH=(custom, no user)
 SHELL=/usr/bin/zsh
 TERM=xterm-256color
 XDG_RUNTIME_DIR=<set>
SnapChanges: no changes found
SourcePackage: snapd
UpgradeStatus: No upgrade log present (probably fresh install)

** Affects: snapd (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: amd64 apport-bug resolute wayland-session

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2165190

Title:
  TPM fails AUTH automatically after FDE/TPM Ubuntu 26.04 install

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/snapd/+bug/2165190/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to