audit: latent panic + boot-resume has no recover — constructProofs length check omits blindedMessages (fix in gonuts-tollgate)
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 68/100
Direzione di ricerca
Inizia da wallet/wallet.go in constructProofs (intorno alla riga 2084), dove il controllo sulla lunghezza verifica secrets e rs ma non blindedMessages, che il ciclo indicizza. Aggiungi il confronto di lunghezza mancante a quel controllo. Poi trova ResumePendingSwaps e aggiungi un defer recover() nel suo ciclo per intent, così che un intent che va in panic venga saltato e segnalato come fallito senza bloccare l'avvio. È completato quando il controllo copre tutti e tre gli slice e un intent difettoso non può più interrompere ResumePendingSwaps.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
From the 2026-10-09 Cashu audit. LOW/latent — no reachable path today; two hardening moves.
Fork wallet/wallet.go constructProofs (≈:2084-2087): the length check covers secrets and rs but NOT blindedMessages, while the loop indexes blindedMessages[i]. Today the three tuples are structurally length-matched everywhere (createSwapRequest builds them together; the #497 intent journals them as one record), so the panic is unreachable — but any future writer that breaks that invariant turns a hostile response into an index-out-of-range. The payment path recovers panics (merchant.go:1652) but the #771 boot-resume path has no recover(): a panic there is a boot-loop with a hostile mint.
Minimal fix: add || sigsLenght != len(blindedMessages) to the guard, and a defer recover() in ResumePendingSwaps's per-intent loop (skip the intent, report failed, never wedge boot).
Cross-refs: #703, #771.
- Lingua principale
- Go
- Stelle
- 12
- Fork
- 14
- Merge medio
- 3g 21h
- PR unite (30g)
- 269
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di OpenTollGate/tollgate-module-basic-go
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
OpenTollGate/tollgate-module-basic-go#1135 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
OpenTollGate/tollgate-module-basic-go#1122 ·
I maintainer di solito rispondono entro 1 giorno
-
changelog: dependency-security sweep missing from [Unreleased] [Amperstrand fork #105 review debt]Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
OpenTollGate/tollgate-module-basic-go#1055 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
OpenTollGate/tollgate-module-basic-go#1027 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
OpenTollGate/tollgate-module-basic-go#1026 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di OpenTollGate/tollgate-module-basic-go
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
Gaurav-Gosain/tuios#1316 ·
I maintainer di solito rispondono entro 1 giorno
-
area:auth documentation priority:low
Difficoltà 1/5 1-3 ore Idoneità per principianti 86/100
I maintainer di solito rispondono entro 1 giorno
-
Mend: dependency security vulnerability
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
kube-tarian/sigrun#203 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
kubernetes-csi/csi-driver-iscsi#485 ·
I maintainer di solito rispondono entro 1 giorno
-
good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
eugenioenko/ttt#1276 ·
I maintainer di solito rispondono entro 1 giorno