Bon, bin bimbamboum après exim, voilà que la libc est dangereuse!!
Vous avez pas le temps de lire c'est trop long: en résumé, s'il y a un binaire SUID (bon, pas n'importe lequel non plus) sur votre distribution, un attaquant ayant un shell sur votre machine peut passer root! BIM! So much for the security.
Comment savoir si je suis impacté? C'est turbo-easy:
$ env -i "GLIBC_TUNABLES=glibc.malloc.mxfast=glibc.malloc.mxfast=A" "Z=`printf '%08192x' 1`" /usr/bin/su --help
Erreur de segmentation
$
Là, vous êtes vulnérable. Heureusement, les security guys de vos distros sont rapides et compétents, et si vous avez fait un update, normalement vous avez ça:
$ env -i "GLIBC_TUNABLES=glibc.malloc.mxfast=glibc.malloc.mxfast=A" "Z=`printf '%08192x' 1`" /usr/bin/su --help
Usage:
su [options] [-] [<user> [<argument>...]]
(...)
$
Et voilà. Merci les mainteners, merci qualys, merci le monde \o/
Et demain? Eh bin le 11 octobre il va falloir patcher curl qui est lui aussi tout pété!
https://twitter.com/bagder/status/1709104796790083606
Pour ceux qui n'ont pas l'app:
Daniel Stenberg (le super developpeur de curl, merci Daniel) : "We are cutting the release cycle short and will release curl 8.4.0 on October 11, including a fix for a severity HIGH CVE. Buckle up."
Un random sur twitter : "Same score as the theoretical ddos? 🙃"
Daniel: "pretty much, yes. But this time actually the worst security problem found in curl in a long time."
Donc voilà, accrochez vos ceintures, tenez fermement vos claviers, et cramponnez vous qu'un zozo ne trouve pas la vuln avant le fix et aille tout casser le nain ternet!
# nitter
Posté par Xanatos . Évalué à 3.
https://nitter.net/bagder/status/1709104796790083606
Merci pour le turbo-easy
Ce fût rapide
# alternatives à curl
Posté par Psychofox (Mastodon) . Évalué à 10. Dernière modification le 04 octobre 2023 à 12:40.
En attendant si vous n'avez pas besoin d'avoir toutes les fonctionnalités de curl (je ne dois pas en utiliser 10%) et que vous voulez juste un outil pour taper sur des api, vous pouvez utiliser httpie (le logiciel libre en ligne de commande, pas la version desktop proprio), rurl ou gurl.
https://github.com/httpie/cli/
https://github.com/kujenga/rurl
https://github.com/kujenga/gurl
# User space
Posté par flagos . Évalué à 3.
Attendez, je comprends pas bien. Je vais peut etre raconter n'importe quoi, mais il me semble que la libC est loade a l’exécution du programme dans le user space. Qu'est ce qui empêche l'attaquant de prendre la lib trouée et de l’exécuter sur la machine qu'il souhaite attaquer ?
Autrement dit, comment est-ce que ce bug peut être résolu par autre chose qu'un fix kernel ?
[^] # Re: User space
Posté par Christie Poutrelle (site web personnel) . Évalué à 2. Dernière modification le 04 octobre 2023 à 15:04.
Je m'avance peut être, mais je pense que la glibc doit avoir un setuid bit ou un truc comme ça. Avec un binaire à côté, t'auras pas le setuid bit et le kernel ne passera pas ta glibc en root.
[^] # Re: User space
Posté par Tonton Th (Mastodon) . Évalué à 3.
En fait, si j'ai bien compris, c'est
ld.so
qui est setuid.[^] # Re: User space
Posté par octane . Évalué à 10. Dernière modification le 04 octobre 2023 à 15:17.
C'est pas la libc qui a les droits root. La libc trouée a un problème de nettoyage d'environnement des binaires SUID.
Le bit SUID il est sur le binaire (/usr/bin/su en l'occurence). Et le binaire, il va pas chercher des libs n'importe où, hein. La libc, il va la chercher dans quelques endroits bien précis. Ces endroits sont généralements own par root. Genre si t'es root, tu peux modif la libc du système et abuser de la vuln pour défoncer un programme suid (mais bon faut déjà être root haha).
Dans la vraie vie, ouais tu peux load des bibliothèques ailleurs que dans /lib /usr/lib etc… genre avec LD_PRELOAD… Sauf que les binaires SUID ne suivent justement pas LD_PRELOAD pour des raisons évidentes de sécurité. Donc bon, tu as beau copier la lib trouée sur un système sain, tu ne peux pas l'utiliser avec les binaires suid du système.
[^] # Re: User space
Posté par flagos . Évalué à 5.
Top, merci pour l'explication. Je ne savais pas que c'était pas possible de jouer avec LD_PRELOAD dans ce cas là. J'imagine que c'est pareil pour LD_LIBRARY_PATH.
J'ai l'impression que ce petit détail est documenté ici: https://man7.org/linux/man-pages/man8/ld-linux.so.8.html#ENVIRONMENT
# Tous en chœur
Posté par refreketu . Évalué à 0.
♪ des milliers de vulns vont en farandole, une vuln vuln vole ♫
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.