(checks again) Yes, fixed in 5.56 looks right.

commit 3a40bef49305f8327635b81ac8be52a3ca063d5a
Author:     Luiz Augusto von Dentz <luiz.von.de...@intel.com>
AuthorDate: Mon Jan 4 10:38:31 2021 -0800
Commit:     Luiz Augusto von Dentz <luiz.von.de...@intel.com>
CommitDate: Tue Jan 5 10:41:27 2021 -0800

landed on master before the next tag, which was:

commit 482929f12b645f652d378fbe8d0a5b7c05d65c4f (tag: 5.56)
Author:     Marcel Holtmann <mar...@holtmann.org>
AuthorDate: Mon Feb 22 21:12:40 2021 +0100
Commit:     Marcel Holtmann <mar...@holtmann.org>
CommitDate: Mon Feb 22 21:12:40 2021 +0100

However, it doesn't look like it's present on master anymore because it
was rewritten 6 hours later:

commit 6a50b6aeda78a88eafb177718109c256eec077a6
Author:     Luiz Augusto von Dentz <luiz.von.de...@intel.com>
AuthorDate: Tue Jan 5 16:45:37 2021 -0800
Commit:     Luiz Augusto von Dentz <luiz.von.de...@intel.com>
CommitDate: Tue Jan 5 16:55:32 2021 -0800

I assume the rewrite is free of the original bug, and so still fixed in
5.56.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to bluez in Ubuntu.
https://bugs.launchpad.net/bugs/1926548

Title:
  The gatt protocol has out-of-bounds read that leads to information
  leakage

Status in Bluez Utilities:
  Fix Released
Status in bluez package in Ubuntu:
  Fix Released
Status in bluez source package in Hirsute:
  Fix Released
Status in bluez source package in Impish:
  Fix Released

Bug description:
  I installed the latest bluez 5.53-0ubuntu3 version using apt-get install. It 
seems that this vulnerability was silently fixed in the latest bluez5.8, and 
the cve number was not assigned.
  But this vulnerability now affects the latest ubuntu system
  This vulnerability allows an attacker to remotely obtain most of the contents 
of the heap without authentication.
  The vulnerability code is stored in cli_feat_read_cb, this function does not 
verify the offset parameter
  The vulnerability code is as follows

  gatt-database.c

  1054:static void cli_feat_read_cb(struct gatt_db_attribute *attrib,
                                        unsigned int id, uint16_t offset,
                                        uint8_t opcode, struct bt_att *att,
                                        void *user_data){
  ...
  len = sizeof(state->cli_feat)-offset;
  value = len? &state->cli_feat[offset]: NULL;

  done:
  gatt_db_attribute_read_result(attrib, id, ecode, value, len);

  
  }
  len will become very large due to integer overflow, so that a message of mtu 
(0x90) size will be sent later
  The message content is the buffer pointed to by value, which can be most 
addresses on the heap

  poc is very simple, the core is this line of code

      memcpy(&buf[0],"\x0c\x0b\x00\x0d\x00",5);

  0xc stands for read
  \x0b\x00 represents the handle of the client feature, which can be obtained 
through the find info message, which seems to be 0b by default
  \x0d\x00 is offset0xd

  
  this vulnerability is serious
  I want to apply for a cve number, although this has been silently fixed in 
the latest version

To manage notifications about this bug go to:
https://bugs.launchpad.net/bluez/+bug/1926548/+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

Reply via email to