Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multiple CVE detected in latest "helm-chart-4.1.0 | ingress-nginx/controller:v1.2.0" release #8520

Closed
DataMinded opened this issue Apr 29, 2022 · 24 comments
Labels
kind/bug Categorizes issue or PR as related to a bug. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. triage/accepted Indicates an issue or PR is ready to be actively worked on.

Comments

@DataMinded
Copy link

DataMinded commented Apr 29, 2022

Issue Details
Multiple CVE detected in latest "helm-chart-4.1.0" release

Image k8s.gcr.io/ingress-nginx/controller@sha256:d8196e3bc1e72547c5dec66d6556c0ff92a23f6d0919b206be170bc90d5f918
ID sha256:04fcc70194086eb9118c8a015dc455c0f7f0249b10346f8b03f97d86ae99fb0c
OS distribution Alpine Linux v3.14
OS release3.14.6
Digest sha256:d8196e3bc1e72547c5dec66d6556c0ff92a23f6d0919b206be170bc90d5f9185

Severity : critical
Package : go
Description : go version 1.17.6 has 5 vulnerabilities

CVE-2022-23806
Fixed in: 1.17.7, 1.16.14

CVE-2022-24675
Fixed in: 1.17.9, 1.8.1

CVE-2022-24921
Fixed in: 1.17.8, 1.16.15

CVE-2022-23772
Fixed in: 1.17.7, 1.16.14

CVE-2022-23773
Fixed in: 1.17.7, 1.16.14


Severity : high
Package : ncurses
Description : ncurses (used in ncurses-libs, ncurses-terminfo-base) version 6.2_p20210612-r0 has 1 vulnerability

CVE-2022-29458
Fixed in: 6.3_p20211120-r0


Severity : low
Package : curl
Description : curl (used in libcurl, curl) version 7.79.1-r0 has 4 vulnerabilities

CVE-2022-27774
Fixed in: 7.79.1-r1

CVE-2022-27775
Fixed in: 7.79.1-r1

CVE-2022-27776
Fixed in: 7.79.1-r1

CVE-2022-22576
Fixed in: 7.79.1-r1

Can someone help me out so we can get a new release , seems a few packages need bumping, help appreciated.

@DataMinded DataMinded added the kind/bug Categorizes issue or PR as related to a bug. label Apr 29, 2022
@k8s-ci-robot k8s-ci-robot added needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. needs-priority labels Apr 29, 2022
@longwuyuan
Copy link
Contributor

Grype confirms it. Please wait till maintainers schedule the update ;

✔ Vulnerability DB [updated]
✔ Pulled image
✔ Loaded image
✔ Parsed image
✔ Cataloged packages [120 packages]
✔ Scanned image [14 vulnerabilities]
[0023] WARN some package(s) are missing CPEs. This may result in missing vulnerabilities. You may autogenerate these using: --add-cpes-if-none
NAME INSTALLED FIXED-IN TYPE VULNERABILITY SEVERITY
curl 7.79.1-r0 7.79.1-r1 apk CVE-2022-27774 Unknown
curl 7.79.1-r0 7.79.1-r1 apk CVE-2022-27775 Unknown
curl 7.79.1-r0 7.79.1-r1 apk CVE-2022-22576 Unknown
curl 7.79.1-r0 7.79.1-r1 apk CVE-2022-27776 Unknown
google.golang.org/protobuf v1.28.0 go-module CVE-2021-22570 High
google.golang.org/protobuf v1.28.0 go-module CVE-2015-5237 High
libcurl 7.79.1-r0 7.79.1-r1 apk CVE-2022-22576 Unknown
libcurl 7.79.1-r0 7.79.1-r1 apk CVE-2022-27774 Unknown
libcurl 7.79.1-r0 7.79.1-r1 apk CVE-2022-27775 Unknown
libcurl 7.79.1-r0 7.79.1-r1 apk CVE-2022-27776 Unknown

/triage-accepted
/priority important-soon

