ScVal nests: vectors, maps, contract instances. Soroban authorization trees nest too, through SorobanAuthorizedInvocation.subInvocations.
Decoders bound that nesting: go-stellar-sdk’s SafeUnmarshal applies a default depth limit, and Rust’s stellar-xdr takes Limits. But those limits protect the decode step only, and only when they’re left on.