Submitted via IRC for TheMightyBuzzard
A bug in Linux's systemd init system causes root permissions to be given to services associated with invalid usernames, and while this could pose a security risk, exploitation is not an easy task.
A developer who uses the online moniker "mapleray" last week discovered a problem related to systemd unit files, the configuration files used to describe resources and their behavior. Mapleray noticed that a systemd unit file containing an invalid username – one that starts with a digit (e.g. "0day") – will initiate the targeted process with root privileges instead of regular user privileges.
Systemd is designed not to allow usernames that start with a numeric character, but Red Hat, CentOS and other Linux distributions do allow such usernames.
"It's systemd's parsing of the User= parameter that determines the naming doesn't follow a set of conventions, and decides to fall back to its default value, root," explained developer Mattias Geniar.
While this sounds like it could be leveraged to obtain root privileges on any Linux installation using systemd, exploiting the bug in an attack is not an easy task. Geniar pointed out that the attacker needs root privileges in the first place to edit the systemd unit file and use it.
[...] Systemd developers have classified this issue as "not-a-bug" and they apparently don't plan on fixing it. Linux users are divided on the matter – some believe this is a vulnerability that could pose a serious security risk, while others agree that a fix is not necessary.
See, this is why we can't have nice init systems.
Source: http://www.securityweek.com/linux-systemd-gives-root-privileges-invalid-usernames
(Score: 2) by vux984 on Tuesday July 04 2017, @06:20PM (2 children)
Probably. But EVEN if that's how they see it they STILL have a bug.
If the systemd team wants to enforce a policy of no usernames that start with a digit, fine, that would be in keeping with their arrogance and ego... but at the very least they should properly reject those credentials as invalid.
The failure mode for attempting to run a process with "invalid" credentials should NEVER be "run it as root".
(Score: 3, Touché) by maxwell demon on Tuesday July 04 2017, @06:43PM (1 child)
Nah, if Poettering implements this that way, it's obviously exactly the right thing. To follow his lead, I'm going to patch login with the following code:
SCNR :-)
The Tao of math: The numbers you can count are not the real numbers.
(Score: 2) by DECbot on Wednesday July 05 2017, @04:40PM
I understand it to be a little more complex than that...
cats~$ sudo chown -R us /home/base