You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
print("Waiting for debugger client to connect at ", addr)
conn, err:=l.Accept()
iferr!=nil {
returnerr
}
println(" connected!")
d.in, d.out=conn, conn
returnnil
}
and notice that we create a listener bound to an address and immediately accept a single connection then discard the listener.
Please figure out how to singly create the listener once and then retain it and listen to connections on it each time. If this library is to be put to production and debuggers left on, with the very large surface that it has, it is imperative to avoid such problems that could then cause security issues, especially without automated static analysis and security tools.
While auditing and studying some code I noticed this code
gno/gnovm/pkg/gnolang/debugger.go
Lines 227 to 240 in 2838ad1
and notice that we create a listener bound to an address and immediately accept a single connection then discard the listener.
Please figure out how to singly create the listener once and then retain it and listen to connections on it each time. If this library is to be put to production and debuggers left on, with the very large surface that it has, it is imperative to avoid such problems that could then cause security issues, especially without automated static analysis and security tools.
Kindly cc-ing @jaekwon
The text was updated successfully, but these errors were encountered: