angler-fishThe Vulnerability History Project

CVE-2020-13776
aka Mr. 0Day

Systemd used to mishandle how numerical usernames get handled. Usernames that contain decimal digits or even "0x" followed by hexadecimal digits get handled incorectly. The issue exists due to an incomplete fix from CVE-2019-1000082 which only fix handling decimal values and not octal (having a leading 0 such as 0500 read as 320 in decimal) or hexadecimal such as 0x2b3bfa0. The use of 0x0 user accounts were suppose to be an intended feature. Successful exploitation of this vulnerability could lead to disclosure of sensitive information, addition or modification of data, or Denial of Service (DoS).



This has to be a design mistake with some planning error backing from fixing the CVE-2017-1000082 issue (https://github.com/systemd/systemd/issues/6237). The issue for that CVE was first thought to be solved at that time by learning how to handle decimal and digit values in username. What was considered at all was how handling any other base number would work at all. Specially base 16 and base 8 values. In https://github.com/systemd/systemd/issues/15985, a hex input such as 0x2b3bfa0 would cause the CVE-2020-13776 to appear. It also apeared with octal values such as 0500 being read as octal due to a leading zero. They were being used also as user indetifiers and when tried to check for them, they don't exist due to different interpetation of base number values. The fix to this wasn't too complicated as all it needed was to have them be use in base 10 and only base 10. https://github.com/systemd/systemd/pull/15991

  • There are no articles here... yet

Timeline

Hover over an event to see its title.
Click on the event to learn more.
Filter by event type with the buttons below.

expand_less