fix: Rotate challenge after Safe account descriptor processing
handle_safe_tlv_payload() and handle_signer_tlv_payload() verify the signed CHALLENGE field of their respective descriptors but never call roll_challenge() afterwards. The global challenge issued by INS_GET_CHALLENGE stayed valid until the next explicit GET_CHALLENGE, so any previously captured signed Safe / Signer descriptor could be replayed within the same app session and the device would display stale signer / threshold information as freshly authorized. Roll the challenge at the end of both TLV payload handlers, on both success and failure, mirroring the pattern already used by the trusted name and proxy info flows. (cherry picked from commit 297d44cad29531e898aff1e8871cd1e830793605)
C
Charles-Edouard de la Vergne committed
b43793406e8ff4b2283b88cc2e07b9a6030a9ae1
Parent: 23757a8
Committed by Alexandre Paillier <alexandre.paillier@ledger.fr>
on 8/25/2026, 3:03:57 PM