Commit Graph

75 Commits

Author SHA1 Message Date
Sebastiaan van Stijn 34441c8e4a
Update to go 1.19.2 to address CVE-2022-2879, CVE-2022-2880, CVE-2022-41715
From the mailing list:

We have just released Go versions 1.19.2 and 1.18.7, minor point releases.

These minor releases include 3 security fixes following the security policy:

- archive/tar: unbounded memory consumption when reading headers

  Reader.Read did not set a limit on the maximum size of file headers.
  A maliciously crafted archive could cause Read to allocate unbounded
  amounts of memory, potentially causing resource exhaustion or panics.
  Reader.Read now limits the maximum size of header blocks to 1 MiB.

  Thanks to Adam Korczynski (ADA Logics) and OSS-Fuzz for reporting this issue.

  This is CVE-2022-2879 and Go issue https://go.dev/issue/54853.

- net/http/httputil: ReverseProxy should not forward unparseable query parameters

  Requests forwarded by ReverseProxy included the raw query parameters from the
  inbound request, including unparseable parameters rejected by net/http. This
  could permit query parameter smuggling when a Go proxy forwards a parameter
  with an unparseable value.

  ReverseProxy will now sanitize the query parameters in the forwarded query
  when the outbound request's Form field is set after the ReverseProxy.Director
  function returns, indicating that the proxy has parsed the query parameters.
  Proxies which do not parse query parameters continue to forward the original
  query parameters unchanged.

  Thanks to Gal Goldstein (Security Researcher, Oxeye) and
  Daniel Abeles (Head of Research, Oxeye) for reporting this issue.

  This is CVE-2022-2880 and Go issue https://go.dev/issue/54663.

- regexp/syntax: limit memory used by parsing regexps

  The parsed regexp representation is linear in the size of the input,
  but in some cases the constant factor can be as high as 40,000,
  making relatively small regexps consume much larger amounts of memory.

  Each regexp being parsed is now limited to a 256 MB memory footprint.
  Regular expressions whose representation would use more space than that
  are now rejected. Normal use of regular expressions is unaffected.

  Thanks to Adam Korczynski (ADA Logics) and OSS-Fuzz for reporting this issue.

  This is CVE-2022-41715 and Go issue https://go.dev/issue/55949.

View the release notes for more information: https://go.dev/doc/devel/release#go1.19.2

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-10-04 21:27:06 +02:00
Milas Bowman 97a9d02dda ci: update docs repo path
The Docker docs now live at `docker/docs` instead of
`docker/docker.github.io`.

Signed-off-by: Milas Bowman <milas.bowman@docker.com>
2022-09-29 13:09:25 -04:00
Laura Brehm c6109b2e5c
Add Makefile, buildx target to ensure root and e2e go.mod are kept in sync
Signed-off-by: Laura Brehm <laurabrehm@hey.com>
2022-09-27 02:35:57 +02:00
Milas Bowman f72a604cbd ci: upgrade golangci-lint
Need a compatible version for 1.19

Signed-off-by: Milas Bowman <milas.bowman@docker.com>
2022-09-06 17:59:11 -04:00
Milas Bowman e81168197a ci: upgrade to Go 1.19.1
Go released 1.18.6 + 1.19.1 today which fix a couple
CVEs. (`golang.org/x/net` also has a related fix.)

This jumps from 1.18.5 -> 1.19.1 since it was on the
to-do list regardless :)

