docker.io.git
6 years agoDebugRequestMiddleware: unconditionally scrub data field
Sebastiaan van Stijn [Tue, 2 Jul 2019 12:21:03 +0000 (14:21 +0200)]
DebugRequestMiddleware: unconditionally scrub data field

Commit 77b8465d7e68ca102d7aae839c7b3fe0ecd28398 added a secret update
endpoint to allow updating labels on existing secrets. However, when
implementing the endpoint, the DebugRequestMiddleware was not updated
to scrub the Data field (as is being done when creating a secret).

When updating a secret (to set labels), the Data field should be either
`nil` (not set), or contain the same value as the existing secret. In
situations where the Data field is set, and the `dockerd` daemon is
running with debugging enabled / log-level debug, the base64-encoded
value of the secret is printed to the daemon logs.

The docker cli does not have a `docker secret update` command, but
when using `docker stack deploy`, the docker cli sends the secret
data both when _creating_ a stack, and when _updating_ a stack, thus
leaking the secret data if the daemon runs with debug enabled:

1. Start the daemon in debug-mode

        dockerd --debug

2. Initialize swarm

        docker swarm init

3. Create a file containing a secret

        echo secret > my_secret.txt

4. Create a docker-compose file using that secret

        cat > docker-compose.yml <<'EOF'
        version: "3.3"
        services:
          web:
            image: nginx:alpine
            secrets:
              - my_secret
        secrets:
          my_secret:
            file: ./my_secret.txt
        EOF

5. Deploy the stack

        docker stack deploy -c docker-compose.yml test

6. Verify that the secret is scrubbed in the daemon logs

        DEBU[2019-07-01T22:36:08.170617400Z] Calling POST /v1.30/secrets/create
        DEBU[2019-07-01T22:36:08.171364900Z] form data: {"Data":"*****","Labels":{"com.docker.stack.namespace":"test"},"Name":"test_my_secret"}

7. Re-deploy the stack to trigger an "update"

        docker stack deploy -c docker-compose.yml test

8. Notice that this time, the Data field is not scrubbed, and the base64-encoded secret is logged

        DEBU[2019-07-01T22:37:35.828819400Z] Calling POST /v1.30/secrets/w3hgvwpzl8yooq5ctnyp71v52/update?version=34
        DEBU[2019-07-01T22:37:35.829993700Z] form data: {"Data":"c2VjcmV0Cg==","Labels":{"com.docker.stack.namespace":"test"},"Name":"test_my_secret"}

This patch modifies `maskSecretKeys` to unconditionally scrub `Data` fields.
Currently, only the `secrets` and `configs` endpoints use a field with this
name, and no other POST API endpoints use a data field, so scrubbing this
field unconditionally will only scrub requests for those endpoints.

If a new endpoint is added in future where this field should not be scrubbed,
we can re-introduce more fine-grained (path-specific) handling.

This patch introduces some change in behavior:

- In addition to secrets, requests to create or update _configs_ will
  now have their `Data` field scrubbed. Generally, the actual data should
  not be interesting for debugging, so likely will not be problematic.
  In addition, scrubbing this data for configs may actually be desirable,
  because (even though they are not explicitely designed for this purpose)
  configs may contain sensitive data (credentials inside a configuration
  file, e.g.).
- Requests that send key/value pairs as a "map" and that contain a
  key named "data", will see the value of that field scrubbed. This
  means that (e.g.) setting a `label` named `data` on a config, will
  scrub/mask the value of that label.
- Note that this is already the case for any label named `jointoken`,
  `password`, `secret`, `signingcakey`, or `unlockkey`.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit c7ce4be93ae8edd2da62a588e01c67313a4aba0c)
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 73db8c77bfb2d0cbdf71ce491f3d3e66c9dd5be6)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Origin: upstream, https://github.com/docker/engine/pull/298

Gbp-Pq: Name cve-2019-13509-03-DebugRequestMiddleware-unconditionally-scrub-data-field.patch

6 years agoTestMaskSecretKeys: use subtests
Sebastiaan van Stijn [Tue, 2 Jul 2019 11:29:24 +0000 (13:29 +0200)]
TestMaskSecretKeys: use subtests

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 32d70c7e21631224674cd60021d3ec908c2d888c)
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit ebb542b3f88d7f5551f6b6e1d8d2774a2c166409)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Origin: https://github.com/docker/engine/pull/298

Gbp-Pq: Name cve-2019-13509-02-TestMaskSecretKeys-use-subtests.patch

6 years agoTestMaskSecretKeys: add more test-cases
Sebastiaan van Stijn [Tue, 2 Jul 2019 11:21:04 +0000 (13:21 +0200)]
TestMaskSecretKeys: add more test-cases

