| Package | Affected versions | Patched versions |
|---|---|---|
| github.com/fission/fission | < 1.25.0 | 1.25.0 |
HTTPTriggerSpec.Validate() validated Methods, FunctionReference, Host, IngressConfig, and CorsConfig, but silently skipped RelativeURL and Prefix. Those two fields were validated at the CLI level only
(pkg/fission-cli/cmd/httptrigger/create.go:83). The post-CRD-modernization webhook for HTTPTrigger was retired in favor of API-server CEL — and CEL had no rules on those fields either — so an HTTPTrigger created via kubectl apply or
a direct Kubernetes REST API call bypassed every URL-level check.
A tenant with HTTPTrigger create permission could therefore create triggers whose RelativeURL or Prefix:
/,/ (claiming the entire router root),.. traversal segments (e.g. /api/../admin),/router-healthz, /readyz, /_version, /auth/login,/fission-function/<ns>/<name>.github.com/fission/fission647c141pkg/apis/core/v1/validation.go:HTTPTriggerSpec.Validate (and the missing CEL on HTTPTriggerSpec)Fix section (paste into the Fix / Patches field)
Fixed in v1.25.0 by:
0deed6bf) — enforce the path-safety invariants at both admission layers so the API
server's CEL evaluation and the Go-side HTTPTriggerSpec.Validate() agree:
+kubebuilder:validation:XValidation rules on HTTPTriggerSpec (the API server's CEL admission gate, regenerated into crds/v1/fission.io_httptriggers.yaml):
relativeurl or prefix must be non-empty;relativeurl, when set, must start with /, must not be /, must contain no .. segment, must not be in the reserved exact-path set, and must not start with /fission-function/;prefix, when set, the same rules guarded by has(self.prefix).validateTriggerPath helper in pkg/apis/core/v1/validation.go, invoked from HTTPTriggerSpec.Validate(), mirrors the CEL rules so the CLI's early rejection and the router reconciler's status-Condition path match what the API
server admits.Regression coverage: a new TestHTTPTriggerSpecValidate_Path table in pkg/apis/core/v1/validation_validators_test.go exercises every PoC case from the advisory plus literal ..-prefixed-segment positives that must remain allowed.
Running one of these products? Scan your site to see whether it exposes a vulnerable version.
Scan my site free