diff options
author | Ludovic Courtès <ludo@gnu.org> | 2021-03-18 12:34:02 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2021-03-18 12:34:02 +0100 |
commit | 1955ef93b76e51cab5bed4c90f7eb9df7035355a (patch) | |
tree | 3d866cf02daa9a48c8c2770eb3151b3fca522fae /etc | |
parent | 94f03125463ee0dba2f7916fcd43fd19d4b6c892 (diff) | |
download | guix-1955ef93b76e51cab5bed4c90f7eb9df7035355a.tar guix-1955ef93b76e51cab5bed4c90f7eb9df7035355a.tar.gz |
news: Add entry for '--keep-failed' vulnerability.
* etc/news.scm: Add entry.
Diffstat (limited to 'etc')
-rw-r--r-- | etc/news.scm | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/etc/news.scm b/etc/news.scm index 6a968eb856..2b7f6b3836 100644 --- a/etc/news.scm +++ b/etc/news.scm @@ -20,6 +20,64 @@ (channel-news (version 0) + (entry (commit "ec7fb669945bfb47c5e1fdf7de3a5d07f7002ccf") + (title + (en "Risk of local privilege escalation @i{via} @command{guix-daemon}") + (fr "Risque d'élévation locale de privilèges @i{via} @command{guix-daemon}")) + (body + (en "A security vulnerability that can lead to local privilege +escalation has been found in @command{guix-daemon}. It affects multi-user +setups in which @command{guix-daemon} runs locally. + +It does @emph{not} affect multi-user setups where @command{guix-daemon} runs +on a separate machine and is accessed over the network, @i{via} +@env{GUIX_DAEMON_SOCKET}, as is customary on cluster setups. Machines where +the Linux @uref{https://www.kernel.org/doc/Documentation/sysctl/fs.txt, +``protected hardlink''} feature is enabled, which is common, are also +unaffected---this is the case when the contents of +@file{/proc/sys/fs/protected_hardlinks} are @code{1}. + +The attack consists in having an unprivileged user spawn a build process, for +instance with @command{guix build}, that makes its build directory +world-writable. The user then creates a hardlink within the build directory +to a root-owned file from outside of the build directory, such as +@file{/etc/shadow}. If the user passed the @option{--keep-failed} option and +the build eventually fails, the daemon changes ownership of the whole build +tree, including the hardlink, to the user. At that point, the user has write +access to the target file. + +You are advised to upgrade @command{guix-daemon}. Run @command{info \"(guix) +Upgrading Guix\"}, for info on how to do that. See +@uref{https://issues.guix.gnu.org/47229} for more information on this bug.") + (fr "Une faille de sécurité pouvant mener à une élévation locale de +privilèges a été trouvée dans @command{guix-daemon}. Elle touche les +installations multi-utilisateur·ices dans lesquelles @command{guix-daemon} +tourne en local. + +Elle @emph{n'affecte pas} les installations où @command{guix-daemon} tourne +sur une machine séparée et qu'on y accède à travers le réseau, @i{via} +@env{GUIX_DAEMON_SOCKET}, comme c'est typiquement le cas sur les grappes de +calcul (@i{clusters}). Les machines où les +@uref{https://www.kernel.org/doc/Documentation/sysctl/fs.txt, ``liens +protégés''} de Linux sont activés, ce qui est courant, ne sont pas non plus +touchées ; cette fonctionnalité est activée si le contenu de +@file{/proc/sys/fs/protected_hardlinks} est @code{1}. + +Pour mener cette attaque, un·e utilisateur·rice démarre un processus de +compilation, par exemple avec @command{guix build}, qui rend le répertoire de +compilation inscriptible pour tout le monde. La personne créée ensuite un +lien dur (@i{hard link}) dans ce répertoire vers un fichier appartenant à +@code{root}, tel que @file{/etc/shadow}. Si on a passé l'option +@option{--keep-failed} et que la compilation finit par échouer, le démon met +l'utilisateur·rice appelant·e comme propriétaire de l'ensemble du répertoire +de compilation, y compris le lien. À ce stade, cette personne a accès en +écriture sur le fichier cible. + +Nous conseillons de mettre à jour @command{guix-daemon}. Lancer @command{info +\"(guix.fr) Mettre à niveau Guix\"} pour voir comment faire. Voir +@uref{https://issues.guix.gnu.org/47229} pour plus d'informations sur cette +faille."))) + (entry (commit "77c2f4e2068ebec3f384c826c5a99785125ff72c") (title (en "@code{qemu-binfmt-service-type} is usable for any container") |