Skip to content

Bind pack signature verification to actual content (closes #9) - #16

Merged
abhay-codes07 merged 1 commit into
mainfrom
fix/pack-signature-content-binding
Jul 12, 2026
Merged

Bind pack signature verification to actual content (closes #9)#16
abhay-codes07 merged 1 commit into
mainfrom
fix/pack-signature-content-binding

Conversation

@abhay-codes07

Copy link
Copy Markdown
Owner

Closes #9. Security fix.

verify_pack_signature signed/verified name@version:manifest.checksum but never recomputed content_checksum(pack.items). An attacker could swap pack.items for a malicious payload, leave manifest.checksum untouched, and the signature still verified — so volo pack verify (the standalone 'should I trust this file?' gate) printed VALID on a tampered pack.

Fix

Verification now recomputes content_checksum(pack.items) and rejects when it no longer matches manifest.checksum, re-binding the signature to the real items. The registry-install path already had an independent content-checksum guard (registry.py), so this closes the exposed standalone-verify surface.

Tests

3 regression tests: untampered verifies; content tamper (checksum field untouched) → False; manifest-checksum forgery → False. Full suite 531 passed, mypy + ruff clean.

…ity)

verify_pack_signature signed/verified name@version:manifest.checksum but never
recomputed content_checksum(pack.items), so an attacker could swap pack.items
for a malicious payload, leave manifest.checksum untouched, and the signature
still verified — 'volo pack verify' would print VALID on a tampered pack.

Verification now recomputes content_checksum(pack.items) and rejects when it no
longer matches manifest.checksum, re-binding the signature to real content. The
registry-install path already had an independent content_checksum guard; this
closes the standalone verify primitive. 3 regression tests. Closes #9.
Copilot AI review requested due to automatic review settings July 12, 2026 17:08

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.

@github-actions

Copy link
Copy Markdown

🛫 Volo reliability — ❌ NO-SHIP

Replayed 7 adversarial scenarios against the agent (threshold ≥ 0.90).

Metric Score
Trajectory determinism 1.000
Decision determinism 1.000
Faithfulness 0.000
Consistency under repetition 1.000

Cost — replayed deterministically at $0 (no live API calls).

baseline 1783876120121-0d9884ce-5a70-4979-bc02-df9ddfb426de • generated by Volo

@abhay-codes07
abhay-codes07 merged commit 70a45bf into main Jul 12, 2026
2 of 4 checks passed
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.

Pack signature verifies a content-tampered pack as VALID (checksum not re-bound)

2 participants