Context
_destination_text() only inspects top-level args keys against _DESTINATION_KEYS, so a destination nested under another key — {"payload": {"to": "[email protected]"}} or {"message": {"url": "..."}} — is invisible to _to_attacker. That silently under-reports both hijack-ASR and leakage-verified ASR for any adapter/tool that nests its send arguments.
Acceptance criteria
Context
_destination_text()only inspects top-levelargskeys against_DESTINATION_KEYS, so a destination nested under another key —{"payload": {"to": "[email protected]"}}or{"message": {"url": "..."}}— is invisible to_to_attacker. That silently under-reports both hijack-ASR and leakage-verified ASR for any adapter/tool that nests its send arguments.Acceptance criteria
_destination_textwalks nested dicts/lists and matches destination-naming keys at any depth (reusing the existing_iter_stringstraversal shape).to/urldestination showing bothhijackedandleakednow fire, and a control where the attacker address appears only in a body and must not fire.