From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Subject: bug#37744: Per-user profile directory hijack (CVE-2019-17365 for Nix) Date: Wed, 16 Oct 2019 19:05:44 +0200 Message-ID: <87ftjsk4d3.fsf@gnu.org> References: <87o8yjsr8o.fsf@gnu.org> <87blujsqq0.fsf@gnu.org> <87y2xno85o.fsf@nckx> <87d0eyuqzd.fsf@gnu.org> <87mue2nkrj.fsf@nckx> <8736fttby6.fsf@gnu.org> <87tv89rnva.fsf@gnu.org> <878spksty3.fsf@gnu.org> <20191016142221.qys2y2cb4spmwscq@pelzflorian.localdomain> <87ftjsoh40.fsf@nckx> <20191016151922.5fanqbt6kiv4offx@pelzflorian.localdomain> <87eezcogtf.fsf@nckx> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:41691) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iKmkN-0004Up-Ea for bug-guix@gnu.org; Wed, 16 Oct 2019 13:06:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iKmkM-0002Va-8D for bug-guix@gnu.org; Wed, 16 Oct 2019 13:06:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:37640) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iKmkM-0002VV-5T for bug-guix@gnu.org; Wed, 16 Oct 2019 13:06:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1iKmkL-0005e9-RV for bug-guix@gnu.org; Wed, 16 Oct 2019 13:06:01 -0400 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: <87eezcogtf.fsf@nckx> (Tobias Geerinckx-Rice's message of "Wed, 16 Oct 2019 17:23:08 +0200") List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: "bug-Guix" To: Tobias Geerinckx-Rice Cc: 37744@debbugs.gnu.org, guix-security@gnu.org, guix-i18n@gnu.org Hi! Thanks for your feedback Tobias, Florian, and Julien! Taking that into account, I propose this (I=E2=80=99ve also changed the tit= le to make it hopefully clearer): --8<---------------cut here---------------start------------->8--- (entry (commit "FIXME") (title (en "Insecure @file{/var/guix/profiles/per-user} permissions= ")) (body (en "The default user profile, @file{~/.guix-profile}, points to @file{/var/guix/profiles/per-user/$USER}. Until now, @file{/var/guix/profiles/per-user} was world-writable, allowing the @command{guix} command to create the @code{$USER} sub-directory. On a multi-user system, this allowed a malicious user to create and populate that @code{$USER} sub-directory for another user that had not yet logged in. Since @code{/var/@dots{}/$USER} is in @code{$PATH}, the target user could e= nd up running attacker-provided code. See @uref{https://issues.guix.gnu.org/issue/37744} for more information. This is now fixed by letting @command{guix-daemon} create these directories= on behalf of users and removing the world-writable permissions on @code{per-user}. On multi-user systems, we recommend updating the daemon n= ow. To do that, run @code{sudo guix pull} if you're on a foreign distro, or run @code{guix pull && sudo guix system reconfigure @dots{}} on Guix System. In both cases, make sure to restart the service afterwards, with @code{herd} or @code{systemctl}."))) --8<---------------cut here---------------end--------------->8--- If this is fine with you, I hereby request translation of this entry. :-) I=E2=80=99ll commit the change within a few hours if there are no objection= s. Ludo=E2=80=99.