2021-12-07 14:07:21 -05:00
|
|
|
variable "GO_VERSION" {
|
update golang 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 04:52:34 -04:00
|
|
|
default = "1.18.4"
|
2021-12-07 14:07:21 -05:00
|
|
|
}
|
2021-03-03 02:03:02 -05:00
|
|
|
variable "VERSION" {
|
|
|
|
default = ""
|
|
|
|
}
|
|
|
|
variable "USE_GLIBC" {
|
|
|
|
default = ""
|
|
|
|
}
|
|
|
|
variable "STRIP_TARGET" {
|
|
|
|
default = ""
|
|
|
|
}
|
2021-11-17 11:18:15 -05:00
|
|
|
variable "IMAGE_NAME" {
|
|
|
|
default = "docker-cli"
|
|
|
|
}
|
2021-03-03 02:03:02 -05:00
|
|
|
|
2021-10-11 10:54:09 -04:00
|
|
|
# Sets the name of the company that produced the windows binary.
|
2022-03-27 04:09:50 -04:00
|
|
|
variable "PACKAGER_NAME" {
|
2021-10-11 10:54:09 -04:00
|
|
|
default = ""
|
|
|
|
}
|
|
|
|
|
2021-12-07 14:07:21 -05:00
|
|
|
target "_common" {
|
|
|
|
args = {
|
|
|
|
GO_VERSION = GO_VERSION
|
|
|
|
BUILDKIT_CONTEXT_KEEP_GIT_DIR = 1
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-06-06 12:33:11 -04:00
|
|
|
target "_platforms" {
|
|
|
|
platforms = [
|
|
|
|
"darwin/amd64",
|
|
|
|
"darwin/arm64",
|
|
|
|
"linux/amd64",
|
|
|
|
"linux/arm/v6",
|
|
|
|
"linux/arm/v7",
|
|
|
|
"linux/arm64",
|
|
|
|
"linux/ppc64le",
|
|
|
|
"linux/riscv64",
|
|
|
|
"linux/s390x",
|
|
|
|
"windows/amd64",
|
|
|
|
"windows/arm64"
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
2021-03-03 02:03:02 -05:00
|
|
|
group "default" {
|
|
|
|
targets = ["binary"]
|
|
|
|
}
|
|
|
|
|
|
|
|
target "binary" {
|
2021-12-07 14:07:21 -05:00
|
|
|
inherits = ["_common"]
|
2021-03-03 02:03:02 -05:00
|
|
|
target = "binary"
|
|
|
|
platforms = ["local"]
|
|
|
|
output = ["build"]
|
|
|
|
args = {
|
2021-12-09 11:16:50 -05:00
|
|
|
BASE_VARIANT = USE_GLIBC != "" ? "bullseye" : "alpine"
|
2021-03-03 02:03:02 -05:00
|
|
|
VERSION = VERSION
|
2022-03-27 04:09:50 -04:00
|
|
|
PACKAGER_NAME = PACKAGER_NAME
|
2021-03-03 02:03:02 -05:00
|
|
|
GO_STRIP = STRIP_TARGET
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
target "dynbinary" {
|
|
|
|
inherits = ["binary"]
|
|
|
|
args = {
|
|
|
|
GO_LINKMODE = "dynamic"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-11-17 11:18:15 -05:00
|
|
|
target "plugins" {
|
2021-12-07 14:07:21 -05:00
|
|
|
inherits = ["_common"]
|
2021-11-17 11:18:15 -05:00
|
|
|
target = "plugins"
|
|
|
|
platforms = ["local"]
|
|
|
|
output = ["build"]
|
|
|
|
args = {
|
2021-12-09 11:16:50 -05:00
|
|
|
BASE_VARIANT = USE_GLIBC != "" ? "bullseye" : "alpine"
|
2021-11-17 11:18:15 -05:00
|
|
|
VERSION = VERSION
|
|
|
|
GO_STRIP = STRIP_TARGET
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-03-03 02:03:02 -05:00
|
|
|
target "cross" {
|
2022-06-06 12:33:11 -04:00
|
|
|
inherits = ["binary", "_platforms"]
|
2021-03-03 02:03:02 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
target "dynbinary-cross" {
|
2022-06-06 12:33:11 -04:00
|
|
|
inherits = ["dynbinary", "_platforms"]
|
2021-03-03 02:03:02 -05:00
|
|
|
}
|
2021-08-05 02:44:16 -04:00
|
|
|
|
2021-11-17 11:18:15 -05:00
|
|
|
target "plugins-cross" {
|
2022-06-06 12:33:11 -04:00
|
|
|
inherits = ["plugins", "_platforms"]
|
2021-11-17 11:18:15 -05:00
|
|
|
}
|
|
|
|
|
2021-08-05 02:44:16 -04:00
|
|
|
target "lint" {
|
2021-12-07 14:07:21 -05:00
|
|
|
inherits = ["_common"]
|
2021-08-05 02:44:16 -04:00
|
|
|
dockerfile = "./dockerfiles/Dockerfile.lint"
|
|
|
|
target = "lint"
|
|
|
|
output = ["type=cacheonly"]
|
|
|
|
}
|
|
|
|
|
|
|
|
target "shellcheck" {
|
2021-12-07 14:07:21 -05:00
|
|
|
inherits = ["_common"]
|
2021-08-05 02:44:16 -04:00
|
|
|
dockerfile = "./dockerfiles/Dockerfile.shellcheck"
|
|
|
|
target = "shellcheck"
|
|
|
|
output = ["type=cacheonly"]
|
|
|
|
}
|
2021-11-17 11:18:15 -05:00
|
|
|
|
2021-12-16 15:15:53 -05:00
|
|
|
target "validate-vendor" {
|
2021-12-07 14:46:43 -05:00
|
|
|
inherits = ["_common"]
|
2021-12-16 15:15:53 -05:00
|
|
|
dockerfile = "./dockerfiles/Dockerfile.vendor"
|
|
|
|
target = "validate"
|
|
|
|
output = ["type=cacheonly"]
|
|
|
|
}
|
|
|
|
|
|
|
|
target "update-vendor" {
|
2021-12-07 14:46:43 -05:00
|
|
|
inherits = ["_common"]
|
2021-12-16 15:15:53 -05:00
|
|
|
dockerfile = "./dockerfiles/Dockerfile.vendor"
|
|
|
|
target = "update"
|
|
|
|
output = ["."]
|
|
|
|
}
|
|
|
|
|
|
|
|
target "mod-outdated" {
|
2021-12-07 14:46:43 -05:00
|
|
|
inherits = ["_common"]
|
2021-12-16 15:15:53 -05:00
|
|
|
dockerfile = "./dockerfiles/Dockerfile.vendor"
|
|
|
|
target = "outdated"
|
2022-06-05 10:25:05 -04:00
|
|
|
no-cache-filter = ["outdated"]
|
2021-12-16 15:15:53 -05:00
|
|
|
output = ["type=cacheonly"]
|
|
|
|
}
|
|
|
|
|
2021-12-20 19:44:40 -05:00
|
|
|
target "validate-authors" {
|
|
|
|
inherits = ["_common"]
|
|
|
|
dockerfile = "./dockerfiles/Dockerfile.authors"
|
|
|
|
target = "validate"
|
|
|
|
output = ["type=cacheonly"]
|
|
|
|
}
|
|
|
|
|
|
|
|
target "update-authors" {
|
|
|
|
inherits = ["_common"]
|
|
|
|
dockerfile = "./dockerfiles/Dockerfile.authors"
|
|
|
|
target = "update"
|
|
|
|
output = ["."]
|
|
|
|
}
|
|
|
|
|
2021-12-07 08:50:16 -05:00
|
|
|
target "test" {
|
|
|
|
target = "test"
|
|
|
|
output = ["type=cacheonly"]
|
|
|
|
}
|
|
|
|
|
|
|
|
target "test-coverage" {
|
|
|
|
target = "test-coverage"
|
|
|
|
output = ["build/coverage"]
|
|
|
|
}
|
|
|
|
|
2021-11-17 11:18:15 -05:00
|
|
|
target "e2e-image" {
|
|
|
|
target = "e2e"
|
|
|
|
output = ["type=docker"]
|
|
|
|
tags = ["${IMAGE_NAME}"]
|
|
|
|
args = {
|
2021-12-09 11:16:50 -05:00
|
|
|
BASE_VARIANT = USE_GLIBC != "" ? "bullseye" : "alpine"
|
2021-11-17 11:18:15 -05:00
|
|
|
VERSION = VERSION
|
|
|
|
}
|
|
|
|
}
|