Secure Boot 2023 Certificate Update

Microsoft is moving Windows devices to a new set of Secure Boot certificates — the Windows UEFI CA 2023, the Microsoft UEFI CA 2023 and a new 2023 Key Exchange Key (KEK) — together with a boot manager signed by the new CA. Athena shows exactly where each Windows machine is in that rollout, tells you what (if anything) stands in the way, and lets you start the update — or re-run Windows' own update task with Retry now — on one machine or many without scripting it yourself.

Windows only. The certificate status is reported by the Windows agent, and starting the update is only supported on Windows. Linux machines, legacy-BIOS machines and agents older than 1.2.108 show Not reported by this agent. The general firmware and TPM readout is covered in Boot & Security Inventory.

Where to find it#

Open a machine from the Agents list and choose Boot & Security in the agent detail view's left-hand navigation. Under the Boot & Security Information card you'll find the Secure Boot certificates (2023) card with its Update progress checklist, followed by Certificate update readiness and, when they apply, the Start certificate update and Retry now buttons.

Reading the status#

The Status badge is worked out from all the evidence the agent reports — the Windows servicing status, the update stage, the Secure Boot servicing events in the System log and the certificates actually present in the firmware — not from the Windows status value alone, which can lag behind what has really happened. The states, checked in this order, are:

StatusMeaning
UpdatedThe 2023 certificates and boot manager are in place (Windows reports Updated, event 1808 was logged, or the update stage is complete and the firmware db holds the Windows UEFI CA 2023).
FailedWindows recorded an update error, or the newest thing that happened was a failure event (1795 or 1796). The line under the badge shows the failure and its code.
Pending restartWindows applied the certificate step and needs a restart to update the boot manager and finish (update stage 0x4100, event 1800, or event 1801 part-way through an update).
In progressAn update was requested or is running.
BlockedSecure Boot is turned off, or Microsoft has held this device model back for a known firmware issue (the known-issue ID is shown).
Not startedNo sign of the update yet; nothing is wrong.

When the status is Pending restart, users with the agents.restart permission get a Restart computer button right next to the badge. It asks for a delay (0–3600 seconds, 60 by default), warns anyone signed in, and then restarts the machine.

Card fields

FieldShows
Latest EventThe newest Secure Boot servicing event, with its meaning first and its ID second (for example Update complete — certificates and boot manager updated · event 1808), and when it was logged. The ? beside it explains the event and what to do.
Last FailureShown on the card only while a failure is the newest thing that happened. A failure that later progress superseded moves to Technical details.
Error CodeThe error Windows recorded for the update, shown on the card only when one is set.
Update stageWhere Windows is in the update, worded to match the status badge (see Update stages); shown on the card while an update is under way, otherwise under Technical details.
2023 CAs in Firmware dbWhether the firmware's allowed-signatures database holds the Windows UEFI CA 2023 and the Microsoft UEFI CA 2023 — read directly from the firmware.
KEK 2023 in FirmwareWhether the firmware's Key Exchange Key list holds the 2023 KEK.
Known Issue IDThe Microsoft known-issue ID when the device is held back.

If the firmware already contains the Windows UEFI CA 2023 but Windows hasn't started the update (for example, because a newer BIOS shipped it), the card notes 2023 CA already present in firmware. If the firmware couldn't be read, the firmware fields say Could not read firmware; on an agent older than 1.2.108 they say Not reported by this agent (needs agent 1.2.108 or later).

Expand Technical details for the raw values: the Windows-reported status, the raw update-stage and policy registry values, Managed Opt-In (opted in to Microsoft-managed rollout), High-Confidence Opt-Out (opted out of automatic high-confidence rollout), Can Attempt Update After (a wait period Windows is observing), the Hardware group (Microsoft rollout bucket) — devices with the same make, model and firmware share a group, and Microsoft releases the update group by group — and the full list of Firmware db Certificates.

Update progress checklist

Under the card fields, Update progress breaks the rollout into the four pieces Windows has to put in place, each marked Done, Not done or Unknown:

