Skip to content

fix(update-agent): enforce signed-manifest verification for octet-stream components - #1391

Open
Cr0wTom wants to merge 2 commits into
mainfrom
thomassermpinis/vuln-220-manifest-signature-bypass-for-uncompressed-components
Open

fix(update-agent): enforce signed-manifest verification for octet-stream components#1391
Cr0wTom wants to merge 2 commits into
mainfrom
thomassermpinis/vuln-220-manifest-signature-bypass-for-uncompressed-components

Conversation

@Cr0wTom

@Cr0wTom Cr0wTom commented Sep 4, 2026

Copy link
Copy Markdown
Collaborator

Octet-stream components are installed as downloaded but were verified only against the unsigned source.hash — never the signed manifest_component.hash, allowing payload substitution under a valid signature.

Fix: process() verifies the blob against the signed manifest size+hash (same check_existing_component the compressed path uses) and fails the update on mismatch. Fleet-safety basis: the manifest hash is the final-component hash, already hard-enforced on XZ/bidiff paths, and for octet-stream the final component is byte-identical to the download — the same generator that produces correct XZ hashes produces blob hashes here by construction (corroborated by the E2E fixture). A false reject fails only that rollout and is recoverable backend-side by regenerating the claim; devices install nothing. This PR cannot block its own rollout (it is verified by the old agent).

Tests: check passes/fails correctly on match/hash/size divergence; mismatch fails process() (run in Linux CI).

Mitigates: VULN-220 (fixed); octet-stream element of VULN-6331/6332; external disclosure report (Sep 2026), payload-substitution finding. Part 3/3 of claim hardening.

@Cr0wTom
Cr0wTom requested a review from a team as a code owner September 4, 2026 06:22
@Cr0wTom Cr0wTom changed the title feat(update-agent): observe-mode signed-manifest check for octet-stream components fix(update-agent): enforce signed-manifest verification for octet-stream components Sep 4, 2026
@vmenge
vmenge requested a review from sfikastheo September 4, 2026 09:39
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.

1 participant