PublicKey.String(), URLEncoded(), Bytes(), and Equal() all panic when called on a nil receiver. A peer can exploit this by sending a Manifest with a missing network_id or signed_by, causing a nil-pointer panic in the stream-handler goroutine that crashes the daemon.
Add nil-receiver guards to PublicKey methods and an early nil-check
in SignatureAuth.Authorize() so malformed signatures are rejected
with an error rather than crashing the process.
`PublicKey.String()`, `URLEncoded()`, `Bytes()`, and `Equal()` all panic when called on a `nil` receiver. A peer can exploit this by sending a Manifest with a missing `network_id` or `signed_by`, causing a nil-pointer panic in the stream-handler goroutine that crashes the daemon.
Add nil-receiver guards to `PublicKey` methods and an early nil-check
in `SignatureAuth.Authorize()` so malformed signatures are rejected
with an error rather than crashing the process.
brianmcgee
requested review from pinpox 2026-04-08 10:04:30 +00:00
`PublicKey.String()`, `URLEncoded()`, `Bytes()`, and `Equal()` all panic when called on a `nil` receiver. A peer can exploit this by sending a Manifest with a missing `network_id` or `signed_by`, causing a nil-pointer panic in the stream-handler goroutine that crashes the daemon.
Add nil-receiver guards to `PublicKey` methods and an early nil-check
in `SignatureAuth.Authorize()` so malformed signatures are rejected
with an error rather than crashing the process.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
PublicKey.String(),URLEncoded(),Bytes(), andEqual()all panic when called on anilreceiver. A peer can exploit this by sending a Manifest with a missingnetwork_idorsigned_by, causing a nil-pointer panic in the stream-handler goroutine that crashes the daemon.Add nil-receiver guards to
PublicKeymethods and an early nil-checkin
SignatureAuth.Authorize()so malformed signatures are rejectedwith an error rather than crashing the process.
@@ -51,6 +51,10 @@ func NewSignatureAuth(cfg *Config) *SignatureAuth {}func (sf *SignatureAuth) Authorize(sig *model.Signature) error {if sig.NetworkID == nil || sig.SignedBy == nil {what about
sig == nil? (Not sure if that can happen here)d2cdea2584toc7840edca5