<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Geekfault &#187; faille</title>
	<atom:link href="http://geekfault.org/tag/faille/feed/" rel="self" type="application/rss+xml" />
	<link>http://geekfault.org</link>
	<description>If it doesn&#039;t segfault, you&#039;re doing it wrong.</description>
	<lastBuildDate>Tue, 08 May 2012 17:13:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Faille critique dans tous les noyaux Linux</title>
		<link>http://geekfault.org/2009/08/14/faille-critique-dans-tous-les-noyaux-linux/</link>
		<comments>http://geekfault.org/2009/08/14/faille-critique-dans-tous-les-noyaux-linux/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 19:18:19 +0000</pubDate>
		<dc:creator>Tito</dc:creator>
				<category><![CDATA[Logiciel]]></category>
		<category><![CDATA[faille]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[sécurité]]></category>

		<guid isPermaLink="false">http://geekfault.org/?p=1001</guid>
		<description><![CDATA[Hier, Tavis Ormandy et Julien Tinnes (Google Security) ont dévoilé une faille qui affecte tous les kernels Linux 2.4 et 2.6 depuis 2001. C&#8217;est un bug de type NULL Pointer Deference qui permet au pirate d&#8217;exécuter n&#8217;importe quel code au niveau du kernel et donc d&#8217;acquérir les droits root. NULL Pointer Dans le noyau Linux, [...]
<h3>Si vous avez aimé ce post...</h3><ol>
<li><a href='http://geekfault.org/2011/10/14/lancer-votre-dual-booting-windows-dans-une-virtualbox/' rel='bookmark' title='Lancer votre dual-booting Windows dans une VirtualBox'>Lancer votre dual-booting Windows dans une VirtualBox</a></li>
<li><a href='http://geekfault.org/2010/05/13/linux-laptop-ultimate-powersaving/' rel='bookmark' title='Linux &#8211; Laptop &#8211; Ultimate Powersaving !'>Linux &#8211; Laptop &#8211; Ultimate Powersaving !</a></li>
<li><a href='http://geekfault.org/2009/05/31/chromium-google-chrome-sous-linux/' rel='bookmark' title='Chromium, le Google Chrome sous Linux sans émulation'>Chromium, le Google Chrome sous Linux sans émulation</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://geekfault.org/wp-content/uploads/2009/08/Exploit-Wunderbar.png" title="Exploit Wunderbar" rel="lightbox.1001"><img style=' float: left; padding: 4px; margin: 0 7px 2px 0;' align="left"   src="http://geekfault.org/wp-content/uploads/2009/08/Exploit-Wunderbar-300x189.png" alt="Exploit Wunderbar" title="Exploit Wunderbar" width="300" height="189" class="alignleft size-medium wp-image-1002" /></a>Hier, Tavis Ormandy et Julien Tinnes (Google Security) <a href="http://blog.cr0.org/2009/08/linux-null-pointer-dereference-due-to.html">ont dévoilé</a> une faille qui affecte <strong>tous les kernels Linux 2.4 et 2.6 depuis 2001</strong>.</p>
<p>C&#8217;est un bug de type NULL Pointer Deference qui permet au pirate d&#8217;exécuter n&#8217;importe quel code au niveau du kernel et donc d&#8217;<strong>acquérir les droits root</strong>.<br />
<!--more--></p>
<h3>NULL Pointer</h3>
<p>Dans le noyau Linux, chaque <strong>socket de connexion</strong> a une structure d&#8217;opérations associée (<span style="font-family: monospace">proto_ops</span>) qui contient des pointeurs vers diverses opérations : accept, bind, shutdown, &#8230;</p>
<p>Si une des opérations n&#8217;est pas nécessaire à ce type de socket, le pointeur <em>devrait</em> tout de même être défini vers une fonction &#8220;inutile&#8221;. Mais évidemment tous les développeurs n&#8217;y pensent pas forcément et beaucoup de sockets laissent ces <strong>pointeurs non-initialisés</strong> (NULL).</p>
<p>Le problème, c&#8217;est que certaines fonctions du noyau Linux (<a href="http://lxr.linux.no/linux+v2.6.30.4/net/socket.c#L727"><span style="font-family: monospace">sock_sendpage</span></a>, par exemple) <strong>ne vérifient pas</strong> si ces pointeurs sont bien initialisés et <strong>exécutent le code</strong> &#8220;NULL&#8221;, c&#8217;est à dire un code à l&#8217;emplacement 0.</p>
<p>Un pirate n&#8217;a donc qu&#8217;à insérer son code dans l&#8217;emplacement 0 et faire en sorte que le kernel l&#8217;exécute. Puisque le kernel possède des droits absolus, il est très facile d&#8217;exploiter cette faille pour acquérir les droits de root (<strong>privilege escalation</strong>).</p>
<h3>Des exploits déjà disponibles</h3>
<p>Comme le précise Julien Tinnes, ce type de vulnérabilité est <strong>très facile à exploiter</strong> : « <em>ça ne nous a pris que quelques minutes pour adapter un ancien exploit</em> ». Et forcément il y en a déjà plusieurs qui circulent sur la toile.</p>
<p>Nous avons trouvé un exploit nommé <span style="font-family: monospace; font-weight: bold;"><a href="http://grsecurity.net/~spender/wunderbar_emporium.tgz">wunderbar_emporium</a></span>. Celui-ci exploite un bug dans pulseaudio et n&#8217;est donc pas dangereux pour la plupart des serveurs. <em>(NB aux petits script kiddies <img src='http://geekfault.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</em>  Comme vous pouvez le voir dans le screenshot ci-dessus il fonctionne plutôt pas mal!</p>
<p>Bien sûr des exploits existent pour des failles dans <a href="http://archives.neohapsis.com/archives/fulldisclosure/2009-08/0174.html">d&#8217;autres protocoles</a>, plus largement répandus que Pulseaudio. </p>
<h3>Mais un patch aussi disponible</h3>
<p><a href="http://geekfault.org/wp-content/uploads/2009/08/Diff-Correctif.png" title="Différentiel du correctif" rel="lightbox.1001"><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;' align="right"   src="http://geekfault.org/wp-content/uploads/2009/08/Diff-Correctif-300x136.png" alt="Différentiel du correctif" title="Différentiel du correctif" width="300" height="136" class="alignright size-medium wp-image-1008" /></a>Très exactement <strong>9 minutes après la publication</strong> de l&#8217;article sur le blog de Jean Tinnes, Linus Torvalds lui-même a mis en ligne <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=e694958388c50148389b0e9b9e9e8945cf0f1b98;hp=a3620f7545344f932873bf98fbdf416b49409c8e">le patch</a> comblant cette faille en remplaçant la fonction <span style="font-family: monospace">sock->ops->sendpage</span> par <span style="font-family: monospace">kernel_sendpage</span>, fonction ne laissant pas passer ce genre d&#8217;erreurs.</p>
<p>Les kernels gérant <span style="font-stype: monospace">mmap_min_addr</span> peuvent aussi se prémunir de certains exploits en règlant cette variable à une valeur supérieure à 0 :<br />
<code># echo 4096 > /proc/sys/vm/mmap_min_addr</code><br />
Celle-ci empêche toute écriture dans la mémoire 0&#8230; Mais cette mesure de sécurité est toute neuve et contournable pour les kernels inférieurs à 2.6.30.2. Il est donc plus qu&#8217;impératif d&#8217;appliquer le patch kernel au plus vite.</p>
<h3>La faille couvrant le plus grand nombre de kernels Linux</h3>
<p>Couvrant <strong>tous les kernels publiés depuis 2001</strong>, que ce soit en version 2.4 ou 2.6, cette faille décroche la palme de la faille portant sur le plus grand nombre de releases stables du kernel Linux. Elle est potentiellement <strong>très dangereuse</strong> puisqu&#8217;un utilisateur lambda peut acquérir les droits de root!</p>
<p>Nous ne pouvons que vous conseiller d&#8217;appliquer le patch au plus vite. Les différentes distributions devraient d&#8217;ailleurs publier le kernel mis à jour dans les prochaines heures&#8230;. Enfin, espérons <img src='http://geekfault.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<h3>En savoir plus</h3>
<ul>
<li><a href="http://blog.cr0.org/2009/08/linux-null-pointer-dereference-due-to.html">L&#8217;article sur le blog de Jean Tinnes</a></li>
<li><a href="http://archives.neohapsis.com/archives/fulldisclosure/2009-08/0174.html">Le full disclosure par Tavis Ormandy</a></li>
<li><a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=e694958388c50148389b0e9b9e9e8945cf0f1b98;hp=a3620f7545344f932873bf98fbdf416b49409c8e">Le patch correctif commité dans la branche stable par Linux Torvalds</a></li>
</ul>
<p><h3>Si vous avez aimé ce post...</h3><ol>
<li><a href='http://geekfault.org/2011/10/14/lancer-votre-dual-booting-windows-dans-une-virtualbox/' rel='bookmark' title='Lancer votre dual-booting Windows dans une VirtualBox'>Lancer votre dual-booting Windows dans une VirtualBox</a></li>
<li><a href='http://geekfault.org/2010/05/13/linux-laptop-ultimate-powersaving/' rel='bookmark' title='Linux &#8211; Laptop &#8211; Ultimate Powersaving !'>Linux &#8211; Laptop &#8211; Ultimate Powersaving !</a></li>
<li><a href='http://geekfault.org/2009/05/31/chromium-google-chrome-sous-linux/' rel='bookmark' title='Chromium, le Google Chrome sous Linux sans émulation'>Chromium, le Google Chrome sous Linux sans émulation</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geekfault.org/2009/08/14/faille-critique-dans-tous-les-noyaux-linux/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