@k8s-ci-robot k8s-ci-robot added priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. and removed needs-priority labels Apr 29, 2022
@longwuyuan
Copy link
Contributor

/triage accepted

@k8s-ci-robot k8s-ci-robot added triage/accepted Indicates an issue or PR is ready to be actively worked on. and removed needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Apr 29, 2022
@rikatz
Copy link
Contributor

rikatz commented May 10, 2022

We are going to make a new release to fix some bugs, and this will enter in this new release.

@tomasAlabes
Copy link

@rikatz could you confirm if the latest release 1.3.0 / 4.2.0 contain these fixes? I couldn't find any CVE reference in the release notes.

@DataMinded
Copy link
Author

DataMinded commented Jul 20, 2022

@rikatz @tomasAlabes
The new 4.2.0 | v1.3.0 definitly looks better, but there is a new CVE-2022-30065 in there.

In short : busybox (used in ssl_client, busybox) version 1.35.0-r14 has 1 vulnerability,
bumping to busybox 1.35.0-r15 should fix the problem.

Who should we notify for a new build ?
Would be nice to see a perfect vulnerabilities score in prisma cloud for this image

@tao12345666333
Copy link
Member

@DataMinded Which version of Alpine Linux contains this fix?

@DataMinded
Copy link
Author

@tao12345666333

I found this alpinelinux/docker-alpine#264 (comment) which says the CVE-2022-30065 is still present in the 3.16.1 image

also as per this alpinelinux/docker-alpine#264 (comment)

alpine 3.16.1 is supposed to fix GHSA-gq73-rh3m-3php according to the release notes : https://www.alpinelinux.org/posts/Alpine-3.16.1-released.html

but still may be present . I am unsure about 3.16.1 having a fix

@longwuyuan
Copy link
Contributor

longwuyuan commented Jul 21, 2022

% grype `k -n ingress-nginx get po ingress-nginx-controller-6bf7bc7f94-8f5s8 -o yaml |  grep -i registry | grep -v imageID | awk '{print $2}'`                                                                                                      
 ✔ Vulnerability DB        [updated]                                                                                                                                                                                                                
 ✔ Parsed image                                                                                                                                                                                                                                     
 ✔ Cataloged packages      [120 packages]                                                                                                                                                                                                           
 ✔ Scanned image           [5 vulnerabilities]                                                                                                                                                                                                      
[0031]  WARN some package(s) are missing CPEs. This may result in missing vulnerabilities. You may autogenerate these using: --add-cpes-if-none                                                                                                     
NAME                        INSTALLED   FIXED-IN    TYPE       VULNERABILITY   SEVERITY                                                                                                                                                             
busybox                     1.35.0-r14  1.35.0-r15  apk        CVE-2022-30065  High                                                                                                                                                                 
google.golang.org/protobuf  v1.28.0                 go-module  CVE-2015-5237   High                                                                                                                                                                 
google.golang.org/protobuf  v1.28.0                 go-module  CVE-2021-22570  High                                                                                                                                                                 
ssl_client                  1.35.0-r14  1.35.0-r15  apk        CVE-2022-30065  High         
% docker run  -it alpine:3.16.1 sh   
/ # cat /etc/os-release 
NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.16.1
PRETTY_NAME="Alpine Linux v3.16"
HOME_URL="https://alpinelinux.org/"
BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues"
/ # apk list | grep -i busybox
busybox-1.35.0-r15 x86_64 {busybox} (GPL-2.0-only) [installed]
ssl_client-1.35.0-r15 x86_64 {busybox} (GPL-2.0-only) [installed]
/

@LianwMS
Copy link

LianwMS commented Jul 25, 2022

I also found that NEW version 1.3.0 is impacted by vulnerability of busybox with CVE-2022-30065

@longwuyuan
Copy link
Contributor

We have updated to alpine v3.16.1 with patches for busybox & ssl_client. It will be released later.

@DataMinded
Copy link
Author

We have updated to alpine v3.16.1 with patches for busybox & ssl_client. It will be released later.

