This release of Docker Engine contains partial mitigations for a Git vulnerability
(CVE-2022-39253), and has updated handling of image:tag@digest image references.
The Git vulnerability allows a maliciously crafted Git repository, when used as a
build context, to copy arbitrary filesystem paths into resulting containers/images;
this can occur in both the daemon, and in API clients, depending on the versions and
tools in use.
The mitigations available in this release and in other consumers of the daemon API
are partial and only protect users who build a Git URL context (e.g. git+protocol://).
As the vulnerability could still be exploited by manually run Git commands that interact
with and check out submodules, users should immediately upgrade to a patched version of
Git to protect against this vulernability. Further details are available from the GitHub
blog ("Git security vulnerabilities announced").
Client
Added a mitigation for CVE-2022-39253,
when using the classic Builder with a Git URL as the build context.
Daemon
Updated handling of image:tag@digest references. When pulling an image using
the image:tag@digest ("pull by digest"), image resolution happens through
the content-addressable digest and the image and tag are not used. While
this is expected, this could lead to confusing behavior, and could potentially
be exploited through social engineering to run an image that is already present
in the local image store. Docker now checks if the digest matches the repository
name used to pull the image, and otherwise will produce an error.
Builder
Updated handling of image:tag@digest references. Refer to the "Daemon" section
above for details.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps github.com/docker/docker from 20.10.17+incompatible to 20.10.20+incompatible.
Release notes
Sourced from github.com/docker/docker's releases.
... (truncated)
Commits
03df974
Merge pull request #6 from moby/ghsa-ambiguous-pull-by-digest3adff51
Merge pull request #9 from moby/update_buildkitd7c33ad
Merge pull request #8 from moby/20.10_fix_git_file_leak2f3bf18
[20.10] vendor moby/buildkit v0.8.3-31-gc01493724b9902b
Validate digest in repo for pull by digestc0d1188
builder: make git config isolation opt-in9f5f3ab
builder: isolate git from local system10db4c2
builder: explicitly set CWD for all git commands8816c3c
builder: modernize TestCheckoutGitc964641
Merge pull request #44122 from thaJeztah/20.10_bump_buildkitDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)