Hello Stefan, or anyone else affected,

Accepted libmemcached into cosmic-proposed. The package will build now
and be available at
https://launchpad.net/ubuntu/+source/libmemcached/1.0.18-4.2ubuntu0.18.10.1
in a few hours, and then in the -proposed repository.

Please help us by testing this new package.  See
https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how
to enable and use -proposed.  Your feedback will aid us getting this
update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug,
mentioning the version of the package you tested and change the tag from
verification-needed-cosmic to verification-done-cosmic. If it does not
fix the bug for you, please add a comment stating that, and change the
tag to verification-failed-cosmic. In either case, without details of
your testing we will not be able to proceed.

Further information regarding the verification process can be found at
https://wiki.ubuntu.com/QATeam/PerformingSRUVerification .  Thank you in
advance for helping!

N.B. The updated package will be released to -updates after the bug(s)
fixed by this package have been verified and the package has been in
-proposed for a minimum of 7 days.

** Changed in: libmemcached (Ubuntu Cosmic)
       Status: In Progress => Fix Committed

** Tags added: verification-needed verification-needed-cosmic

** Changed in: libmemcached (Ubuntu Bionic)
       Status: In Progress => Fix Committed

** Tags added: verification-needed-bionic

-- 
You received this bug notification because you are a member of STS
Sponsors, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/1573594

Title:
  Missing null termination in PROTOCOL_BINARY_CMD_SASL_LIST_MECHS
  response handling

Status in libmemcached:
  New
Status in libmemcached package in Ubuntu:
  Fix Released
Status in libmemcached source package in Trusty:
  Fix Committed
Status in libmemcached source package in Xenial:
  Fix Committed
Status in libmemcached source package in Bionic:
  Fix Committed
Status in libmemcached source package in Cosmic:
  Fix Committed
Status in libmemcached source package in Disco:
  Fix Released
Status in libmemcached package in Debian:
  New

Bug description:
  [Impact]

  When connecting to a server using SASL,
  memcached_sasl_authenticate_connection() reads the list of supported
  mechanisms [1] from the server via the command
  PROTOCOL_BINARY_CMD_SASL_LIST_MECHS. The server's response is a string
  containing supported authentication mechanisms, which gets stored into
  the (uninitialized) destination buffer without null termination [2].

  The buffer then gets passed to sasl_client_start [3] which treats it
  as a null-terminated string [4], reading uninitialised bytes in the
  buffer.

  As the buffer lives on the stack, an attacker that can put strings on
  the stack before the connection gets made, might be able to tamper
  with the authentication.

  [1] libmemcached/sasl.cc:174
  [2] libmemcached/response.cc:619
  [1] libmemcached/sasl.cc:231
  [3] http://linux.die.net/man/3/sasl_client_start

  
  [Test Case]

  This bug is difficult to reproduce since it depends on the contents of the 
stack.
  However, here is a test case using the fix on Bionic that shows that this fix 
does not cause any problems.

  For testing you need

  1) A memcached server.
     You can setup one by following the instructions in [1],
     or (what I did) create one in the cloud [2].

  2) A client test program to connect to the memcached server.
     One can be found in [3].
     This simple test connects to a memcache server and test basic get/set 
operations.
     Copy paste the C code into a file (sals_test.c) and compile with :
     gcc -o sasl_test -O2 sasl_test.c -lmemcached -pthread

  3) On a machine with the updated version of libmemcached in which the fix is 
applied :
     jo@bionic-vm:~$ dpkg -l | grep libmemcached
  ii  libhashkit-dev:amd64                  1.0.18-4.2ubuntu0.18.04.1           
   amd64        libmemcached hashing functions and algorithms (development 
files)
  ii  libhashkit2:amd64                     1.0.18-4.2ubuntu0.18.04.1           
   amd64        libmemcached hashing functions and algorithms
  ii  libmemcached-dbg:amd64                1.0.18-4.2ubuntu0.18.04.1           
   amd64        Debug Symbols for libmemcached
  ii  libmemcached-dev:amd64                1.0.18-4.2ubuntu0.18.04.1           
   amd64        C and C++ client library to the memcached server (development 
files)
  ii  libmemcached-tools                    1.0.18-4.2ubuntu0.18.04.1           
   amd64        Commandline tools for talking to memcached via libmemcached
  ii  libmemcached11:amd64                  1.0.18-4.2ubuntu0.18.04.1           
   amd64        C and C++ client library to the memcached server
  ii  libmemcachedutil2:amd64               1.0.18-4.2ubuntu0.18.04.1           
   amd64        library implementing connection pooling for libmemcached

     Run the sals_test binary :
     #./sasl_test [username] [password] [server] 
    
     In my case using the credentials and the server created in step 1 : 
     jo@bionic-vm:~$ ./sasl_test 88BAB0 1A99094B77C8935ED9F1461C767DB1F9 
mc2.dev.eu.ec2.memcachier.com
     Get/Set success!

  [1] https://blog.couchbase.com/sasl-memcached-now-available/
  [2] https://www.memcachier.com/
  [3] 
https://blog.memcachier.com/2014/11/05/ubuntu-libmemcached-and-sasl-support/

  [Regression Potential]

  This fix initialises the buffer to 0.
  Any potential regression may include failure of the authentication when using 
SASL.

  [Other Info]

  This bug affects trusty and later.

  * rmadison:
   libmemcached | 1.0.8-1ubuntu2 | trusty  | source
   libmemcached | 1.0.18-4.1     | xenial  | source
   libmemcached | 1.0.18-4.2     | bionic  | source
   libmemcached | 1.0.18-4.2     | cosmic  | source
   libmemcached | 1.0.18-4.2     | disco   | source

  * Debian bug:
  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=919696

  * Upstream seems pretty quiet since 2014

  Unfortunately, because the project seems more or less dead ... it
  seems like we won't be able submit anything upstream and go straight
  to fixing Debian and Ubuntu.

  - Repo:
  bzr branch lp:libmemcached

  - Last commit:
  revno: 1113 [merge]
  committer: Continuous Integration <c...@tangent.org>
  branch nick: workspace
  timestamp: Sun 2014-02-16 03:31:37 -0800
  message:
    Merge bzr://soup.haus/ Build: jenkins-Libmemcached-473

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

-- 
Mailing list: https://launchpad.net/~sts-sponsors
Post to     : sts-sponsors@lists.launchpad.net
Unsubscribe : https://launchpad.net/~sts-sponsors
More help   : https://help.launchpad.net/ListHelp

Reply via email to