What changed, and why it matters
This is a tiny UI bug fix for the Solana screen shown when creating a Squads multi-signature wallet. The original code accidentally showed the Squads logo and label for every transaction *except* the Squads multisig creation address, because it used the wrong comparison. The fix makes the logo and label appear only when the destination actually is the Squads multisig creation contract. It does not change transaction signing logic, address validation, or cryptographic checks.
No security action required; treat as a normal UI fix. If desired, verify that the Squads contract address constant is correct and that downstream signing still validates the transaction independently of UI labels.
Security signals we found
UI display bug: wrong icon/label shown for Solana transaction destination
No change to transaction parsing, validation, or signing logic
No buffer overflow, memory corruption, or cryptographic weakness introduced
Condition is a string equality check, not a security boundary
Evidence from the diff
In src/ui/gui_chain/multi/web3/gui_sol.c, the condition if (strcmp(to, SQUADS_V4_CREATE_MULTISIG_CONTRACT_ADDRESS)) was changed to if (strcmp(to, SQUADS_V4_CREATE_MULTISIG_CONTRACT_ADDRESS) == 0). In C, strcmp returns 0 on equality, so the old code executed the Squads branding block for every non-matching address and skipped it for the real Squads address. The patch corrects the UI branding branch only.
Changed components
src/ui/gui_chain/multi/web3/gui_sol.cSolana transaction overview UISquads multisig creation screen brandingInspect captured patch +1 / −1
diff --git a/src/ui/gui_chain/multi/web3/gui_sol.c b/src/ui/gui_chain/multi/web3/gui_sol.c
index 3eca497..8b6e7f2 100644
--- a/src/ui/gui_chain/multi/web3/gui_sol.c
+++ b/src/ui/gui_chain/multi/web3/gui_sol.c
@@ -337,7 +337,7 @@ lv_obj_t *CreateSquadsSolanaTransferOverviewCard(lv_obj_t *parent, PtrString fro
lv_obj_align_to(toValuelabel, tolabel, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 8);
// add label fot to label
- if (strcmp(to, SQUADS_V4_CREATE_MULTISIG_CONTRACT_ADDRESS)) {
+ if (strcmp(to, SQUADS_V4_CREATE_MULTISIG_CONTRACT_ADDRESS) == 0) {
lv_obj_t *squadsIcon = GuiCreateImg(container, &imgSquads);
lv_obj_align_to(squadsIcon, toValuelabel, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 8);
lv_obj_t *squadsLabel = GuiCreateIllustrateLabel(container, "Squads");
Why this scored 18/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.