Skip to content
Open
1 change: 1 addition & 0 deletions changes/43319-fix-scep-pkiop-url-query-plus-sign
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- Fixed SCEP PKIOperation handler incorrectly decoding base64 `+` characters as spaces.
2 changes: 2 additions & 0 deletions server/mdm/scep/server/transport.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (
"log/slog"
"net/http"
"net/url"
"strings"

"github.com/fleetdm/fleet/v4/server/mdm/scep/kitlogadapter"
"github.com/go-kit/kit/transport"
Expand Down Expand Up @@ -184,6 +185,7 @@ func message(r *http.Request) ([]byte, error) {
return nil, &BadRequestError{Message: fmt.Sprintf("invalid PKIOperation message: %s", msg)}
}

msg2 = strings.ReplaceAll(msg2, " ", "+")
decoded, err := base64.StdEncoding.DecodeString(msg2)
if err != nil {
return nil, &BadRequestError{Message: fmt.Sprintf("failed to base64 decode message: %s: %s", err.Error(), msg2)}
Expand Down
Loading