StepHow it's determined
Windows UEFI CA 2023 in firmware DBRead directly from the firmware's allowed-signatures database.
Microsoft UEFI CA 2023 in firmware DBRead directly from the firmware. Shows Not needed (no 2011 third-party CA in the firmware DB) when the firmware never trusted the 2011 third-party CA in the first place (common on virtual machines such as Hyper-V), so there is nothing to replace.
2023 boot manager installedDone when the status is Updated or the newest event is 1799 (boot manager updated); after an update was requested, it follows the boot-manager step of the update stage. With no request and no event it stays Unknown rather than guess.
KEK 2023 in firmwareRead directly from the firmware's Key Exchange Key list.

Once the Windows UEFI CA 2023 and the 2023 boot manager are both in place, the checklist adds the summary Windows boot is protected (2023 boot certificate and boot manager installed). followed by Still outstanding: and every step that is still Not done — typically the KEK on machines whose firmware refused it.

Update stages

The Update stage always agrees with the status badge: a failed or blocked update is never described as "in progress", whatever the raw value says. The raw value (shown on hover) only picks the wording within a status:

StatusUpdate stage shown
Not startedNo update requested
In progressUpdate requested, waiting for the Secure-Boot-Update task (raw 0x5944); otherwise Update in progress
Pending restartCertificates applied, reboot needed to update the boot manager (raw 0x4100); otherwise Waiting for a restart to continue the update
FailedStopped after a failure; Windows retries at the next restart
BlockedStopped: a Microsoft known-issue hold applies to this device — or — Stopped: Secure Boot is off
UpdatedUpdate steps complete

Secure Boot servicing events

Athena translates the Secure Boot servicing event IDs Windows logs so you never have to look up a bare number:

EventMeaningWhat to do
1034DBX update applied — the revocation list in the firmware was updated.Nothing.
1036DB update applied — the allowed-signatures database was updated (for the 2023 rollout, this adds the Windows UEFI CA 2023).Nothing.
1037DBX update applied — Windows Production PCA 2011 revoked.Nothing.
1042DBX update applied — older boot manager versions revoked.Nothing.
1043KEK update applied — the firmware's Key Exchange Key was updated to the 2023 key.Nothing.
1044DB update applied — Microsoft Option ROM UEFI CA 2023 added.Nothing.
1045DB update applied — Microsoft UEFI CA 2023 added.Nothing.
1795Firmware refused the update — it returned an error. Windows retries on the next restart.Ask the device manufacturer whether a BIOS/UEFI update is available.
1796Update failed — Windows hit an unexpected error. Windows retries on the next restart.Restart so Windows retries; if it keeps failing, look up the error code in Microsoft's guidance.
1799Boot manager updated — signed with Windows UEFI CA 2023.Nothing.
1800Restart needed before the update can continue.Restart the device.
1801New certificates not yet applied to the firmware.Follow Microsoft's guidance to complete the update.
1802Update held back — known firmware issue on this device.Check with the vendor for a firmware update that addresses it.
1803No PK-signed KEK for this device — OEM key needed.Check with the manufacturer for a PK-signed KEK for this model.
1808Update complete — certificates and boot manager updated.Nothing.

With agent 1.2.109 or later, the agent watches the System log for these events and sends a fresh Boot & Security inventory as soon as one is logged, so the card follows Windows on its own — for example, it moves from Pending restart to Updated shortly after the post-restart task finishes, without waiting for the next scheduled inventory. With agent 1.2.111 or later, the "update applied" events (1034–1045) count as progress, so a later KEK update applied replaces an older failure as the card's latest event instead of leaving the machine shown as Failed.

Certificate update readiness#

Below the card, Certificate update readiness lists every reason the update can or cannot start, each marked Blocker, Warning or Info, with what to do and who does it. Any blocker disables the start button.