Add tests for

- case-insensitive matching of fields
- recursive masking

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit db5f811216e70bcb4a10e477c1558d6c68f618c5)
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 18dac2cf32faeaada3bd4e8e2bffa576ad4329fe)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Origin: upstream, https://github.com/docker/engine/pull/298

Gbp-Pq: Name cve-2019-13509-01-TestMaskSecretKeys-add-more-test-cases.patch

6 years agogitutils: add validation for ref
Tonis Tiigi [Wed, 6 Feb 2019 19:58:40 +0000 (11:58 -0800)]
gitutils: add validation for ref

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
(cherry picked from commit 723b107ca4fba14580a6cd971e63d8af2e7d2bbe)
Signed-off-by: Andrew Hsu <andrewhsu@docker.com>
Origin: upstream, https://github.com/moby/moby/pull/38944

Gbp-Pq: Name cve-2019-13139-01-gitutils-add-validation-for-ref.patch

6 years agoAdd chroot for tar packing operations
Brian Goff [Thu, 30 May 2019 21:55:52 +0000 (14:55 -0700)]
Add chroot for tar packing operations

Previously only unpack operations were supported with chroot.
This adds chroot support for packing operations.
This prevents potential breakouts when copying data from a container.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Origin: upstream, https://github.com/moby/moby/pull/39292

Gbp-Pq: Name cve-2018-15664-02-add-chroot-for-tar-packing-operations.patch

6 years agoPass root to chroot to for chroot Untar
Brian Goff [Thu, 30 May 2019 18:15:09 +0000 (11:15 -0700)]
Pass root to chroot to for chroot Untar

This is useful for preventing CVE-2018-15664 where a malicious container
process can take advantage of a race on symlink resolution/sanitization.

Before this change chrootarchive would chroot to the destination
directory which is attacker controlled. With this patch we always chroot
to the container's root which is not attacker controlled.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Origin: upstream, https://github.com/moby/moby/pull/39292

Gbp-Pq: Name cve-2018-15664-01-pass-root-to-chroot-to-for-chroot-untar.patch

6 years agocli/registry: fix a Debugf statement
Kir Kolyshkin [Wed, 10 Oct 2018 06:36:04 +0000 (23:36 -0700)]
cli/registry: fix a Debugf statement

Fix this warning from go-1.11

> cli/registry/client/fetcher.go:234: Debugf format %s has arg
> repoEndpoint of wrong type client.repositoryEndpoint

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
Origin: upstream, https://github.com/docker/cli/commit/51848bf

Gbp-Pq: Name cli-fix-registry-debug-message-go-1.11.patch

6 years agocli-fix-manpages-build-script
Dmitry Smirnov [Tue, 3 Sep 2019 17:59:35 +0000 (18:59 +0100)]
cli-fix-manpages-build-script

Gbp-Pq: Name cli-fix-manpages-build-script.patch

6 years agoBuild against google-grpc 1.11, where md.Get() does not exist.
Arnaud Rebillout [Tue, 22 Jan 2019 05:22:52 +0000 (12:22 +0700)]
Build against google-grpc 1.11, where md.Get() does not exist.

This patch is based on the commit that introduced md.Get() in google-grpc:
<https://github.com/grpc/grpc-go/commit/291de7f0>.

Please drop this patch as soon as we build docker against google-grpc >= 1.12.

Origin: vendor, Debian
Forwarded: not-needed, Debian-specific
Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
Gbp-Pq: Name buildkit-build-against-google-grpc-1.11.patch

6 years agodebian-nuke-no-prompt
Dmitry Smirnov [Tue, 3 Sep 2019 17:59:35 +0000 (18:59 +0100)]
debian-nuke-no-prompt

Gbp-Pq: Name debian-nuke-no-prompt.patch

6 years agodebian-cgroupfs-mount-convenience-copy
Dmitry Smirnov [Tue, 3 Sep 2019 17:59:35 +0000 (18:59 +0100)]
debian-cgroupfs-mount-convenience-copy

Gbp-Pq: Name debian-cgroupfs-mount-convenience-copy.patch

6 years agodebian-dockerd-binary-location
Dmitry Smirnov [Tue, 3 Sep 2019 17:59:35 +0000 (18:59 +0100)]
debian-dockerd-binary-location

Gbp-Pq: Name debian-dockerd-binary-location.patch

6 years agodebian-containerd-name
Dmitry Smirnov [Tue, 3 Sep 2019 17:59:35 +0000 (18:59 +0100)]
debian-containerd-name

Gbp-Pq: Name debian-containerd-name.patch

