OSV 1.4.0 · github-reviewed · 修改于 2026-07-29 04:16
发布时间
2026-07-29 04:16
GitHub 审查时间
2026-07-29 04:16
NVD 发布时间
2026-06-11 02:17
源文件
advisories/github-reviewed/2026/07/GHSA-vchh-r53j-8mpw/GHSA-vchh-r53j-8mpw.json
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:
0deed6bfHTTPTriggerSpec.Validate()+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.