Signed-off-by: Milas Bowman <milas.bowman@docker.com>
2022-09-06 17:46:07 -04:00
CrazyMax 69651136cf
Makefile: mutualize local and Dockerfile build opts (#9776)
Ensure that everything works nicely for `docker-ce-packaging`
as well as local development.

Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-08-26 16:06:24 -04:00
CrazyMax 0ec04058cd
ci: fix checksums file
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-08-14 22:29:57 +02:00
CrazyMax 5ec20296e4
Better sandboxed workflow and enhanced cross compilation
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-08-12 15:05:58 +02:00
Sebastiaan van Stijn 92f32b5c79
ci: use latest stable dockerfile syntax & rename docs Dockerfile (#9711)
* update dockerfiles to use latest stable syntax

Some Dockerfiles were pinned to a minor release, which meant they
wouldn't be updated to get the latest stable syntax (and fixes),
and one Dockerfile used the "labs" variant to use the HEREDOC syntax,
which has now been promoted to the stable syntax.

* docs: rename Dockerfile

There's no other Dockerfiles in the same path, so the "docs"
prefix was redundant.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-08-03 16:36:13 -04:00
Milas Bowman b1e4cde2da build: bump to Go 1.18.5
Can give 1.19 a bit of time before we upgrade ;)

Signed-off-by: Milas Bowman <milas.bowman@docker.com>
2022-08-02 13:40:37 -04:00
Guillaume Lours 4eb56fd840
use Google addlicense instead of kunalkushwaha/ltag
Signed-off-by: Guillaume Lours <guillaume.lours@docker.com>
2022-07-26 15:13:34 +02:00
Ulysses Souza 2e96829607 Add gocritic to linters
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2022-07-13 19:33:03 +02:00
Sebastiaan van Stijn d54cd0445e
update go to 1.18.4
go1.18.4 (released 2022-07-12) includes security fixes to the compress/gzip,
encoding/gob, encoding/xml, go/parser, io/fs, net/http, and path/filepath
packages, as well as bug fixes to the compiler, the go command, the linker,
the runtime, and the runtime/metrics package. See the Go 1.18.4 milestone on the
issue tracker for details:

https://github.com/golang/go/issues?q=milestone%3AGo1.18.4+label%3ACherryPickApproved

This update addresses:

CVE-2022-1705, CVE-2022-1962, CVE-2022-28131, CVE-2022-30630, CVE-2022-30631,
CVE-2022-30632, CVE-2022-30633, CVE-2022-30635, and CVE-2022-32148.

Full diff: https://github.com/golang/go/compare/go1.18.3...go1.18.4

From the security announcement;
https://groups.google.com/g/golang-announce/c/nqrv9fbR0zE

We have just released Go versions 1.18.4 and 1.17.12, minor point releases. These
minor releases include 9 security fixes following the security policy:

- net/http: improper sanitization of Transfer-Encoding header

  The HTTP/1 client accepted some invalid Transfer-Encoding headers as indicating
  a "chunked" encoding. This could potentially allow for request smuggling, but
  only if combined with an intermediate server that also improperly failed to
  reject the header as invalid.

  This is CVE-2022-1705 and https://go.dev/issue/53188.

- When `httputil.ReverseProxy.ServeHTTP` was called with a `Request.Header` map
  containing a nil value for the X-Forwarded-For header, ReverseProxy would set
  the client IP as the value of the X-Forwarded-For header, contrary to its
  documentation. In the more usual case where a Director function set the
  X-Forwarded-For header value to nil, ReverseProxy would leave the header
  unmodified as expected.

  This is https://go.dev/issue/53423 and CVE-2022-32148.

  Thanks to Christian Mehlmauer for reporting this issue.

- compress/gzip: stack exhaustion in Reader.Read

  Calling Reader.Read on an archive containing a large number of concatenated
  0-length compressed files can cause a panic due to stack exhaustion.

  This is CVE-2022-30631 and Go issue https://go.dev/issue/53168.

- encoding/xml: stack exhaustion in Unmarshal

  Calling Unmarshal on a XML document into a Go struct which has a nested field
  that uses the any field tag can cause a panic due to stack exhaustion.

  This is CVE-2022-30633 and Go issue https://go.dev/issue/53611.

- encoding/xml: stack exhaustion in Decoder.Skip

  Calling Decoder.Skip when parsing a deeply nested XML document can cause a
  panic due to stack exhaustion. The Go Security team discovered this issue, and
  it was independently reported by Juho Nurminen of Mattermost.

  This is CVE-2022-28131 and Go issue https://go.dev/issue/53614.

- encoding/gob: stack exhaustion in Decoder.Decode

  Calling Decoder.Decode on a message which contains deeply nested structures
  can cause a panic due to stack exhaustion.

  This is CVE-2022-30635 and Go issue https://go.dev/issue/53615.

- path/filepath: stack exhaustion in Glob

  Calling Glob on a path which contains a large number of path separators can
  cause a panic due to stack exhaustion.

  Thanks to Juho Nurminen of Mattermost for reporting this issue.

  This is CVE-2022-30632 and Go issue https://go.dev/issue/53416.

- io/fs: stack exhaustion in Glob

  Calling Glob on a path which contains a large number of path separators can
  cause a panic due to stack exhaustion.

  This is CVE-2022-30630 and Go issue https://go.dev/issue/53415.

- go/parser: stack exhaustion in all Parse* functions

  Calling any of the Parse functions on Go source code which contains deeply
  nested types or declarations can cause a panic due to stack exhaustion.

  Thanks to Juho Nurminen of Mattermost for reporting this issue.

  This is CVE-2022-1962 and Go issue https://go.dev/issue/53616.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-07-13 12:40:24 +02:00
CrazyMax 0a53d93338
ci: release workflow to open a PR on docs repo with latest changes
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-06-24 18:40:08 +02:00
Sebastiaan van Stijn d2639a8638
update golang to 1.18.3
go1.18.3 (released 2022-06-01) includes security fixes to the crypto/rand,
crypto/tls, os/exec, and path/filepath packages, as well as bug fixes to the
compiler, and the crypto/tls and text/template/parse packages. See the Go
1.18.3 milestone on our issue tracker for details:

https://github.com/golang/go/issues?q=milestone%3AGo1.18.3+label%3ACherryPickApproved

Hello gophers,

We have just released Go versions 1.18.3 and 1.17.11, minor point releases.

These minor releases include 4 security fixes following the security policy:

- crypto/rand: rand.Read hangs with extremely large buffers
  On Windows, rand.Read will hang indefinitely if passed a buffer larger than
  1 << 32 - 1 bytes.

  Thanks to Davis Goodin and Quim Muntal, working at Microsoft on the Go toolset,
  for reporting this issue.

  This is [CVE-2022-30634][CVE-2022-30634] and Go issue https://go.dev/issue/52561.
- crypto/tls: session tickets lack random ticket_age_add
  Session tickets generated by crypto/tls did not contain a randomly generated
  ticket_age_add. This allows an attacker that can observe TLS handshakes to
  correlate successive connections by comparing ticket ages during session
  resumption.

  Thanks to GitHub user nervuri for reporting this.

  This is [CVE-2022-30629][CVE-2022-30629] and Go issue https://go.dev/issue/52814.
- `os/exec`: empty `Cmd.Path` can result in running unintended binary on Windows

  If, on Windows, `Cmd.Run`, `cmd.Start`, `cmd.Output`, or `cmd.CombinedOutput`
  are executed when Cmd.Path is unset and, in the working directory, there are
  binaries named either "..com" or "..exe", they will be executed.

  Thanks to Chris Darroch, brian m. carlson, and Mikhail Shcherbakov for reporting
  this.

  This is [CVE-2022-30580][CVE-2022-30580] and Go issue https://go.dev/issue/52574.
- `path/filepath`: Clean(`.\c:`) returns `c:` on Windows

  On Windows, the `filepath.Clean` function could convert an invalid path to a
  valid, absolute path. For example, Clean(`.\c:`) returned `c:`.

  Thanks to Unrud for reporting this issue.

  This is [CVE-2022-29804][CVE-2022-29804] and Go issue https://go.dev/issue/52476.

[CVE-2022-30634]: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-30634
[CVE-2022-30629]: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-30629
[CVE-2022-30580]: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-30580
[CVE-2022-29804]: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-29804

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-06-02 09:56:16 +02:00
Guillaume Lours 71600a52bf
update golang version to 1.18
Signed-off-by: Guillaume Lours <guillaume.lours@docker.com>
2022-05-20 22:13:55 +02:00
Djordje Lukic 125752c127 Update golang to 1.17
Signed-off-by: Djordje Lukic <djordje.lukic@docker.com>
2021-11-04 09:15:46 +01:00
Ulysses Souza 3bf555cbd6 Fix lint make target
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2021-09-20 13:09:11 +02:00
Nicolas De Loof 1ae9b3cb5d
move compose-cli code into docker/compose/v2
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-08-31 19:09:19 +02:00
Nicolas De Loof 3aaec6a554
split compose-cli "docker" and composeV2 cli-plugin release processes
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-05-27 12:46:39 +02:00
Chris Crone d27bda5e1d build: Update golangci-lint
* Replace goling with revive as the former is deprecated

Signed-off-by: Chris Crone <christopher.crone@docker.com>
2021-05-19 15:00:53 +00:00
Chris Crone d543ef3064 build: Include go cache where module cache is used
Signed-off-by: Chris Crone <christopher.crone@docker.com>
2021-05-19 14:59:21 +00:00
Guillaume Tardif 1fce1623ee Cross build & package compose-cli plugin
Signed-off-by: Guillaume Tardif <guillaume.tardif@gmail.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-04-22 17:51:29 +02:00
Chris Crone a12b1dcea0 build: Bump linter, minor fixes
* Bump linter to 1.39.0
* Use dockerfile:1.2 syntax instead of experimental
* Fix typo in GitHub Actions

Signed-off-by: Chris Crone <christopher.crone@docker.com>
2021-04-13 15:19:23 +02:00
Chris Crone 8ecee6edaf deps: Bump Docker, Golang, linter
* Docker 20.10.3
* Golang 1.16
* golangci-lint 1.37.0

Signed-off-by: Chris Crone <christopher.crone@docker.com>
2021-02-18 17:13:15 +01:00
Nicolas De Loof 0e862eeaa7
introduce --resolve-image-digests on config command
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2021-02-18 14:48:28 +01:00
Guillaume Tardif dcd1e30f6a Fix protos target to update new protos folder
Signed-off-by: Guillaume Tardif <guillaume.tardif@gmail.com>
2021-01-19 16:48:54 +01:00
Chris Crone e81ea5b3e5 deps: Bump Golang
Signed-off-by: Chris Crone <christopher.crone@docker.com>
2020-12-24 12:17:14 +01:00
Chris Crone 78190f8346 build: Add containerized go mod tidy
Signed-off-by: Chris Crone <christopher.crone@docker.com>
2020-12-07 12:22:58 +01:00
Chris Crone 56eebade90 build: Fix syntax case
Signed-off-by: Chris Crone <christopher.crone@docker.com>
2020-12-07 12:22:58 +01:00
Chris Crone 7a740aebf5 deps: Bump Go and golangci-lint
* Go to 1.15.5
* golangci-lint 1.33.0

Signed-off-by: Chris Crone <christopher.crone@docker.com>
2020-11-23 15:01:02 +01:00
Guillaume Tardif 3940b98da5 Lint packages behind feature flag : local, e2e
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-11-18 17:18:15 +01:00
Chris Crone c8b8a9f767 deps: Bump
Build:
* Golang 1.15.2 to 1.15.3
* golangci-lint 1.31.0 to 1.32.0
* protoc-gen-go 1.4.1 to 1.4.3

All direct Go dependencies except Azure/azure-sdk-for-go which required
code changes.

Signed-off-by: Chris Crone <christopher.crone@docker.com>
2020-10-27 14:09:38 +01:00
Chris Crone 66c9094e2d build: Remove unneeded mounts
Signed-off-by: Chris Crone <christopher.crone@docker.com>
2020-09-23 19:06:45 +02:00
Chris Crone 5aa14ef911 build: Use BuildKit cache for modules
Signed-off-by: Chris Crone <christopher.crone@docker.com>
2020-09-23 19:06:40 +02:00
Chris Crone d154c41586 Update copyright
Signed-off-by: Chris Crone <christopher.crone@docker.com>
2020-09-22 12:13:00 +02:00
Chris Crone 5ef51722d0 deps: Bump Golang to 1.15.2, golangci-lint to 1.31.0
Signed-off-by: Chris Crone <christopher.crone@docker.com>
2020-09-14 17:23:18 +02:00
Chris Crone 026a833732 deps: Bump Golang to 1.15.1
Signed-off-by: Chris Crone <christopher.crone@docker.com>
2020-09-07 10:45:49 +02:00
Chris Crone 4c6280b0e9 Rename docker/api -> docker/compose-cli
Signed-off-by: Chris Crone <christopher.crone@docker.com>
2020-08-21 17:28:39 +02:00
Djordje Lukic b41d216aaa Add import restrictions check
Signed-off-by: Djordje Lukic <djordje.lukic@docker.com>
2020-08-19 12:31:30 +02:00
Guillaume Lours b4e45bf597 Add a script to check if go.mod and go.sum are up-to-date
Signed-off-by: Guillaume Lours <guillaume.lours@docker.com>
2020-08-18 14:57:53 +02:00
Guillaume Lours 95de770e87 Update or add license header which are not valid
Signed-off-by: Guillaume Lours <guillaume.lours@docker.com>
2020-08-17 16:55:25 +02:00
Guillaume Lours 97a50f8d51 Add CI step to check license headers
Signed-off-by: Guillaume Lours <guillaume.lours@docker.com>
2020-08-17 16:55:25 +02:00
Chris Crone 9d073707b9 deps: Bump Go to 1.15 and Go linter to 1.30
Signed-off-by: Chris Crone <christopher.crone@docker.com>
2020-08-12 10:36:09 +02:00
Christopher Crone 5ea711b586 dockerfile: Fix copyright
Signed-off-by: Christopher Crone <christopher.crone@docker.com>
2020-08-04 13:30:30 +02:00
Christopher Crone 5c947a2082 dockerfile: Update linter
Signed-off-by: Christopher Crone <christopher.crone@docker.com>
2020-07-31 16:17:19 +02:00
Christopher Crone bda30502b8 dependencies: Bump Golang
* Go to 1.14.6

Signed-off-by: Christopher Crone <christopher.crone@docker.com>
2020-07-17 09:37:53 +02:00
Christopher Crone 8ec9b3c77b dependencies: Bump Golang and linter
* Go 1.14.5
* golangci-lint 1.28.3

Signed-off-by: Christopher Crone <christopher.crone@docker.com>
2020-07-16 13:22:12 +02:00
Chris Crone b881f16085
Merge pull request #364 from chris-crone/set-version-docker
Set version when building with Docker
2020-07-08 11:51:00 +02:00
Christopher Crone 539464ed3d build: Set version when building with Docker
Signed-off-by: Christopher Crone <christopher.crone@docker.com>
2020-07-07 15:48:09 +02:00