Skip to content

Heads-threat-model: per-board TPM GPIO reset protection table; restructure with H2/H3 hierarchy; embed 149 hyperlinks; add CVE timeline and ME/AMT video. Uniformize and add missing boards flashing guides - #224

Open
tlaurion wants to merge 3 commits into
linuxboot:masterfrom
tlaurion:doc/tpm-gpio-vuln

Conversation

@tlaurion

Copy link
Copy Markdown
Collaborator

Heads Threat Model — Per-Board Protection Table

  • Per-board protection status for all 20 boards with chipset generation, EOL/ESU dates, GPIO TPM reset protection
  • KBL-R vs Whiskey Lake comparison, QSB-107 context, Intel doc 834810 reference
  • Mitigation on EOL platforms with Tails/Qubes memory OPSEC guidance
  • New external references: coreboot docs (doc.coreboot.org), EFF Threat Modeling Handout, OST2 firmware security training (ost2.fyi), darkmentor.com firmware security timeline, SPI programmer selection guide
  • Preview: https://tlaurion.github.io/heads-wiki/Heads-threat-model/

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

  • 3 no-TPM boards corrected to NOT_APPLICABLE (Librem 11, Mini v1, Mini v2)
  • NV4x/NS50 reclassified to INCONCLUSIVE (unconfirmed)
  • V540TU/V560TU protection reason corrected
  • ESU dates aligned with authoritative sources
  • CONFIG_LINUX_CONFIG regression fixed on all Librem boards

Heads PR: linuxboot/heads#2165

tlaurion added 3 commits July 24, 2026 16:58
…H2/H3 hierarchy; embed 149 hyperlinks; add CVE timeline and ME/AMT video

Add per-board GPIO TPM reset protection table with chipset
generation, EOL/ESU dates, and protection status. Correct
T480/T480s ESU to Mar 31, 2026. KBL-R vs Whiskey Lake comparison.

Restructure document with consistent H2/H3/H4 section hierarchy.
Add Further Learning and References sections. Move per-board
table to prominent position. Consolidate evil maid attacks,
CPU vulnerabilities, and mitigation guidance.

Embed 149 inline hyperlinks: CVE numbers (NVD), tool names,
vulnerability disclosures, Intel/AMD/IBM terms, TCG specifications.
Add external references: coreboot docs, EFF Threat Modeling
Handout, OST2 firmware security training, darkmentor.com timeline,
SPI programmer selection guide. Fix broken/outdated URLs.

Bonify content from primary sources:
- michaelaltfield 'What is Heads': Boot Guard Verified vs Measured
  Boot, evil maid relay/suspend/TOTP extraction attacks, Enterprise
  Security vs Cypherpunk Security distinction
- OST2: structured Further Learning section with 9 firmware security
  courses (free, open-source, Creative Commons)
- darkmentor.com: replace prose vulnerability list with CVE tables
  (transient execution: 11 rows 2018-2025; firmware/platform: 16
  rows 2017-2025) with per-CVE Heads platform impact
- anarsec.guide: tamper-evident countermeasures, expanded Tails/Qubes
  OpSec guidance, defense-in-depth strategy
- 2018 Intel promotional video (Ylian Saint-Hilaire, Principal
  Engineer): transcript quotes showing ME/AMT original pitch
  contrasted with security implications

Add 44 previously-missing hyperlinks: TAO, Pomona clip, Dasharo,
NovaCustom, Raspberry Pi Pico, flashprog, serprog, and others.

Signed-off-by: Thierry Laurion <insurgo@riseup.net>
…mmer] placeholders

Every board page uses identical template: multiline TOC, EOL status
links to BOARDS_AND_TESTERS.md and threat model, GPIO TPM reset
protection status with per-board table and vulnerability doc links,
Safety First with programmer recommendations, ## Disassembly and
## Flashing headings.

14 new board pages with Dasharo, Libreboot, coreboot doc references.
6 existing pages retrofitted. Alphabetical nav_order 1-20.

SPI-Programmer-Best-Practices reworked: Tool Interchangeability
section with [flasher] and [programmer] placeholders, consolidated
safety warnings, reorganized sections.

All command blocks use [flasher] --programmer [programmer] convention.
Active boards use ✅ Active heading. Broken anchors fixed.
T480s serprog examples generalized. Index page Dasharo link added.

Signed-off-by: Thierry Laurion <insurgo@riseup.net>
…ss-repo inconsistencies and URL fixes

Correct NV4x/NS50 to INCONCLUSIVE. Correct V540TU/V560TU protection
reason. Correct 3 no-TPM boards to NOT_APPLICABLE. Align ESU dates
with BOARDS_AND_TESTERS.md authoritative sources. Fix remaining
broken/stale URLs. Add Dasharo/KGPE-D16/Talos II cross-references.

RecoveryShell and Keys: add cross-references to heads source docs.

Signed-off-by: Thierry Laurion <insurgo@riseup.net>
Copilot AI review requested due to automatic review settings July 24, 2026 21:06

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@tlaurion tlaurion changed the title Heads-threat-model: per-board protection table; restructure with H2/H3 hierarchy; embed 149 hyperlinks; add CVE timeline and ME/AMT video Heads-threat-model: per-board TPM GPIO reset protection table; restructure with H2/H3 hierarchy; embed 149 hyperlinks; add CVE timeline and ME/AMT video. Uniformize and add missing boards flashing guides Jul 25, 2026

@Thrilleratplay Thrilleratplay left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel "read twice" is not enough of a safe guard to ensure a user has a valid backup.

Other than that, looks good to me.

Trammell Hudson ported [mjg59's tpmtotp](https://mjg59.dreamwidth.org/35742.html)
to run from inside the boot ROM of a Thinkpad x230 using CoreBoot with a Linux
[Trammell Hudson](https://trmm.net/) ported [mjg59's tpmtotp](https://mjg59.dreamwidth.org/35742.html)
to run from inside the boot ROM of a Thinkpad x230 using [CoreBoot](https://doc.coreboot.org/) with a Linux

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pedantic, but coreboot should be all lowercase.

![output top 4 mb chip]({{ site.baseurl }}/images/t430/13_ubuntu_output_4mb.jpg)

Find the chip and create a backup and verify it (For me the SPI flash chip is `YYY`):
Find the chip and read from it twice (For me the SPI flash chip is `YYY`):

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"read from it twice and verify they have matching checksums". I have had times where it took me a dozen times before I had matching checksums.

There are multiple instances of this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

GPIO locking is broken on Kaby Lake and possibly other platforms

3 participants