Skip to content

fix: restrict TempoStateReader callers#535

Open
mattsse wants to merge 2 commits into
mainfrom
mattsse/fix-tempo-state-reader-authz
Open

fix: restrict TempoStateReader callers#535
mattsse wants to merge 2 commits into
mainfrom
mattsse/fix-tempo-state-reader-authz

Conversation

@mattsse

@mattsse mattsse commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Summary

Restricts the standalone TempoStateReader precompile to authorized zone access paths. The normal path is ZoneInbox/ZoneOutbox/ZoneConfig calling the TempoState wrapper, which enforces the zone-system-contract policy before forwarding to the reader with the current tempoBlockNumber.

The precompile now allows the TempoState wrapper and the known zone system predeploys, while arbitrary callers revert with Unauthorized before selector dispatch or L1StateProvider access.

Root Cause

The precompile rejected delegatecall but accepted direct calls from any EVM caller, so user transactions could bypass the wrapper-only system-contract check and trigger L1 storage reads with caller-selected inputs.

Impact

Unauthorized direct callers are rejected at the precompile boundary. Legitimate wrapper-forwarded reads from TempoState, plus direct internal reads from zone system predeploys, continue to work.

@mattsse mattsse requested a review from 0xKitsune as a code owner June 25, 2026 09:49
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