-
Notifications
You must be signed in to change notification settings - Fork 21
Security audit of stealth-registry Soroban contract #2
Copy link
Copy link
Open
Labels
Stellar WaveIssues in the Stellar wave programIssues in the Stellar wave programauditProduces a written report as primary deliverableProduces a written report as primary deliverabledripsFunded via Drips NetworkFunded via Drips Networkhelp wantedExtra attention is neededExtra attention is neededsecuritySecurity-sensitive workSecurity-sensitive workstellarTouches Stellar / Soroban codeTouches Stellar / Soroban code
Metadata
Metadata
Assignees
Labels
Stellar WaveIssues in the Stellar wave programIssues in the Stellar wave programauditProduces a written report as primary deliverableProduces a written report as primary deliverabledripsFunded via Drips NetworkFunded via Drips Networkhelp wantedExtra attention is neededExtra attention is neededsecuritySecurity-sensitive workSecurity-sensitive workstellarTouches Stellar / Soroban codeTouches Stellar / Soroban code
Type
Fields
Give feedbackNo fields configured for issues without a type.
Labels:
Stellar Wave,stellar,audit,security,drips,help-wantedTier: L (1–2 weeks)
Type: audit
Context
contracts/stellar/stealth-registry/stores the (registrant, scheme_id) → 64-byte meta-address mapping. It is Wraith's analogue to ERC-6538 on EVM. Unlike the announcer, it has persistent storage and arbitrary user input flowing intoDataKey::MetaAddress, so the attack surface is substantially larger.We need an independent security review.
Scope
Same severity framework and report format as the announcer audit. Focus areas specific to the registry:
DataKey? Inspect theSymbol/Address/u32packing.register_keys(); verify there's no path that bypasses it (overloads, rawset()calls).require_auth()must cover both first-time and replacement writes. Confirm an attacker can't squat a victim's registry slot before the victim registers.scheme_id? Document the intended behavior; flag if the contract silently writes garbage.stealth_meta_address_ofreturn data for unauthorized callers? (It should — registry is public — but confirm there's no privileged-only side channel.)extend_ttlsemantics align with "permanent registration" UX expectations. A user shouldn't lose their registry entry to expiry.Acceptance criteria
contracts/stellar/stealth-registry/audits/2026-XX-author.md.tests/audit.rs.Files to start with
contracts/stellar/stealth-registry/src/lib.rscontracts/evm/contracts/ERC6538Registry.sol(for behavioral parity check)