Summary
The registration component documents context_id == 0 as the "not registered" sentinel, but internal write paths do not reject context 0.
Affected Code
packages/metagame/src/registration/registration_component.cairo:17
packages/metagame/src/registration/registration_component.cairo:123
packages/metagame/src/registration/registration_store.cairo:49
packages/metagame/src/registration/registration_store.cairo:97
Risk
A host that uses context 0 can confuse real registrations with unknown tokens because _get_token_context() returns 0 for both. This may allow registration bypasses in consumers that check reverse lookup state.
Suggested Fix
Reject context_id == 0 in set_entry() and increment_entry_count().
Suggested Tests
Add negative tests proving:
set_entry({ context_id: 0, ... }) reverts
increment_entry_count(0) reverts
Summary
The registration component documents
context_id == 0as the "not registered" sentinel, but internal write paths do not reject context0.Affected Code
packages/metagame/src/registration/registration_component.cairo:17packages/metagame/src/registration/registration_component.cairo:123packages/metagame/src/registration/registration_store.cairo:49packages/metagame/src/registration/registration_store.cairo:97Risk
A host that uses context
0can confuse real registrations with unknown tokens because_get_token_context()returns0for both. This may allow registration bypasses in consumers that check reverse lookup state.Suggested Fix
Reject
context_id == 0inset_entry()andincrement_entry_count().Suggested Tests
Add negative tests proving:
set_entry({ context_id: 0, ... })revertsincrement_entry_count(0)reverts