Public bug reported: [Impact] The Base64Encode function incorrectly encodes using char instead of uint8_t, leading to characters with the high bit set to be encoded wrongly. This function is used for base authentication, and high bits are set for UTF-8 character sequences, so it's likely affecting people with utf-8 user names and passwords and might cause them to be denied access to their https resources (though arguably they'd work around that).
[Test case] A unit test has been added that checks that the encoding is correct. [Where problems could occur] This only affects the base64 encoding function, which is only used for quoting user names and passwords in basic auth in http, but it's also exposed to library users and like in python-apt, so problems could occur wherever they use that base64 encoding function as well. ** Affects: apt (Ubuntu) Importance: Undecided Status: Fix Released ** Affects: apt (Ubuntu Xenial) Importance: Undecided Status: Confirmed ** Affects: apt (Ubuntu Bionic) Importance: Undecided Status: Confirmed ** Affects: apt (Ubuntu Focal) Importance: Undecided Status: Confirmed ** Affects: apt (Ubuntu Groovy) Importance: Undecided Status: Triaged ** Affects: apt (Ubuntu Hirsute) Importance: Undecided Status: Fix Released ** Also affects: apt (Ubuntu Xenial) Importance: Undecided Status: New ** Also affects: apt (Ubuntu Focal) Importance: Undecided Status: New ** Also affects: apt (Ubuntu Groovy) Importance: Undecided Status: New ** Also affects: apt (Ubuntu Hirsute) Importance: Undecided Status: New ** Also affects: apt (Ubuntu Bionic) Importance: Undecided Status: New ** Changed in: apt (Ubuntu Hirsute) Status: New => Fix Released ** Changed in: apt (Ubuntu Groovy) Status: New => Triaged ** Changed in: apt (Ubuntu Focal) Status: New => Confirmed ** Changed in: apt (Ubuntu Groovy) Status: Triaged => Confirmed ** Changed in: apt (Ubuntu Bionic) Status: New => Confirmed ** Changed in: apt (Ubuntu Xenial) Status: New => Confirmed ** Changed in: apt (Ubuntu Groovy) Status: Confirmed => Triaged -- 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/1916050 Title: Invalid base64 for high-bit characters Status in apt package in Ubuntu: Fix Released Status in apt source package in Xenial: Confirmed Status in apt source package in Bionic: Confirmed Status in apt source package in Focal: Confirmed Status in apt source package in Groovy: Triaged Status in apt source package in Hirsute: Fix Released Bug description: [Impact] The Base64Encode function incorrectly encodes using char instead of uint8_t, leading to characters with the high bit set to be encoded wrongly. This function is used for base authentication, and high bits are set for UTF-8 character sequences, so it's likely affecting people with utf-8 user names and passwords and might cause them to be denied access to their https resources (though arguably they'd work around that). [Test case] A unit test has been added that checks that the encoding is correct. [Where problems could occur] This only affects the base64 encoding function, which is only used for quoting user names and passwords in basic auth in http, but it's also exposed to library users and like in python-apt, so problems could occur wherever they use that base64 encoding function as well. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1916050/+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