1. the TPM does not require a password to get the decryption keys
2. bootup decryption passwords are checked by code, before asking (using?) the TPM's data (passwordless, because the bootup code is trusted)
3. exhausting multiple layers of retries causes ^ part 2's code to accidentally get/use the decryption data from the TPM
And assuming that's correct....
WTF
Isn't that stupidly insecure design, because even with trusted-boot checks it's probably trivially bypassed with hardware access (edit: like cutting traces)? Why even offer a bootup password if that's how it's implemented?
Like... at the absolute minimum, a sane design would not completely trust the TPM. Combine the TPM's key with the password to get the real key. No additional steps for users, and it eliminates all TPM-only attacks (subject to your password strength... but currently that is 0 so anything is an improvement).
[1]: https://hmarco.org/bugs/CVE-2016-4484/CVE-2016-4484_cryptset...