Comment 86 for bug 1876286

Revision history for this message
Stephen Holden (stephenholden) wrote : Re: [Bug 1876286] Re: Evolution reports "Error performing TLS handshake: Internal error in memory allocation."

Thanks.  I thought just replacing gnutls-bin would be enough.  Now that I've updated all three .deb files, Evolution is once again pulling emails, etc from my ISP's rogers-yahoo server!
Thanks to all who worked on fixing the problem.  I know a few people on this mailing list will be very happy, myself included.
Regards,Stephen

Stephen Holden
Ontario, Canada

    On Monday, June 22, 2020, 3:11:05 p.m. EDT, Rod Rivers <email address hidden> wrote:

 @@stephenholden both of these have to be updated.  This is where the
code change was made:

ii  libgnutls30:amd64                    3.5.18-1ubuntu1.3                                                          amd64        GNU TLS library - main runtime library
ii  libgnutls30:i386                      3.5.18-1ubuntu1.3                                                          i386        GNU TLS library - main runtime library

--
You received this bug notification because you are subscribed to the bug
report.
https://bugs.launchpad.net/bugs/1876286

Title:
  Evolution reports "Error performing TLS handshake: Internal error in
  memory allocation."

Status in Gnutls:
  Unknown
Status in claws-mail package in Ubuntu:
  Invalid
Status in evolution package in Ubuntu:
  Invalid
Status in gnutls28 package in Ubuntu:
  Fix Released
Status in gnutls28 source package in Xenial:
  Fix Committed
Status in gnutls28 source package in Bionic:
  Fix Committed
Status in claws-mail source package in Focal:
  Invalid
Status in evolution source package in Focal:
  Invalid
Status in gnutls28 source package in Focal:
  Fix Committed
Status in claws-mail source package in Groovy:
  Invalid
Status in evolution source package in Groovy:
  Invalid
Status in gnutls28 source package in Groovy:
  Fix Released
Status in gnutls28 package in CentOS:
  Unknown

Bug description:
  [Impact]

  Evolution and Claws email clients stopped connecting to Yahoo, AOL,
  Verizon, AT&T, Bell South, etc email servers which are run by the same
  group. Users are unable to get to their email.

  The underlying problem is that GnuTLS does not support zero length
  session tickets.  The fix works by checking that that ticket_len > 0
  prior to calling gnutls_realloc_fast().

  Nominating for SRU, fulfills: "Updates that need to be applied to
  Ubuntu packages to adjust to changes in the environment, server
  protocols, web services, and similar, i. e. where the current version
  just ceases to work."

  [testcase]

  GnuTLS 3.6:
  $ gnutls-cli --priority=NORMAL:-VERS-TLS1.3 pop.verizon.net:995
  [...]
  - Status: The certificate is trusted.
  *** Fatal error: Internal error in memory allocation.

  the error should be fixed with the update

  GnuTLS 3.5:
  $ gnutls-cli pop.verizon.net:995

  GnuTLS 3.4:
  $ gnutls-cli -p 995 pop.verizon.net

  [regression potential]

  The fix works by checking that that ticket_len > 0 prior to calling
  gnutls_realloc_fast().  This creates two separate execution paths:

  1) If the session ticket length > 0, which is the primary use case,
  the original code block will be executed.

  2) If the session ticket len is 0, then the original code block will
  be skipped.

  Testing will need to include connections to servers that return
  session ticket length > 0 as well as ones that return session ticket
  length of 0.  Wireshark can be used to look at the NewSessionTicket
  handshake message to confirm the session ticket length.

  [Other Info]

  The GnuTLS project's merge request 1260 fixes this bug.  It was reviewed and approved by Daiki Ueno:
  https://gitlab.com/gnutls/gnutls/-/merge_requests/1260

  According to the GnuTLS project: "We utilize two continuous integration systems, the gitlab-ci and travis.  Gitlab-CI is used to test most of the Linux systems (see .gitlab-ci.yml), and is split in two phases, build image creation and compilation/test. The build image creation is done at the gnutls/build-images subproject and uploads the image at the gitlab.com container registry. The compilation/test phase is on every commit to gnutls project."
  Here are the results of the gitlab-ci pipeline showing all 19 tests passed for merge request 1260:
  https://gitlab.com/rrivers2/gnutls/-/pipelines/149155018

  Page 8, section 3.3 of RFC5077 describes the NewSessionTicket handshake message and indicates that a zero length session ticket is a legitimate value:
  https://tools.ietf.org/pdf/rfc5077.pdf

  --------------------------

  When GnuTLS connects to servers that return zero length session
  tickets using older TLS versions it returns the error code
  GNUTLS_E_MEMORY_ERROR and the connection is closed.  This prevents
  Evolution and Claws email clients from connecting to Yahoo, AOL,
  Verizon, AT&T, Bell South, etc email servers.  Evolution displays the
  message "Error performing TLS handshake: Internal error in memory
  allocation"

  ProblemType: Bug
  DistroRelease: Ubuntu 18.04
  Package: libgnutls30 3.5.18-1ubuntu1.3
  ProcVersionSignature: Ubuntu 5.3.0-51.44~18.04.2-generic 5.3.18
  Uname: Linux 5.3.0-51-generic x86_64
  ApportVersion: 2.20.9-0ubuntu7.14
  Architecture: amd64
  CurrentDesktop: ubuntu:GNOME
  Date: Fri May 1 07:03:51 2020
  InstallationDate: Installed on 2017-12-12 (870 days ago)
  InstallationMedia: Ubuntu 16.04.3 LTS "Xenial Xerus" - Release amd64 (20170801)
  ProcEnviron:
  PATH=(custom, no username)
  XDG_RUNTIME_DIR=<set>
  LANG=en_US.UTF-8
  SHELL=/bin/bash
  SourcePackage: gnutls28
  UpgradeStatus: Upgraded to bionic on 2018-12-28 (489 days ago)

To manage notifications about this bug go to:
https://bugs.launchpad.net/gnutls/+bug/1876286/+subscriptions