FindingSeverityFix
No Secure Boot certificate data reported (older agent, legacy BIOS or not UEFI)BlockerUpdate the agent to 1.2.108 or later and collect inventory.
Not a Windows machineBlocker—
Secure Boot is offBlockerEnable Secure Boot in the BIOS/UEFI setup (on-site or with the vendor's BIOS tool).
Held by Microsoft for a known firmware issueBlockerWait for Microsoft or the OEM to release a fix; don't force the update.
The 2023 update is already completeInfoNothing — the button is hidden.
Reboot needed to finish (boot manager step, or event 1800)WarningReboot the device.
The last update attempt failed (shown while it's the newest thing that happened). When Windows reported the reason as text rather than a code, the text is shown.WarningLook the code up in Microsoft's Secure Boot event reference; a firmware update often fixes it. When one of the firmware findings below is also listed, this finding simply points to it, so there is only one instruction to follow.
The firmware rejected the Secure Boot update and the KEK still lacks the 2023 certificate (event 1803, or a 1795/1796 failure that is still the newest event) — on firmware that is old or whose date isn't known. When the BIOS is more than two years old, its date is named.WarningUpdate the BIOS/UEFI firmware first (check the manufacturer for an update), then press Retry now. With an old BIOS: Retrying on this firmware is unlikely to help.
The firmware rejects the new KEK even on a current BIOS (released within the last two years; the BIOS version and date are named)WarningMake sure Windows is up to date (the finding names the Windows build the device reports), then press Retry now. If that doesn't help, contact the manufacturer's support for this model, quoting the error the finding names.
Windows is throttling automatic attempts until a dateInfoStarting the update overrides the wait.
BitLockerInfoIf BitLocker protects the system drive, it's suspended for one reboot so the firmware change doesn't trigger recovery. Nothing required.

The two firmware findings carry a Why this fix ? that explains the reasoning: Windows can only add the 2023 KEK when the firmware accepts it, and the key it writes ships in Windows' cumulative updates — so the firmware and Windows both need to be current, and Windows' Secure-Boot-Update task has to run, before the KEK goes in. Only if a current firmware still rejects it does the fix have to come from the manufacturer.

Starting the update#

What the card offers below the readiness list depends on the status:

StatusWhat the card offers
UpdatedNothing.
Pending restartWindows is waiting for a restart. Use the Restart computer button next to the badge.
In progressWindows is applying the update. Nothing to do until it asks for a restart. If the update is queued but Windows hasn't acted on it yet, Retry now is offered as well.
FailedRetry now, plus Start certificate update unless a firmware finding is listed.
Not started or Blocked, with the old-firmware findingUpdate the firmware first — Windows retries by itself at the next restart. No button.
Not started or Blocked, with the current-BIOS findingNothing to do on this device — waiting for a manufacturer fix. Windows retries at every restart. No button.
Not started / BlockedStart certificate update (disabled while a blocker is listed).

Both buttons need the secureboot.update permission. To start the update:

  1. Click Start certificate update (disabled, with the reason in the tooltip, while a blocker is listed).
  2. Confirm in the Start the Secure Boot certificate update? dialog.
  3. Athena sends the machine a fixed PowerShell script, run as SYSTEM through remote command execution (5-minute timeout). The script:
    • checks that the Windows scheduled task \Microsoft\Windows\PI\Secure-Boot-Update exists and is enabled — if not, it stops with FAILED and changes nothing;
    • suspends BitLocker on the system drive for one reboot, but only if protection is on;
    • sets AvailableUpdates to 0x5944 — Microsoft's documented trigger for IT-managed updates — and starts the Secure-Boot-Update task;
    • after about 10 seconds, prints the new update stage and the Windows status.
  4. The card shows Update started - a reboot (usually two) is required to finish with a View command result link to the script's output.
Athena never reboots the machine for you

The update only finishes after one or two restarts. Schedule them yourself — with the Restart computer action once the status turns Pending restart, or your usual maintenance process. Commands are not queued for offline agents: if a machine is offline, nothing is sent, so start it again once it's back online.

Retry now#

Windows applies the certificates through its own scheduled task, \Microsoft\Windows\PI\Secure-Boot-Update, and normally only retries a failed step at the next restart. After you've updated the firmware or installed the latest Windows cumulative update, you don't have to wait: Retry now runs that task immediately. It's offered when the status is Failed, or In progress with an update queued that Windows hasn't acted on yet. The hint under the button reads After updating the firmware or Windows.

  1. Click Retry now (disabled while a blocker is listed).
  2. Confirm in the Retry the Secure Boot certificate update now? dialog.
  3. Athena sends the machine a fixed PowerShell script, run as SYSTEM through remote command execution. The script:
    • checks that the Secure-Boot-Update task exists and is enabled — if not, it stops with FAILED and runs nothing;
    • prints the current AvailableUpdates value, then starts the task;
    • waits up to 90 seconds for the task to finish (if it's still running, its result shows in the next inventory);
    • reports the task state, LastRunTime, LastTaskResult, the new AvailableUpdates value and the Windows status.
  4. A toast confirms Windows' Secure Boot task was started. and the card shows a View command result link to the script's output. The card updates by itself as soon as Windows logs progress.

Unlike Start certificate update, Retry now never changes AvailableUpdates (so it can't queue anything new), doesn't touch BitLocker and never restarts the machine. If the run applies the remaining certificates, the status moves on to Pending restart or Updated on its own.

Permissions#

PermissionAllowsDefault roles
inventory.viewSeeing the card and the readiness findings.Helpdesk, Operator, Admin
secureboot.updateStarting the certificate update and Retry now.Operator, Admin
agents.restartThe Restart computer action.Operator, Admin

secureboot.update is separate from the general commands.execute permission: it only allows these two fixed scripts, so you can let operators run the certificate update without letting them run arbitrary scripts. See Roles & Permissions. Each start is recorded in the audit log as a command execution labelled Secure Boot certificate update, and each retry as Secure Boot certificate update retry.

Tracking the rollout fleet-wide#

These fields are available under the Security category wherever Athena builds a machine filter — dynamic collections, automatic tagging rules — and as columns in the report builder's Agents data source:

FieldTypeMeaning
SecureBootUpdateStateTextThe overall status from the card: Updated, Failed, PendingRestart, InProgress, Blocked, NotStarted. Empty when nothing was reported.
SecureBootRestartPendingBooleanThe certificate update is waiting for a reboot.
RestartPendingBooleanThe machine needs a restart for any reason — Windows servicing or the Secure Boot update (the same answer as the Restart Pending field on the Boot & Security card, which also names the reason).
SecureBootCertStatusTextThe raw Windows-reported status.
SecureBootCertUpdateCompleteBooleanThe update finished (event 1808 or status Updated).
SecureBootLatestEventIdNumberNewest Secure Boot servicing event ID.
SecureBootCertErrorNumberUpdate error code (0 = none).
SecureBootLastFailureCodeNumberError code of the newest 1795/1796 failure, as a signed 32-bit number.
SecureBootKnownIssueIdTextMicrosoft known-issue ID holding the device back.
SecureBootBucketIdTextMicrosoft rollout bucket (hardware group).
SecureBootDbHasWindowsUefiCa2023BooleanFirmware db holds the Windows UEFI CA 2023.
SecureBootKekHas2023BooleanFirmware KEK holds the 2023 KEK.

Typical uses:

REST API#

Method & pathPermissionPurpose
GET /api/agents/{id}/secureboot/readinessinventory.viewReadiness for one machine: canStart, alreadyUpdated, updateInProgress, restartPending, state, isOnline, and findings (each with code, severity, reason, fix, who, detail, eventId, event, helpUrl). 404 if the agent doesn't exist.
POST /api/agents/{id}/secureboot/updatesecureboot.updateStart the update on one machine. Returns the per-machine result; 404 if the agent doesn't exist.
POST /api/agents/secureboot/updatesecureboot.updateStart the update on many machines. Body: { "agentIds": [ ... ] } (at least one, else 400). Returns one result per machine.
POST /api/agents/{id}/secureboot/retrysecureboot.updateRetry now on one machine. Same result shape and 404 as the start call.
POST /api/agents/secureboot/retrysecureboot.updateRetry now on many machines. Same body and 400 rule as the bulk start. Returns one result per machine.

Each result has an outcome of Dispatched (with the commandId whose output shows what the script did), Blocked (with the blocking finding codes in reasons, e.g. SecureBootDisabled, KnownIssue, AlreadyUpdated), Offline, NotFound or Failed. In a bulk call, every machine that is ready and online is sent the script as a single command. Unlike the buttons, the API doesn't look at the status — only blockers and already updated stop it — so re-running either call from a script is harmless. Readiness findings that carry a Why this fix explanation return it in a help field.

# Start the certificate update on every machine in a list
$headers = @{ Authorization = "Bearer $token" }
$body = @{ agentIds = $agentIds } | ConvertTo-Json

$r = Invoke-RestMethod -Method Post `
  -Uri "https://athena.example.com:8443/api/agents/secureboot/update" `
  -Headers $headers -ContentType "application/json" -Body $body `
  -SkipCertificateCheck

$r.data | Select-Object hostname, outcome, reasons, commandId

Troubleshooting#