Two gaps in the mechanical production-feature policy, found by a dev-instrumentation
sweep. Both are about the denylist's coverage, not about a specific leak — the
three actual mis-gated diagnostics it found are fixed in 17cef45c.
Filed rather than fixed here because Makefile is currently being edited by
another session in this worktree.
G1 — the two #705 OVP experiment features are not in PROD_FORBIDDEN
Makefile PROD_FORBIDDEN (~line 2575) lists ~35 never-ship features. It does
not list:
aw99703-ovp-low — programs the backlight boost's over-voltage threshold down
to OVPSEL=000 (16 / 17.5 / 19 V) instead of the shipping 001
(22.5 / 24 / 25.5 V)
aw99703-full-brightness — drives the backlight at full scale instead of the
0x5FF the product ships
Both are guarded today only by compile_error! on mode-production in
secure/src/nsc/mod.rs. That is exactly the hole the denylist exists to cover:
the list's own comment records that a release built without mode-production
previously slipped every gate.
These are not cosmetic flags. They change the trusted display's own drive —
the over-voltage protection threshold on a boost whose output capacitor is rated
25 V, and the brightness of the screen the user reads confirmations on. A build
that shipped with aw99703-ovp-low on would run the panel at a protection
threshold chosen for a bench experiment.
Fix: add both names to PROD_FORBIDDEN. Two words.
G2 — prod-feature-check covers one of three firmware crates
The check resolves -p sphincs-tz-secure only. Neither pqsigner-fsbl nor
sphincs-tz-nonsecure is covered by any denylist.
Severity is genuinely low and should not be overstated:
But the mechanical policy — the thing that catches what a human reviewer
misses — currently covers one crate out of three, while the FSBL is the crate
invariant #10 makes permanently unpatchable after the RDP-2 self-lock. A
diagnostic that reaches a frozen FSBL cannot be removed later by any update.
Fix: extend prod-feature-check to resolve all three crates, or add
per-crate denylists.
Latency on both
Neither is urgent. No shipping image can be built at all right now:
secure/build.rs panics FW_ROLLBACK_PRODUCTION_BLOCKED on every
thumbv + stm32u585 + mode-production build, fsbl/build.rs mirrors it, and
make release / make fsbl-release are both $(error).
These should be closed before that rollback quarantine lifts, since that is
the moment the denylist starts being the thing standing between a bench feature
and a shipped device.
Two gaps in the mechanical production-feature policy, found by a dev-instrumentation
sweep. Both are about the denylist's coverage, not about a specific leak — the
three actual mis-gated diagnostics it found are fixed in
17cef45c.Filed rather than fixed here because
Makefileis currently being edited byanother session in this worktree.
G1 — the two #705 OVP experiment features are not in
PROD_FORBIDDENMakefilePROD_FORBIDDEN(~line 2575) lists ~35 never-ship features. It doesnot list:
aw99703-ovp-low— programs the backlight boost's over-voltage threshold downto
OVPSEL=000(16 / 17.5 / 19 V) instead of the shipping001(22.5 / 24 / 25.5 V)
aw99703-full-brightness— drives the backlight at full scale instead of the0x5FF the product ships
Both are guarded today only by
compile_error!onmode-productioninsecure/src/nsc/mod.rs. That is exactly the hole the denylist exists to cover:the list's own comment records that a release built without
mode-productionpreviously slipped every gate.
These are not cosmetic flags. They change the trusted display's own drive —
the over-voltage protection threshold on a boost whose output capacitor is rated
25 V, and the brightness of the screen the user reads confirmations on. A build
that shipped with
aw99703-ovp-lowon would run the panel at a protectionthreshold chosen for a bench experiment.
Fix: add both names to
PROD_FORBIDDEN. Two words.G2 —
prod-feature-checkcovers one of three firmware cratesThe check resolves
-p sphincs-tz-secureonly. Neitherpqsigner-fsblnorsphincs-tz-nonsecureis covered by any denylist.Severity is genuinely low and should not be overstated:
fsbl/build.rspanics onmode-production && lcd-test, andmarker.rsfencesstage-marker.But the mechanical policy — the thing that catches what a human reviewer
misses — currently covers one crate out of three, while the FSBL is the crate
invariant #10 makes permanently unpatchable after the RDP-2 self-lock. A
diagnostic that reaches a frozen FSBL cannot be removed later by any update.
Fix: extend
prod-feature-checkto resolve all three crates, or addper-crate denylists.
Latency on both
Neither is urgent. No shipping image can be built at all right now:
secure/build.rspanicsFW_ROLLBACK_PRODUCTION_BLOCKEDon everythumbv + stm32u585 + mode-productionbuild,fsbl/build.rsmirrors it, andmake release/make fsbl-releaseare both$(error).These should be closed before that rollback quarantine lifts, since that is
the moment the denylist starts being the thing standing between a bench feature
and a shipped device.