# Patch sécurité noyau CVE-2016-0728

**URL:** <https://www.debian-fr.org/t/patch-securite-noyau-cve-2016-0728/68007>\
**Category:** Trucs et Astuces\
**Created:** [Février 21, 2016, 10:13 UTC](https://www.debian-fr.org/t/patch-securite-noyau-cve-2016-0728/68007 "2016-02-21T22:13:56Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![mini56](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/96bed5/32.png) [@mini56](https://www.debian-fr.org/u/mini56)\
**Post date:** [Février 21, 2016, 10:13 UTC](https://www.debian-fr.org/t/patch-securite-noyau-cve-2016-0728/68007/1 "2016-02-21T22:13:56Z")

</div>

Bonjour,

Administrateur de serveurs sous Debian je suis confronté, à chaque mise à jour impactant le noyau, à un problème de taille : dois-je rebooter 😲  
Pour élucider cette question je consulte plusieurs sources afin de connaitre l’impact de la mise à jour.  
Je vous propose de vous donner quelques tuyaux en prenant l’exemple de la faille CVE-2016-0728 qui est pour ce cas une faille majeure impactant les noyaux \> 3.8. Pour info, je me base sur la version stable du moment (Jessie) dans mes explications.

Une des premières pistes est de configurer votre gestionnaire de paquet afin qu’il vous affiche les changelogs. Pour cela le mieux est de faire un tour par le paquet apt-listchanges. Paquet sur lequel je ne m’attarderais pas, car sa doc est très bien faite.

```auto
man apt-listchanges
```

Le changelog a dans mon cas permis de récupérer le numéro identifiant la faille.

```auto
KEYS: Fix keyring ref leak in join_session_keyring() (CVE-2016-0728)
```

Etant donné que le changelog n’est pas bavard j’ai commencé mon investigation.

Tout d’abord, le site [https://security-tracker.debian.org/tracker/CVE-2016-0728](https://security-tracker.debian.org/tracker/CVE-2016-0728) m’a permis de connaitre les versions de debian impactées et surtout les noyaux dans mon cas.

Grâce à un uname –a j’ai pu voir la version de mon noyau qui … est vulnérable 😢

```auto
jessie	3.16.7-ckt11-1+deb8u3	vulnerable
```

Je peux aussi voir que le dépôt sécurité contient la mise à jour

```auto
jessie (security)	3.16.7-ckt20-1+deb8u3	fixed
```

Ce qu’il faut savoir, c’est que chaque mise à jour critique de noyaux ne me concerne pas forcement, car celle-ci peux être pour un module désactivé ou non utilisé sur mon noyau.

Pour avoir encore plus d’information on peut aller directement voir sur les logs du git du noyau linux [https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/) et faire une recherche avec le numéro de la faille.

Ce qui me permet de trouver un changelog plus précis, et dans ce cas avec même un bout de code permettant de tester la présence de la faille sur une machine vulnérable [https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=23567fd052a9abb6d67fe8e7a9ccdd9800a540f2](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=23567fd052a9abb6d67fe8e7a9ccdd9800a540f2)

Attention, le script donner peut nuire à la stabilité du noyau, évité de le lancer sur une machine de PROD.

Ici on peut voir que la faille vient toucher les clés de session utilisateur permettant une escalade de privilège. La faille est donc bien critique et me concerne car elle touche un élément du noyau que j’utilise. De plus, au vu de l’impact sur le noyau et ne possédant pas de noyau patchable à chaud, je devrais surement passer par un reboot 😢

Pour aller plus loin on peut aussi aller voir sur les logs du git Debian dédié au noyau pour voir s’ils ont bien pris en compte le correctif [https://anonscm.debian.org/cgit/kernel/linux.git/log/](https://anonscm.debian.org/cgit/kernel/linux.git/log/)  
En se plaçant sur la branche jessie-security [https://anonscm.debian.org/cgit/kernel/linux.git/log/?h=jessie-security](https://anonscm.debian.org/cgit/kernel/linux.git/log/?h=jessie-security)  
On peut voir le log concernant l’enregistrement de la faille avec tous les détails trouvés précédemment [https://anonscm.debian.org/cgit/kernel/linux.git/commit/?h=jessie-security&id=0ac8c3e88cf1ea329ede357f2a01a9b1a8734e24](https://anonscm.debian.org/cgit/kernel/linux.git/commit/?h=jessie-security&id=0ac8c3e88cf1ea329ede357f2a01a9b1a8734e24)

Et on peut aussi voir son avancement dans un deuxième log [https://anonscm.debian.org/cgit/kernel/linux.git/commit/?h=jessie-security&id=5c6e7b5fbe9e5e5b3ae978c5a1aa049e9b464de3](https://anonscm.debian.org/cgit/kernel/linux.git/commit/?h=jessie-security&id=5c6e7b5fbe9e5e5b3ae978c5a1aa049e9b464de3)

`-linux (3.16.7-ckt20-1+deb8u3) UNRELEASED; urgency=medium
+linux (3.16.7-ckt20-1+deb8u3) jessie-security; urgency=high`  
Log ou on voit qu’il est disponible dans le dépôt security et qu’il ne sera pas déployé pour le dépôt Jessie ce qui est normal.

Et donc pour finir j’ai finalement déployé le patch sur mon serveur

```auto
apt-get update && apt-get upgrade
```

Et en faisant un uname –a, ne voyant pas la version patché (3.16.7-ckt20-1+deb8u3) déployé cela confirme la nécessité d’un reboot 😲

J’ai donc finis par planifier un reboot via un Cron pour cette nuit afin de ne pas impacter la PROD.

Voila 😃 j’espère en aider quelqu’un dans leurs recherches, et si certains d’entre vous on d’autre tuyaux vous êtes les bienvenus ![:041](https://www.debian-fr.org/uploads/default/original/1X/bfe857c9119752799c3eac55ca37a50312c51282.gif "applaudit")  
N’hésiter par à me corriger si jamais j’ai dit une grosse connerie ![:075](https://www.debian-fr.org/uploads/default/original/1X/660d70f9421e915a2561756e6d9f245d4f609347.gif "dequoi")

Et bon reboot à tous ![:079](https://www.debian-fr.org/uploads/default/original/1X/905412cc2e3f543d94c645aa4231b1f3197e2548.gif "flagelle")

---

<div class="post-metadata">

**Author:** ![BelZeButh](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/b/5fc32e/32.png) [@BelZeButh](https://www.debian-fr.org/u/BelZeButh)\
**Post date:** [Février 21, 2016, 10:14 UTC](https://www.debian-fr.org/t/patch-securite-noyau-cve-2016-0728/68007/2 "2016-02-21T22:14:01Z")

</div>

[quote=“mini56”]je suis confronté, à chaque mise à jour impactant le noyau, à un problème de taille : [mono]dois-je rebooter[/mono] …  
Pour élucider cette question [mono]je consulte …[/mono][/quote]  
[mono]checkrestart[/mono] fournit par [mono]debian-goodies[/mono] et [mono]needrestart[/mono] sont là pour ça.

[quote]Paquet : debian-goodies

Description : Small toolbox-style utilities for Debian systems  
These programs are designed to integrate with standard shell tools, extending them to operate on the Debian packaging system.

dgrep - Search all files in specified packages for a regex  
dglob - Generate a list of package names which match a pattern

These are also included, because they are useful and don’t justify their own packages:

debget - Fetch a .deb for a package in APT’s database  
dpigs - Show which installed packages occupy the most space  
debman - Easily view man pages from a binary .deb without extracting  
debmany - Select manpages of installed or uninstalled packages  
checkrestart - Help to find and restart processes which are using old  
versions of upgraded files (such as libraries)  
popbugs - Display a customized release-critical bug list based on  
packages you use (using popularity-contest data)  
which-pkg-broke - find which package might have broken another[/quote]

[quote]Paquet : needrestart

Description : check which daemons need to be restarted after library upgrades  
needrestart checks which daemons need to be restarted after library upgrades. It is inspired by checkrestart from the debian-goodies package.

Features:

- supports (but does not require) systemd
- binary blacklisting (i.e. display managers)
- tries to detect pending kernel upgrades
- tries to detect required restarts of interpreter based daemons (supports Perl, Python, Ruby)
- fully integrated into apt/dpkg using hooks  
Site : [github.com/liske/needrestart](https://github.com/liske/needrestart)  
[/quote]

---

<div class="post-metadata">

**Author:** ![mini56](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/96bed5/32.png) [@mini56](https://www.debian-fr.org/u/mini56)\
**Post date:** [Février 21, 2016, 10:14 UTC](https://www.debian-fr.org/t/patch-securite-noyau-cve-2016-0728/68007/3 "2016-02-21T22:14:02Z")

</div>

[quote=“BelZéButh”]  
[mono]checkrestart[/mono] fournit par [mono]debian-goodies[/mono] et [mono]needrestart[/mono] sont là pour ça.[/quote]

Merci je ne connaissait pas l’outil 🙂

Par contre le fait qu’une mise à jour demande un reboot ne veux pas forcement dire que je vais le faire.  
En effet si le patch cible une vulnérabilité qui ne m’impacte pas, alors je n’est aucun intéret à rebooter.

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Février 21, 2016, 10:14 UTC](https://www.debian-fr.org/t/patch-securite-noyau-cve-2016-0728/68007/4 "2016-02-21T22:14:03Z")

</div>

[mono]checkrestart[/mono] dit quand il faut redémarrer après une mise à jour du noyau, vraiment ? De ce que je sais de son mode de fonctionnement, j’en doute (il cherche les fichiers encore ouverts et remplacés, je doute que cela concerne aucun fichier appartenant au noyau).

Il faut toujours redémarrer après une mise à jour du noyau, et pas seulement pour des raisons de sécurité mais aussi de compatibilité de l’ABI. Sinon la mise à jour ne sert à rien.

---

<div class="post-metadata">

**Author:** ![BelZeButh](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/b/5fc32e/32.png) [@BelZeButh](https://www.debian-fr.org/u/BelZeButh)\
**Post date:** [Février 21, 2016, 10:14 UTC](https://www.debian-fr.org/t/patch-securite-noyau-cve-2016-0728/68007/5 "2016-02-21T22:14:03Z")

</div>

> [@](#):
>
> [mono]checkrestart[/mono] dit quand il faut redémarrer après une mise à jour du noyau, vraiment ?

Je ne pense pas l’avoir dit.  
Par contre, [mono]needrestart[/mono], lui, fait cela très bien.

---

<div class="post-metadata">

**Author:** ![BelZeButh](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/b/5fc32e/32.png) [@BelZeButh](https://www.debian-fr.org/u/BelZeButh)\
**Post date:** [Février 21, 2016, 10:14 UTC](https://www.debian-fr.org/t/patch-securite-noyau-cve-2016-0728/68007/6 "2016-02-21T22:14:26Z")

</div>

[2.2. Quoi de neuf dans la distribution ?](https://www.debian.org/releases/jessie/amd64/release-notes/ch-whats-new.fr.html#security)

[quote=“2.2.4. Sécurité”]Le paquet [mono]needrestart[/mono] est une nouveauté de cette version.  
Lorsqu’il est installé, il vérifiera, après chaque mise à jour par APT, la nécessité de redémarrer des services pour utiliser les modifications et proposera ainsi de les redémarrer.  
[mono]Il est recommandé d’installer le paquet needrestart pour s’assurer que les mises à jour de sécurité des bibliothèques sont bien propagées dans les services[/mono]. [/quote]

> [@](#):
>
> [![](http://pix.toile-libre.org/upload/img/1453536441.png)](http://pix.toile-libre.org/?img=1453536441.png)

[quote=“debian-goodies”][code][09:19:19] ~ # checkrestart  
Found 62 processes using old versions of upgraded files  
(42 distinct programs)  
(31 distinct packages)

Of these, 6 seem to contain systemd service definitions or init scripts which can be used to restart them.  
The following packages seem to have definitions that could be used  
to restart their services:  
seeks-experimental:  
2368 /usr/bin/seeks  
bluez:  
2026 /usr/lib/bluetooth/bluetoothd  
openssh-server:  
2463 /usr/sbin/sshd  
sane-utils:  
2329 /usr/sbin/saned  
2331 /usr/sbin/saned  
cgmanager:  
1753 /sbin/cgmanager  
dbus:  
2830 /usr/bin/dbus-daemon  
1847 /usr/bin/dbus-daemon  
2746 /usr/bin/dbus-daemon  
These are the initd scripts:  
service seeks-experimental restart  
service bluetooth restart  
service ssh restart  
service saned restart  
service cgmanager restart  
service cgproxy restart  
service dbus restart

These processes (25) do not seem to have an associated init script to restart them:  
yakuake:  
2979 /usr/bin/yakuake  
udisks2:  
2840 /usr/lib/udisks2/udisksd  
libkf5globalaccel-bin:  
2798 /usr/bin/kglobalaccel5  
knotes:  
2920 /usr/bin/akonadi\_notes\_agent  
akonadi-server:  
2888 /usr/bin/akonadi\_control  
2910 /usr/bin/akonadi\_agent\_launcher  
2911 /usr/bin/akonadi\_agent\_launcher  
2913 /usr/bin/akonadi\_agent\_launcher  
2914 /usr/bin/akonadi\_agent\_launcher  
2907 /usr/bin/akonadi\_agent\_launcher  
2906 /usr/bin/akonadi\_agent\_launcher  
2905 /usr/bin/akonadi\_agent\_launcher  
2904 /usr/bin/akonadi\_agent\_launcher  
2903 /usr/bin/akonadi\_agent\_launcher  
2892 /usr/bin/akonadiserver  
smart-notifier:  
2851 /usr/bin/smart-notifier  
plasma-desktop:  
2787 /usr/bin/kaccess  
dbus-x11:  
2745 /usr/bin/dbus-launch  
kdelibs-bin:  
2878 /usr/bin/kdeinit4  
28869 /usr/bin/kdeinit4  
28876 /usr/bin/kdeinit4  
28877 /usr/bin/kdeinit4  
28870 /usr/bin/kdeinit4  
2873 /usr/bin/kdeinit4  
2876 /usr/bin/kdeinit4  
kdepim-runtime:  
2909 /usr/bin/akonadi\_birthdays\_resource  
2919 /usr/bin/akonadi\_newmailnotifier\_agent  
2917 /usr/bin/akonadi\_migration\_agent  
2915 /usr/bin/akonadi\_maildispatcher\_agent  
kwin-x11:  
2801 /usr/bin/kwin\_x11  
consolekit:  
2619 /usr/bin/ck-launch-session  
2667 /usr/sbin/console-kit-daemon  
kmail:  
2916 /usr/bin/akonadi\_mailfilter\_agent  
2912 /usr/bin/akonadi\_followupreminder\_agent  
2908 /usr/bin/akonadi\_archivemail\_agent  
2921 /usr/bin/akonadi\_sendlater\_agent  
polkit-kde-agent-1:  
2814 /usr/lib/x86\_64-linux-gnu/libexec/polkit-kde-authentication-agent-1  
xserver-xorg-core:  
1993 /usr/lib/xorg/Xorg  
kaccessible:  
2866 /usr/lib/kde4/libexec/kaccessibleapp  
at-spi2-core:  
2833 /usr/lib/at-spi2-core/at-spi2-registryd  
korganizer:  
2849 /usr/bin/korgac  
iceweasel:  
5924 /usr/lib/iceweasel/iceweasel  
kmix:  
2861 /usr/bin/kmix  
kactivities:  
2812 /usr/bin/kactivitymanagerd  
libkf5screen6:  
2836 /usr/lib/x86\_64-linux-gnu/libexec/kf5/kscreen\_backend\_launcher  
kinit:  
2795 /usr/bin/kdeinit5  
2778 /usr/bin/kdeinit5  
2779 /usr/bin/kdeinit5  
2781 /usr/bin/kdeinit5  
upower:  
2847 /usr/lib/upower/upowerd  
plasma-workspace:  
2802 /usr/bin/krunner  
2969 /usr/bin/kuiserver5  
2805 /usr/bin/plasmashell  
[09:19:43] ~ #[/code][/quote]
