mirror of
https://github.com/morgan9e/systemd
synced 2026-04-14 08:25:20 +09:00
bus-proxy: don't fake data we don't have
UDS sockets transmit EUID+EGID only. Don't try to fake data we don't know! Otherwise, this might be used to override user-limits by non-root setuid programs (by faking UID==EUID). Now that sd-bus is fixed to always use EUID even on UDS, we can safely set all other UID/GID fields to INVALID.
This commit is contained in:
@@ -81,14 +81,14 @@ static int proxy_create_destination(Proxy *p, const char *destination, const cha
|
||||
b->fake_pids.pid = p->local_creds.pid;
|
||||
b->fake_pids_valid = true;
|
||||
|
||||
b->fake_creds.uid = p->local_creds.uid;
|
||||
b->fake_creds.uid = UID_INVALID;
|
||||
b->fake_creds.euid = p->local_creds.uid;
|
||||
b->fake_creds.suid = p->local_creds.uid;
|
||||
b->fake_creds.fsuid = p->local_creds.uid;
|
||||
b->fake_creds.gid = p->local_creds.gid;
|
||||
b->fake_creds.suid = UID_INVALID;
|
||||
b->fake_creds.fsuid = UID_INVALID;
|
||||
b->fake_creds.gid = GID_INVALID;
|
||||
b->fake_creds.egid = p->local_creds.gid;
|
||||
b->fake_creds.sgid = p->local_creds.gid;
|
||||
b->fake_creds.fsgid = p->local_creds.gid;
|
||||
b->fake_creds.sgid = GID_INVALID;
|
||||
b->fake_creds.fsgid = GID_INVALID;
|
||||
b->fake_creds_valid = true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user