Product Docs
-
- Overview
- FAQs
- Verifying Images
- How to Use
- Going Distroless
-
-
-
-
-
- Minimal Runtime Images
- Using the Static Base Image
- Software Versions
- Chainguard Security Advisories & Diff API
- Image Digests
- Up-to-date Images with Digestabot
- Migrating Go Applications to Chainguard
- Reproducible Dockerfiles with Frizbee and Digestabot
- Why our images have Low-to-No CVEs
- Reproducibility and Chainguard Images
- Debugging Distroless Containers
- Debugging with Kubectl and CDebug
- Migrate Node.js Applications to Chainguard
- Migrate Java Applications to Chainguard
- How Images are Tested
- Product Release Lifecycle
- Debugging
-
-
-
-
- chainctl
- chainctl auth
- chainctl auth configure-docker
- chainctl auth login
- chainctl auth logout
- chainctl auth status
- chainctl auth token
- chainctl config
- chainctl config edit
- chainctl config reset
- chainctl config save
- chainctl config set
- chainctl config unset
- chainctl config validate
- chainctl config view
- chainctl events
- chainctl events subscriptions
- chainctl events subscriptions create
- chainctl events subscriptions delete
- chainctl events subscriptions list
- chainctl iam
- chainctl iam account-associations
- chainctl iam account-associations check
- chainctl iam account-associations check aws
- chainctl iam account-associations check gcp
- chainctl iam account-associations describe
- chainctl iam account-associations set
- chainctl iam account-associations set aws
- chainctl iam account-associations set gcp
- chainctl iam account-associations unset
- chainctl iam account-associations unset aws
- chainctl iam account-associations unset gcp
- chainctl iam folders
- chainctl iam folders delete
- chainctl iam folders describe
- chainctl iam folders list
- chainctl iam folders update
- chainctl iam identities
- chainctl iam identities create
- chainctl iam identities create github
- chainctl iam identities create gitlab
- chainctl iam identities delete
- chainctl iam identities describe
- chainctl iam identities list
- chainctl iam identities update
- chainctl iam identity-providers
- chainctl iam identity-providers create
- chainctl iam identity-providers delete
- chainctl iam identity-providers list
- chainctl iam identity-providers update
- chainctl iam invites
- chainctl iam invites create
- chainctl iam invites delete
- chainctl iam invites list
- chainctl iam organizations
- chainctl iam organizations delete
- chainctl iam organizations describe
- chainctl iam organizations list
- chainctl iam role-bindings
- chainctl iam role-bindings create
- chainctl iam role-bindings delete
- chainctl iam role-bindings list
- chainctl iam role-bindings update
- chainctl iam roles
- chainctl iam roles capabilities
- chainctl iam roles capabilities list
- chainctl iam roles create
- chainctl iam roles delete
- chainctl iam roles list
- chainctl iam roles update
- chainctl images
- chainctl images diff
- chainctl images list
- chainctl images repos
- chainctl images repos list
- chainctl update
- chainctl version
Open Source
Education
How to use Chainguard Security Advisories and the Diff API
Tools used in this video
Related Article
See How to Use Chainguard Security Advisories for a written article covering similar content to this video.
Transcript
0:05 So a question we sometimes get asked is how to investigate vulnerabilities found in Chainguard images and how you can figure out if there’s a fix
0:15 so thanks to a new website and some new tooling this is pretty
0:19 straightforward so in this example we’re
0:21 going to look at a slightly old golang
0:23 image and if we run Docker Scout or a
0:26 similar scanner we do get some results
0:31 so you can see in this image we found 11
0:35 vulnerabilities and we’re going to
0:37 investigate this one 2023
0:42 44487 and we can see we’re interested in
0:45 the nghttp2 package so I’m going to
0:50 copy that and I’m going to move to a
0:56 browser and here I have opened images.chainguard.dev/security and I can search by
1:02 that cve so that comes up. If I click
1:06 into this I can filter by packages so if
1:09 I put in nghttp2
1:12 we can see that comes up
1:15 here and interestingly we can see see
1:19 the status is fixed it’s fixed in
1:21 version 1.57 point0 r0 um and this
1:25 happened a while ago on October the 11th
1:29 so now now I’m fairly
1:34 sure that that vulnerability will be
1:36 gone because the image will have been
1:37 updated and indeed there we see there’s
1:40 no vulnerabilities detected but we can
1:42 do bit more than that with a new diff
1:44 API we can actually look into the
1:46 differences between the 121.2 image and
1:49 the 121.5 image um this will take a
1:53 little moment to run note that I’ve
1:55 piped this through jq to format the
1:57 output and I’ve also saved it out to
1:59 file um so we can scroll through it and
2:02 see the output and look at it a little
2:04 bit easier so if I open this
2:08 file and we look at the bottom what we
2:11 have here is a list of the
2:13 vulnerabilities that have been removed
2:15 between the two versions of the image so
2:18 in this list I should see that 4487
2:20 indeed it’s here we’re saying this cve was
2:24 addressed and also if we search for NG
2:28 http2 we find it here and we see the
2:32 version has been updated so in the in
2:36 this version of the image we’re running
2:39 on a newer version of nghttp2
2:42 which is why that vulnerability has gone
2:44 away so there you have it that’s how you
2:47 can investigate CVEs and find out how
2:50 they were addressed and Chainguard
2:51 images please do give this a go and let
2:54 me know how you get on
Last updated: 2024-01-18 15:21