Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

audit: latent panic + boot-resume has no recover — constructProofs length check omits blindedMessages (fix in gonuts-tollgate)

Aperta Adatta ai principianti
#833 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

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
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
go
Ambito
payments

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

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di OpenTollGate/tollgate-module-basic-go

Tutte le issue di OpenTollGate/tollgate-module-basic-go

Issue simili

Altre issue su Go

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.