Sorry to ask like cause u guys are probably busy with other stuff, but
Is this not an version bump release hotfix ?

As it concerns a security issue would it not be the best path for a fast release with a fix. (patch/hotfix release , not sure what the correct terminology is here)
as for new features I understand because of the code freeze, there is a point for it, but as a security fix we should try to get it out as soon as its available.

Just trying to better understand the working method here. Thnx in advance

@longwuyuan
Copy link
Contributor

@DataMinded true, security based fixes should be sooner than later.

In this case, busybox itself is not directly in play while using ingress objects and also ssl_client is used internally to the controller. So this is acceptable risk in the context of the timelines feasible/possible for releasing binaries with patched bits for those 2 CVEs.

The situation now is that the already complicated/manual release process gets even more complicated (with cherrypicking needed for tons of stuff etc). not to mention lack of developer time.

@DataMinded
Copy link
Author

@DataMinded true, security based fixes should be sooner than later.

In this case, busybox itself is not directly in play while using ingress objects and also ssl_client is used internally to the controller. So this is acceptable risk in the context of the timelines feasible/possible for releasing binaries with patched bits for those 2 CVEs.

The situation now is that the already complicated/manual release process gets even more complicated (with cherrypicking needed for tons of stuff etc). not to mention lack of developer time.

@longwuyuan Thnx allot for the explanation. Indeed I do not know the full context to make that distinction, but that sounds like a good reasoning.

@kgusarov
Copy link

kgusarov commented Aug 2, 2022

@DataMinded true, security based fixes should be sooner than later.

In this case, busybox itself is not directly in play while using ingress objects and also ssl_client is used internally to the controller. So this is acceptable risk in the context of the timelines feasible/possible for releasing binaries with patched bits for those 2 CVEs.

The situation now is that the already complicated/manual release process gets even more complicated (with cherrypicking needed for tons of stuff etc). not to mention lack of developer time.

Thanks! I understand your pain in cherrypicking stuff. Hope to see fixes soon.

P.S. From time to time we experience pain (especially in Aliyun Cloud) when Security Center blindly creates Critical Security Incident based on the findings and we have to patch everything ASAP (or at least describe, why busybox won't affect us and provide at least some virtual ETA to fix).

@longwuyuan
Copy link
Contributor

Yeah, my guess is that the ssl_client vulnerability is causing the busybox CVE as well but not absolutely sure. Because busybox itself is a bunch of stuff. openssl is patches and this CVE points at the ssl_client. So my guess is that the ssl_client binaries do not initiate any connection to out-of-cluster destinations. Unless someone tries to connect to something on internet from inside the controller (like a download instruction etc)

Understood the cloud problem. We aim to release as soon as feasible.

@DataMinded
Copy link
Author

Just as a note, the 4.2.1 release does not contain a fix for this

@longwuyuan
Copy link
Contributor

Yes, it will appear in app version upgrade. This one is just chart version upgrade.

@LianwMS
Copy link

LianwMS commented Aug 23, 2022

Hi @longwuyuan May I know when will the fix version be released?

@DataMinded
Copy link
Author

Just as a note, Release 4.2.2 & 4.2.3 still do NOT contain a fix for this CVE

@longwuyuan
Copy link
Contributor

if everything looks good, there will be a discussion on making the release this week or next week.

@LianwMS
Copy link

LianwMS commented Sep 2, 2022

Any updated?

@longwuyuan
Copy link
Contributor

longwuyuan commented Sep 2, 2022 via email

@DataMinded
Copy link
Author

The controller-v1.3.1 does not contain any CVE's according to Prisma Cloud , Yay
Now we wait for a chart release

@DataMinded
Copy link
Author

Guess we can close this issue now,

controller-v1.3.1 / helm-chart-4.2.5 resolves the CVE's addressed in OP

Thanks for all the help & comments

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Categorizes issue or PR as related to a bug. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. triage/accepted Indicates an issue or PR is ready to be actively worked on.
Projects
None yet
Development

No branches or pull requests

8 participants