6 years agodebian-systemd-unit-environment-file
Dmitry Smirnov [Tue, 3 Sep 2019 17:59:35 +0000 (18:59 +0100)]
debian-systemd-unit-environment-file

Gbp-Pq: Name debian-systemd-unit-environment-file.patch

6 years agodocker.service: don't limit tasks
pierre@meteor.com [Thu, 24 Mar 2016 23:14:30 +0000 (16:14 -0700)]
docker.service: don't limit tasks

Signed-off-by: Pierre Carrier <pierre@meteor.com>
Gbp-Pq: Name debian-systemd-unit-tasksmax.patch

6 years agodocker.io (18.09.1+dfsg1-7.1+deb10u1) buster-security; urgency=medium
Felix Geyer [Tue, 3 Sep 2019 17:59:35 +0000 (18:59 +0100)]
docker.io (18.09.1+dfsg1-7.1+deb10u1) buster-security; urgency=medium

  [ Arnaud Rebillout ]
  * Add upstream patch for CVE-2019-13139 (Closes: #933002).
  * Add upstream patches for CVE-2019-13509 (Closes: #932673).

  [ Felix Geyer ]
  * Add upstream patch for CVE-2019-14271
  * Cherry-pick upstream commits to fix test failures with
    golang >= 1.11.6-1+deb10u1

[dgit import unpatched docker.io 18.09.1+dfsg1-7.1+deb10u1]

6 years agoImport docker.io_18.09.1+dfsg1-7.1+deb10u1.debian.tar.xz
Felix Geyer [Tue, 3 Sep 2019 17:59:35 +0000 (18:59 +0100)]
Import docker.io_18.09.1+dfsg1-7.1+deb10u1.debian.tar.xz

[dgit import tarball docker.io 18.09.1+dfsg1-7.1+deb10u1 docker.io_18.09.1+dfsg1-7.1+deb10u1.debian.tar.xz]

6 years agoImport docker.io_18.09.1+dfsg1.orig.tar.xz
Arnaud Rebillout [Tue, 22 Jan 2019 08:48:15 +0000 (08:48 +0000)]
Import docker.io_18.09.1+dfsg1.orig.tar.xz

[dgit import orig docker.io_18.09.1+dfsg1.orig.tar.xz]

6 years agoImport docker.io_18.09.1+dfsg1.orig-containerd.tar.xz
Arnaud Rebillout [Tue, 22 Jan 2019 08:48:15 +0000 (08:48 +0000)]
Import docker.io_18.09.1+dfsg1.orig-containerd.tar.xz

[dgit import orig docker.io_18.09.1+dfsg1.orig-containerd.tar.xz]

6 years agoImport docker.io_18.09.1+dfsg1.orig-distribution.tar.xz
Arnaud Rebillout [Tue, 22 Jan 2019 08:48:15 +0000 (08:48 +0000)]
Import docker.io_18.09.1+dfsg1.orig-distribution.tar.xz

[dgit import orig docker.io_18.09.1+dfsg1.orig-distribution.tar.xz]

6 years agoImport docker.io_18.09.1+dfsg1.orig-go-events.tar.xz
Arnaud Rebillout [Tue, 22 Jan 2019 08:48:15 +0000 (08:48 +0000)]
Import docker.io_18.09.1+dfsg1.orig-go-events.tar.xz

[dgit import orig docker.io_18.09.1+dfsg1.orig-go-events.tar.xz]

6 years agoImport docker.io_18.09.1+dfsg1.orig-go-metrics.tar.xz
Arnaud Rebillout [Tue, 22 Jan 2019 08:48:15 +0000 (08:48 +0000)]
Import docker.io_18.09.1+dfsg1.orig-go-metrics.tar.xz

[dgit import orig docker.io_18.09.1+dfsg1.orig-go-metrics.tar.xz]

6 years agoImport docker.io_18.09.1+dfsg1.orig-libnetwork.tar.xz
Arnaud Rebillout [Tue, 22 Jan 2019 08:48:15 +0000 (08:48 +0000)]
Import docker.io_18.09.1+dfsg1.orig-libnetwork.tar.xz

[dgit import orig docker.io_18.09.1+dfsg1.orig-libnetwork.tar.xz]

6 years agoImport docker.io_18.09.1+dfsg1.orig-swarmkit.tar.xz
Arnaud Rebillout [Tue, 22 Jan 2019 08:48:15 +0000 (08:48 +0000)]
Import docker.io_18.09.1+dfsg1.orig-swarmkit.tar.xz

[dgit import orig docker.io_18.09.1+dfsg1.orig-swarmkit.tar.xz]