Request an audit

// write-up

Coordinated disclosure with Lenovo PSIRT.

Published
Reading time
3 min
Illustration: a glowing processor chip on a dark circuit board.

Part 4 of 4: the Lenovo WmiBiosSetupSmm disclosure. See Part 1 (the chain), Part 2 (validation), and Part 3 (authorization).

The first three parts covered the bugs. This one covers the process, because a firmware finding is only as good as the coordination that turns it into a fix. Here is the full LEN-213632 timeline, what Lenovo accepted and rejected, and the remediation that shipped.

Timeline

DateEvent
8 Mar 2026Reported to Lenovo PSIRT with a live PoC and full binary analysis of the SMM attack surface.
11 MarAcknowledged; tracked as LEN-213632. Disclosure policy exchanged (90-day coordinated window).
13 MarInitial assessment complete: four findings confirmed valid, one rejected, one routed to the component owner.
17 AprFixed BIOS packages expected end of June; advisory planned for Patch Tuesday, 14 July.
2 JunCVEs reserved: CVE-2026-10587 through -10590.
JunFixed BIOS packages released.
14 JulAdvisory LEN-220440 published; embargo lifted.

What was accepted, and what wasn’t

The original report contained six findings (F06-A through F06-F). Triage is part of the job, and Lenovo’s was precise:

  • F06-A / -B / -C / -F: confirmed valid in the BIOS code and assigned CVE-2026-10587, -10588, -10589 and -10590 respectively.
  • F06-D, not a valid vulnerability. The LfcWmiServiceSmm code is present but not reachable on production units: once manufacturing completes, the module does not install its SMI callback or ACPI structure. A fair call, and a good reminder that a handler in the image isn’t the same as a handler on the attack surface.
  • F06-E: owned by Insyde. The IhisiServicesSmm pre-auth buffer check belongs to a module Insyde develops, so they took the lead on that thread.

Four of six landing as CVEs, with the rejections clearly reasoned, is a healthy outcome, and the disagreement on F06-D was resolved on evidence, not opinion.

Remediation

The fixes map one-to-one onto the gaps:

  • Call SmmIsBufferOutsideSmmValid() on OS-influenced buffers before use (10587).
  • Validate the BNVS / CommBufferSize bounds before parsing (10589).
  • Authenticate or restrict who can invoke the WMI BIOS-setup SMI path (10590).
  • Stop writing a live SMRAM address into a runtime-readable EFI variable / DSDT field (10588).

If you run an affected Lenovo platform, update your BIOS. The fixes shipped ahead of the 14 July advisory.

Why coordinated disclosure was worth it here

Firmware fixes are slow by nature: long validation cycles, multiple vendors (Lenovo and Insyde here), and devices that live for years. A 90-day clock with real status updates gave the fix time to ship before any technical detail went public, which is the entire point: users were protected first, and the write-ups you’re reading now add nothing an attacker didn’t already have to work for. My thanks to the Lenovo PSIRT team for being responsive and precise throughout.

The full set

Found something in your firmware or AI stack that shouldn’t be reachable? That’s what XSource does, get in touch.

Same scrutiny, your code

Send the repository or product, the component you care about most, the build under review and the window you have in mind. A written scope and a fixed price come back before any work begins.

Request an audit →

← All write-ups

More write-ups

All write-ups →

Inside the Lenovo SMM escalation chain

Part 1 of 4. The Lenovo WmiBiosSetupSmm disclosure (CVE-2026-10587 to -10590), coordinated with Lenovo PSIRT under case LEN-213632 and published in advisory LEN-220440 on 14 July 2026. Most vulnerability write-ups live in the operating system, the…

Read write-up →