Package: release.debian.org
Severity: normal
Tags: buster
User: release.debian....@packages.debian.org
Usertags: pu

The debdiff attached brings in an upstream patch to fix
CVE-2019-1020014, hence closes #933801.

This is my first contribution to Debian Stable, please check for
beginners mistake ;)

Also, the devel-announce "Bits from the Stable Release Managers"
mentions:

   * Fixes for security issues should be co-ordinated with the
     Security Team, unless they have explicitly stated that they
     will not issue an DSA for the bug (e.g. via a "no-dsa" marker
     in the Security Tracker) [SECURITY-TRACKER]

So, is there anything else I should do here? Like, CC them or something?

Thanks!

  Arnaud

-- Related links:

- <https://bugs.debian.org/933801>
- <https://security-tracker.debian.org/tracker/CVE-2019-1020014>

-- System Information:
Debian Release: 10.0
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 4.19.0-5-amd64 (SMP w/8 CPU cores)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
diff -Nru golang-github-docker-docker-credential-helpers-0.6.1/debian/changelog 
golang-github-docker-docker-credential-helpers-0.6.1/debian/changelog
--- golang-github-docker-docker-credential-helpers-0.6.1/debian/changelog       
2019-02-28 08:31:29.000000000 +0700
+++ golang-github-docker-docker-credential-helpers-0.6.1/debian/changelog       
2019-08-05 15:04:28.000000000 +0700
@@ -1,3 +1,11 @@
+golang-github-docker-docker-credential-helpers (0.6.1-2+deb10u1) buster; 
urgency=medium
+
+  * Add myself to uploaders.
+  * Adjust gbp.conf for buster.
+  * Add upstream patch to fix CVE-2019-1020014 (Closes: #933801).
+
+ -- Arnaud Rebillout <arnaud.rebill...@collabora.com>  Mon, 05 Aug 2019 
15:04:28 +0700
+
 golang-github-docker-docker-credential-helpers (0.6.1-2) unstable; 
urgency=medium
 
   * Team upload.
diff -Nru golang-github-docker-docker-credential-helpers-0.6.1/debian/control 
golang-github-docker-docker-credential-helpers-0.6.1/debian/control
--- golang-github-docker-docker-credential-helpers-0.6.1/debian/control 
2019-02-28 08:31:29.000000000 +0700
+++ golang-github-docker-docker-credential-helpers-0.6.1/debian/control 
2019-08-05 15:04:28.000000000 +0700
@@ -3,7 +3,8 @@
 Priority: optional
 Maintainer: Debian Go Packaging Team 
<pkg-go-maintain...@lists.alioth.debian.org>
 Uploaders: Tim Potter <t...@hpe.com>,
-           Jordi Mallach <jo...@debian.org>
+           Jordi Mallach <jo...@debian.org>,
+           Arnaud Rebillout <arnaud.rebill...@collabora.com>,  
 Build-Depends: debhelper (>= 11~),
                dh-golang,
                golang-any,
diff -Nru golang-github-docker-docker-credential-helpers-0.6.1/debian/gbp.conf 
golang-github-docker-docker-credential-helpers-0.6.1/debian/gbp.conf
--- golang-github-docker-docker-credential-helpers-0.6.1/debian/gbp.conf        
2019-02-28 08:31:29.000000000 +0700
+++ golang-github-docker-docker-credential-helpers-0.6.1/debian/gbp.conf        
2019-08-05 15:04:28.000000000 +0700
@@ -1,2 +1,3 @@
 [DEFAULT]
+debian-branch = debian/buster
 pristine-tar = True
diff -Nru 
golang-github-docker-docker-credential-helpers-0.6.1/debian/patches/cve-2019-1020014-Fix-a-double-free-in-the-List-functions.patch
 
golang-github-docker-docker-credential-helpers-0.6.1/debian/patches/cve-2019-1020014-Fix-a-double-free-in-the-List-functions.patch
--- 
golang-github-docker-docker-credential-helpers-0.6.1/debian/patches/cve-2019-1020014-Fix-a-double-free-in-the-List-functions.patch
  1970-01-01 08:00:00.000000000 +0800
+++ 
golang-github-docker-docker-credential-helpers-0.6.1/debian/patches/cve-2019-1020014-Fix-a-double-free-in-the-List-functions.patch
  2019-08-05 15:04:28.000000000 +0700
@@ -0,0 +1,85 @@
+From: Justin Cormack <justin.corm...@docker.com>
+Date: Mon, 1 Jul 2019 14:37:24 +0100
+Subject: [PATCH] Fix a double free in the List functions
+
+The code was set up so that it would free the individual items and the data
+in `freeListData`, but there was already a Go `defer` to free the data item,
+resulting in a double free.
+
+Remove the `free` in `freeListData` and leave the original one.
+
+In addition, move the `defer` for freeing the list data before the error
+check, so that the data is also free in the error case. This just removes
+a minor leak.
+
+This vulnerability was discovered by:
+Jasiel Spelman of Trend Micro Zero Day Initiative and Trend Micro Team Nebula
+
+Signed-off-by: Justin Cormack <justin.corm...@docker.com>
+Origin: upstream, 
https://github.com/docker/docker-credential-helpers/commit/87c80bf
+---
+ osxkeychain/osxkeychain_darwin.c     | 1 -
+ osxkeychain/osxkeychain_darwin.go    | 5 ++---
+ secretservice/secretservice_linux.c  | 1 -
+ secretservice/secretservice_linux.go | 4 ++--
+ 4 files changed, 4 insertions(+), 7 deletions(-)
+
+--- a/osxkeychain/osxkeychain_darwin.c
++++ b/osxkeychain/osxkeychain_darwin.c
+@@ -223,6 +223,5 @@
+ void freeListData(char *** data, unsigned int length) {
+      for(int i=0; i<length; i++) {
+         free((*data)[i]);
+      }
+-     free(*data);
+ }
+--- a/osxkeychain/osxkeychain_darwin.go
++++ b/osxkeychain/osxkeychain_darwin.go
+@@ -109,17 +109,16 @@
+       var acctsC **C.char
+       defer C.free(unsafe.Pointer(acctsC))
+       var listLenC C.uint
+       errMsg := C.keychain_list(credsLabelC, &pathsC, &acctsC, &listLenC)
++      defer C.freeListData(&pathsC, listLenC)
++      defer C.freeListData(&acctsC, listLenC)
+       if errMsg != nil {
+               defer C.free(unsafe.Pointer(errMsg))
+               goMsg := C.GoString(errMsg)
+               return nil, errors.New(goMsg)
+       }
+ 
+-      defer C.freeListData(&pathsC, listLenC)
+-      defer C.freeListData(&acctsC, listLenC)
+-
+       var listLen int
+       listLen = int(listLenC)
+       pathTmp := (*[1 << 30]*C.char)(unsafe.Pointer(pathsC))[:listLen:listLen]
+       acctTmp := (*[1 << 30]*C.char)(unsafe.Pointer(acctsC))[:listLen:listLen]
+--- a/secretservice/secretservice_linux.c
++++ b/secretservice/secretservice_linux.c
+@@ -157,6 +157,5 @@
+       int i;
+       for(i=0; i<length; i++) {
+               free((*data)[i]);
+       }
+-      free(*data);
+ }
+--- a/secretservice/secretservice_linux.go
++++ b/secretservice/secretservice_linux.go
+@@ -91,14 +91,14 @@
+       var acctsC **C.char
+       defer C.free(unsafe.Pointer(acctsC))
+       var listLenC C.uint
+       err := C.list(credsLabelC, &pathsC, &acctsC, &listLenC)
++      defer C.freeListData(&pathsC, listLenC)
++      defer C.freeListData(&acctsC, listLenC)
+       if err != nil {
+               defer C.g_error_free(err)
+               return nil, errors.New("Error from list function in 
secretservice_linux.c likely due to error in secretservice library")
+       }
+-      defer C.freeListData(&pathsC, listLenC)
+-      defer C.freeListData(&acctsC, listLenC)
+ 
+       resp := make(map[string]string)
+ 
+       listLen := int(listLenC)
diff -Nru 
golang-github-docker-docker-credential-helpers-0.6.1/debian/patches/series 
golang-github-docker-docker-credential-helpers-0.6.1/debian/patches/series
--- golang-github-docker-docker-credential-helpers-0.6.1/debian/patches/series  
2019-02-28 08:31:29.000000000 +0700
+++ golang-github-docker-docker-credential-helpers-0.6.1/debian/patches/series  
2019-08-05 15:04:28.000000000 +0700
@@ -1 +1,2 @@
 fix-free-err.patch
+cve-2019-1020014-Fix-a-double-free-in-the-List-functions.patch

Reply via email to