Skip to content

Commit ba3b60d

Browse files
committed
Merge branch 'Arvanaghi-master'
Merging the request that prevents a requester from signing their own request.
2 parents 80ee634 + 9b4c20b commit ba3b60d

1 file changed

Lines changed: 10 additions & 0 deletions

File tree

sign_certd.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -590,6 +590,16 @@ func (h *certRequestHandler) signOrRejectRequest(rw http.ResponseWriter, req *ht
590590
http.Error(rw, "Signature was valid, but cert didn't match.", http.StatusBadRequest)
591591
return
592592
}
593+
594+
requesterFp := ssh_ca_util.MakeFingerprint(requestedCert.Key.Marshal())
595+
596+
// Make sure the key attempting to sign the request is not the same as the key in the CSR
597+
if signerFp == requesterFp {
598+
err = errors.New("Signed by the same key as key in request")
599+
http.Error(rw, fmt.Sprintf("%v", err), http.StatusBadRequest)
600+
return
601+
}
602+
593603
log.Printf("Signature for serial %d id %s received from %s (%s) @ %s and determined valid\n",
594604
signedCert.Serial, requestID, signerFp, envConfig.AuthorizedSigners[signerFp], req.RemoteAddr)
595605
if req.Method == "POST" {

0 commit comments

Comments
 (0)