First published: Wed Oct 19 2022(Updated: )
Flux controllers within the affected versions range are vulnerable to a denial of service attack. Users that have permissions to change Flux’s objects, either through a Flux source or directly within a cluster, can provide invalid data to fields `.spec.interval` or `.spec.timeout` (and structured variations of these fields), causing the entire object type to stop being processed. The issue has two root causes: a) the Kubernetes type `metav1.Duration` not being fully compatible with the Go type `time.Duration` as explained on [upstream report](https://github.com/kubernetes/apimachinery/issues/131); b) lack of validation within Flux to restrict allowed values. ### Workarounds Admission controllers can be employed to restrict the values that can be used for fields `.spec.interval` and `.spec.timeout`, however upgrading to the latest versions is still the recommended mitigation. ### Credits This issue was reported by Alexander Block (@codablock) through the Flux security mailing list (as [recommended](https://fluxcd.io/security/#report-a-vulnerability)). ### For more information If you have any questions or comments about this advisory: - Open an issue in any of the affected repositories. - Contact us at the CNCF Flux channel. ### References - https://github.com/kubernetes/apimachinery/issues/131
Credit: security-advisories@github.com security-advisories@github.com
Affected Software | Affected Version | How to fix |
---|---|---|
Fluxcd Flux2 | >=0.1.0<0.35.0 | |
Fluxcd Helm-controller | >=0.0.2<0.24.0 | |
Fluxcd Helm-controller | =0.0.1-alpha1 | |
Fluxcd Helm-controller | =0.0.1-alpha2 | |
Fluxcd Helm-controller | =0.0.1-beta1 | |
Fluxcd Helm-controller | =0.0.1-beta2 | |
Fluxcd Helm-controller | =0.0.1-beta3 | |
Fluxcd Helm-controller | =0.0.1-beta4 | |
Fluxcd Image-automation-controller | >=0.1.0<0.26.0 | |
Fluxcd Image-reflector-controller | >=0.1.0<0.22.0 | |
Fluxcd Kustomize-controller | >=0.0.2<0.29.0 | |
Fluxcd Kustomize-controller | =0.0.1-alpha1 | |
Fluxcd Kustomize-controller | =0.0.1-alpha2 | |
Fluxcd Kustomize-controller | =0.0.1-alpha3 | |
Fluxcd Kustomize-controller | =0.0.1-alpha4 | |
Fluxcd Kustomize-controller | =0.0.1-alpha5 | |
Fluxcd Kustomize-controller | =0.0.1-alpha6 | |
Fluxcd Kustomize-controller | =0.0.1-alpha7 | |
Fluxcd Kustomize-controller | =0.0.1-alpha8 | |
Fluxcd Kustomize-controller | =0.0.1-alpha9 | |
Fluxcd Kustomize-controller | =0.0.1-beta1 | |
Fluxcd Kustomize-controller | =0.0.1-beta2 | |
Fluxcd Notification-controller | >=0.0.2<0.27.0 | |
Fluxcd Notification-controller | =0.0.1-alpha1 | |
Fluxcd Notification-controller | =0.0.1-alpha2 | |
Fluxcd Notification-controller | =0.0.1-beta1 | |
Fluxcd Source-controller | >=0.0.2<0.30.0 | |
Fluxcd Source-controller | =0.0.1-alpha1 | |
Fluxcd Source-controller | =0.0.1-alpha2 | |
Fluxcd Source-controller | =0.0.1-alpha3 | |
Fluxcd Source-controller | =0.0.1-alpha4 | |
Fluxcd Source-controller | =0.0.1-alpha5 | |
Fluxcd Source-controller | =0.0.1-alpha6 | |
Fluxcd Source-controller | =0.0.1-beta1 | |
Fluxcd Source-controller | =0.0.1-beta2 | |
go/github.com/fluxcd/source-controller/api | <0.30.0 | 0.30.0 |
go/github.com/fluxcd/notification-controller/api | <0.28.0 | 0.28.0 |
go/github.com/fluxcd/kustomize-controller/api | <0.30.0 | 0.30.0 |
go/github.com/fluxcd/image-reflector-controller/api | <0.22.1 | 0.22.1 |
go/github.com/fluxcd/image-automation-controller/api | <0.26.1 | 0.26.1 |
go/github.com/fluxcd/helm-controller/api | <0.26.0 | 0.26.0 |
go/github.com/fluxcd/image-reflector-controller | >=0.1.0<0.22.0 | 0.22.0 |
go/github.com/fluxcd/image-automation-controller | >=0.1.0<0.26.0 | 0.26.0 |
go/github.com/fluxcd/notification-controller | >=0.0.1-alpha-1<0.27.0 | 0.27.0 |
go/github.com/fluxcd/helm-controller | >=0.0.1-alpha-1<0.24.0 | 0.24.0 |
go/github.com/fluxcd/kustomize-controller | >=0.0.1-alpha-1<0.29.0 | 0.29.0 |
go/github.com/fluxcd/source-controller | >=0.0.1-alpha-1<0.30.0 | 0.30.0 |
go/github.com/fluxcd/flux2 | >=0.1.0<0.35.0 | 0.35.0 |
Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.
CVE-2022-39272 is a vulnerability in Flux, an open and extensible continuous delivery solution for Kubernetes, that allows users with permissions to change Flux objects to provide invalid data and trigger a Denial of Service (DoS) attack.
The severity of CVE-2022-39272 is medium with a CVSS score of 4.3.
Versions of Flux prior to 0.35.0 are affected by CVE-2022-39272.
To fix the CVE-2022-39272 vulnerability, it is recommended to update Flux to version 0.35.0 or newer.
More information about CVE-2022-39272 can be found in the advisory on the Flux GitHub security advisories page: https://github.com/fluxcd/flux2/security/advisories/GHSA-f4p5-x4vc-mh4v