Heads-threat-model: per-board GPIO TPM reset protection table; uniformise 20 board flashing guide pages - #221
Closed
tlaurion wants to merge 3 commits into
Closed
Heads-threat-model: per-board GPIO TPM reset protection table; uniformise 20 board flashing guide pages#221tlaurion wants to merge 3 commits into
tlaurion wants to merge 3 commits into
Conversation
nic3-14159
reviewed
Jul 21, 2026
| ## TPM GPIO Reset Vulnerability (upstream coreboot bug) | ||
|
|
||
| [T430 Hardware Maintenance Manual](https://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles_pdf/t430_t430i_hmm_en_0b48304_04.pdf) | ||
| Heads relies on [coreboot](https://coreboot.org/) for low-level platform initialization, including GPIO pad configuration. This platform (Ivy Bridge / Intel 3rd Gen) is affected by a coreboot bug where the PCH GPIO lock bits are not set before booting the OS, allowing an attacker with code execution to reset the discrete TPM and forge PCR measurements. Details: [TPM GPIO fail (mkukri.xyz)](https://mkukri.xyz/2024/06/01/tpm-gpio-fail.html). |
There was a problem hiding this comment.
Not true on this platform. The PLTRST signal connected to the TPM reset line is a dedicated pin on the older PCHs, so they can't be reset by changing it to a GPIO and manually toggling it.
nic3-14159
reviewed
Jul 21, 2026
| **Note**: See the [SPI Programmer Best Practices]({{ site.baseurl }}/SPI-Programmer-Best-Practices/) for programmer recommendations (Tigard recommended; CH347F preferred budget option; CH341A rev1.6+ acceptable with a physical selector). | ||
| ## TPM GPIO Reset Vulnerability (upstream coreboot bug) | ||
|
|
||
| Heads relies on [coreboot](https://coreboot.org/) for low-level platform initialization, including GPIO pad configuration. This platform (Sandy Bridge / Intel 2nd Gen) is affected by a coreboot bug where the PCH GPIO lock bits are not set before booting the OS, allowing an attacker with code execution to reset the discrete TPM and forge PCR measurements. Details: [TPM GPIO fail (mkukri.xyz)](https://mkukri.xyz/2024/06/01/tpm-gpio-fail.html). |
There was a problem hiding this comment.
PLTRST is a dedicated pin on the older PCHs, and cannot be changed to a GPIO and manually toggled which is what TPM GPIO fail is.
nic3-14159
reviewed
Jul 21, 2026
|
|
||
| ## TPM GPIO Reset Vulnerability (upstream coreboot bug) | ||
|
|
||
| Heads relies on [coreboot](https://coreboot.org/) for low-level platform initialization, including GPIO pad configuration. This platform (Ivy Bridge / Intel 3rd Gen) is affected by a coreboot bug where the PCH GPIO lock bits are not set before booting the OS, allowing an attacker with code execution to reset the discrete TPM and forge PCR measurements. Details: [TPM GPIO fail (mkukri.xyz)](https://mkukri.xyz/2024/06/01/tpm-gpio-fail.html). |
tlaurion
marked this pull request as draft
July 21, 2026 15:52
tlaurion
force-pushed
the
doc/tpm-gpio-vuln
branch
2 times, most recently
from
July 22, 2026 00:54
b79ff6d to
8dc218e
Compare
This comment was marked as duplicate.
This comment was marked as duplicate.
…uides - T480-maximized, T480s-maximized: add vulnerability section with per-generation GPIO lock status table, Heads impact breakdown, and upstream tracking links - T420-maximized (Sandy Bridge), T430-maximized (Ivy Bridge), x230-maximized (Ivy Bridge): mark as not affected — PLTRST# pin on pre-Skylake PCHs is a dedicated reset signal that cannot be reprogrammed to GPIO mode; coreboot GPIO driver analysis confirms no attack vector on these platforms - Heads-threat-model: expand TPMTOTP GPIO reset note with detailed attack description: PCR clearing preserves NVRAM, attacker replays measurement log extends to forge PCR values, enabling unseal of TOTP/HOTP secret at NVRAM index 0x4d47 without passphrase All platform claims verified against coreboot 25.09 and 26.06 source. Upstream: coreboot ticket #576, Gerrit topic intel_gpio_lock Signed-off-by: Thierry Laurion <insurgo@riseup.net>
- "reprogram the TPM reset pin" -> "assert PLTRST# via PCH register" - /tmp/measurements -> /tmp/measuring_trace.log - Tone down certainty about attacker obtaining secrets Signed-off-by: Thierry Laurion <insurgo@riseup.net>
- Replace verbose TPM GPIO note with concise cross-reference to new table - Add 12-row per-board table covering all boards from BOARDS_AND_TESTERS.md - Three attack columns: Evil Maid detection, Disk encryption, USB Dongle - Clear y/n symbols per PeonyThePeon issue #2159 comment #17 request Signed-off-by: Thierry Laurion <insurgo@riseup.net>
tlaurion
force-pushed
the
doc/tpm-gpio-vuln
branch
from
July 22, 2026 01:33
565aef7 to
059a51d
Compare
tlaurion
requested review from
JonathonHall-Purism and
nic3-14159
and removed request for
nic3-14159
July 22, 2026 01:36
tlaurion
marked this pull request as ready for review
July 22, 2026 01:54
This was referenced Jul 22, 2026
13 tasks
Collaborator
Author
|
Superseded by new PR from tlaurion/heads-wiki (correct fork) at #224 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Heads Threat Model — Per-Board Protection Table
SPI Programmer Best Practices
20 Board Flashing Guides
Identical structure: TOC, EOL status (cross-ref to BOARDS_AND_TESTERS.md), TPM GPIO protection status, Safety First, Disassembly, Flashing. 14 new pages, 6 retrofitted. All using [flasher]/[programmer] placeholders.
Cross-Repo Corrections
Heads PR: linuxboot/heads#2165