Skip to content

fix(p2p): reject proposal when expected proposer is undefined#24509

Merged
PhilWindle merged 1 commit into
merge-train/spartan-v5from
spl/a-1326-reject-undefined-proposer
Jul 5, 2026
Merged

fix(p2p): reject proposal when expected proposer is undefined#24509
PhilWindle merged 1 commit into
merge-train/spartan-v5from
spl/a-1326-reject-undefined-proposer

Conversation

@spalladino

Copy link
Copy Markdown
Contributor

Summary

Experiment to validate A-1326: when getProposerAttesterAddressInSlot resolves to undefined, ProposalValidator currently skips the proposer-identity check entirely and accepts the proposal. This applies the audit's suggested fix — reject instead of skip — mirroring CheckpointAttestationValidator, which already rejects in the equivalent case.

Note: expectedProposer resolves to undefined specifically when the committee is configured empty (targetCommitteeSize == 0, i.e. permissionless/open-committee mode where "anyone may propose") — sequencer.ts's checkCanPropose treats that same case as canPropose = true for every node. This PR is intended to surface, via CI (in particular any multi-node/permissionless e2e coverage), whether rejecting proposals in that mode breaks anything that currently relies on it.

Test plan

  • Updated proposal_validator.test.ts's "open committee" cases to expect rejection instead of acceptance
  • yarn workspace @aztec/p2p test src/msg_validators/proposal_validator/proposal_validator.test.ts passes locally (49/49)
  • yarn build passes
  • Relying on CI (multi-node/e2e) to reveal any behavior that depends on the previous accept-when-undefined path

Mirrors the attestation validator: previously the proposer-identity check was
skipped entirely when getProposerAttesterAddressInSlot returned undefined
(empty/open committee), silently accepting any signed proposal in that case.
@AztecBot

AztecBot commented Jul 3, 2026

Copy link
Copy Markdown
Collaborator

Flakey Tests

🤖 says: This CI run detected 2 tests that failed, but were tolerated due to a .test_patterns.yml entry.

\033FLAKED\033 (8;;http://ci.aztec-labs.com/c36c1f14c01fd413�c36c1f14c01fd4138;;�): yarn-project/kv-store/scripts/run_test.sh src/bench/sqlite-opfs-encrypted/map_bench.test.ts (1s) (code: 0)
\033FLAKED\033 (8;;http://ci.aztec-labs.com/c1d2e66901bdfd62�c1d2e66901bdfd628;;�): yarn-project/kv-store/scripts/run_test.sh src/sqlite-opfs/internal/ordered-binary-browser.test.ts (2s) (code: 0)

@PhilWindle PhilWindle merged commit 62ec0b4 into merge-train/spartan-v5 Jul 5, 2026
12 checks passed
@PhilWindle PhilWindle deleted the spl/a-1326-reject-undefined-proposer branch July 5, 2026 17:58
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.

3 participants