diff --git a/cmd/csaf_provider/config.go b/cmd/csaf_provider/config.go index 826b7bf..5d29b61 100644 --- a/cmd/csaf_provider/config.go +++ b/cmd/csaf_provider/config.go @@ -11,6 +11,7 @@ package main import ( "fmt" "io" + "net/url" "os" "strings" @@ -262,6 +263,14 @@ func loadConfig() (*config, error) { if cfg.CanonicalURLPrefix == "" { cfg.CanonicalURLPrefix = "https://" + os.Getenv("SERVER_NAME") } + // Check if canonical url prefix is invalid + parsedURL, err := url.ParseRequestURI(cfg.CanonicalURLPrefix) + if err != nil { + return nil, err + } + if parsedURL.Scheme != "https" && parsedURL.Scheme != "http" { + return nil, fmt.Errorf("invalid canonical URL: %q", cfg.CanonicalURLPrefix) + } if cfg.TLPs == nil { cfg.TLPs = []tlp{tlpCSAF, tlpWhite, tlpGreen, tlpAmber, tlpRed}