** Information type changed from Private Security to Public ** Package changed: git (Ubuntu) => apt (Ubuntu)
-- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to apt in Ubuntu. https://bugs.launchpad.net/bugs/1635303 Title: GnuTLS bug in https method from apt-1.0.1ubuntu2.15 package Status in apt package in Ubuntu: New Bug description: ** NOTE ** Marking this as security vulnerability as it has the potential to exclude security updates from repositories using HTTPS protocol on Ubuntu 14.04 (perhaps when only going through a proxy). I have four Ubuntu 14.04 boxes which have either Phusion Passenger, or Jenkins software installed. The repositories for these software packages are served over HTTPS protocl, rather than the customary HTTP: :: # cat /etc/apt/sources.list.d/passenger.list :: deb https://oss-binaries.phusionpassenger.com/apt/passenger trusty main :: :: # cat /etc/apt/sources.list.d/jenkins.list :: deb https://pkg.jenkins.io/debian-stable binary/ When going through a Blue Coat proxy system (https://www.bluecoat.com/products-and-solutions/on-premise-secure-web-gateway), running `apt-get update` results in the following error message snippets: :: Hit http://security.ubuntu.com trusty-security/main Translation-en :: Err https://oss-binaries.phusionpassenger.com trusty/main amd64 Packages :: gnutls_handshake() failed: A TLS packet with unexpected length was received. :: :: W: Failed to fetch https://oss-binaries.phusionpassenger.com/apt/passenger/dists/trusty :: /main/binary-amd64/Packages gnutls_handshake() failed: A TLS packet with unexpected length was :: received. I've noticed the Ubuntu 14.04 https method (/usr/lib/apt/methods/https) is compiled against libcurl-gnutls.so.4 (libcurl4-gnutls-dev). This package is also reported as being problematic in Python (https://bugs.debian.org/cgi- bin/bugreport.cgi?bug=515200) as well as git (http://askubuntu.com/questions/186847/error-gnutls-handshake-failed- when-connecting-to-https-servers). To test, I've checked the original /usr/lib/apt/methods/https is indeed linked to libcurl4-gnutls: :: # ldd /usr/lib/apt/methods/https :: linux-vdso.so.1 => (0x00007ffe2ff43000) :: libapt-pkg.so.4.12 => /usr/lib/x86_64-linux-gnu/libapt-pkg.so.4.12 (0x00007f2399cc6000) :: libcurl-gnutls.so.4 => /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4 (0x00007f2399a64000) :: ... I installed apt-1.0.1ubuntu2.15 source package using `apt-get source` and proceeded to build using the configure options shown here: https://launchpad.net/ubuntu/+source/apt/1.0.1ubuntu2.15/+build/10959579 This indeed produced a binary linked against libcurl-gnutls.so.4. I copied the new https binary over to /usr/lib/apt/methods/ and ran `apt-get update` with the same failure message above. I then ran `apt-get purge libcurl4-gnutls-dev` and then `apt-get install libcurl4 -openssl-dev`. I the removed my build directory and installed the apt-1.0.1ubuntu2.15 source package again. Building with the same configure options as before resulted in a https binary linked against openssl. I copied the resulting binary over to /usr/lib/apt/methods/https.openssl and verified: :: # ldd /usr/lib/apt/methods/https.openssl :: ... :: libcurl.so.4 => /usr/lib/x86_64-linux-gnu/libcurl.so.4 (0x00007f28c1d3f000) :: ... :: libssl.so.1.0.0 => /lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007f28c0362000) :: :: # cp /usr/lib/apt/methods/https.openssl /usr/lib/apt/methods/https :: :: # apt-get update :: Get:1 http://us.archive.ubuntu.com trusty-backports InRelease [65.9 kB] :: Hit http://ppa.launchpad.net trusty InRelease :: Hit http://security.ubuntu.com trusty-security InRelease :: Hit http://us.archive.ubuntu.com trusty Release.gpg :: Hit http://us.archive.ubuntu.com trusty-updates/main Sources :: Hit http://us.archive.ubuntu.com trusty-updates/restricted Sources :: Hit http://ppa.launchpad.net trusty/main amd64 Packages :: Hit http://security.ubuntu.com trusty-security/main Sources :: Hit http://ppa.launchpad.net trusty/main i386 Packages :: Hit http://security.ubuntu.com trusty-security/restricted Sources :: Hit http://ppa.launchpad.net trusty/main Translation-en :: Hit http://security.ubuntu.com trusty-security/universe Sources :: Hit http://security.ubuntu.com trusty-security/multiverse Sources :: Get:2 https://oss-binaries.phusionpassenger.com trusty InRelease :: Ign https://oss-binaries.phusionpassenger.com trusty InRelease :: Hit https://oss-binaries.phusionpassenger.com trusty Release.gpg :: Hit https://oss-binaries.phusionpassenger.com trusty Release :: Hit https://oss-binaries.phusionpassenger.com trusty/main amd64 Packages :: Hit https://oss-binaries.phusionpassenger.com trusty/main i386 Packages :: Get:3 https://oss-binaries.phusionpassenger.com trusty/main Translation-en :: Ign https://oss-binaries.phusionpassenger.com trusty/main Translation-en :: ... This appears to resolve the issue of trying to contact HTTPS repositories while going through a Blue Coat proxy (perhaps any proxy?). Would it be possible to have a package made available in Ubuntu 14.04 repos which is compiled against openssl instead of libcurl4-gnutls? To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1635303/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp