<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Actualités de Ruby-lang</title>
    <link>http://www.ruby-lang.org/fr/feeds/news.rss</link>
    <language>fr-FR</language>
    <ttl>40</ttl>
    <description>Les dernières news sur ruby-lang.org.</description>
    
    <item>
      <title>Sortie de Ruby 1.9.3-p429</title>
      <description>&lt;p&gt;Ruby 1.9.3-p429 vient de sortir. Le niveau de patch p426 ne date que de
quelques heures, mais il causait quelques problèmes de compilation sur
certaines plateformes : il est donc recommandé de passer sur la release
p429.&lt;/p&gt;

&lt;p&gt;Par ailleurs, cette release comporte également un
&lt;a href=&quot;/fr/news/2013/05/14/taint-bypass-dl-fiddle-cve-2013-2065/&quot;&gt;correctif de sécurité concernant DL / Fiddle&lt;/a&gt;
et quelques corrections de bugs mineurs.&lt;/p&gt;

&lt;p&gt;Pour plus de détails, consultez les
&lt;a href=&quot;https://bugs.ruby-lang.org/projects/ruby-193/issues?set_filter=1&amp;amp;status_id=5&quot;&gt;tickets&lt;/a&gt;
et le &lt;a href=&quot;http://svn.ruby-lang.org/repos/ruby/tags/v1_9_3_429/ChangeLog&quot;&gt;ChangeLog&lt;/a&gt;
associés.&lt;/p&gt;

&lt;h2&gt;Téléchargement&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p429.tar.bz2&quot;&gt;ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p429.tar.bz2&lt;/a&gt;&lt;/p&gt;

    &lt;pre&gt;&lt;code&gt;SIZE:   10042323 bytes
MD5:    c2b2de5ef15ea9b1aaa3152f9112af1b
SHA256: 9d8949c24cf6fe810b65fb466076708b842a3b0bac7799f79b7b6a8791dc2a70
&lt;/code&gt;&lt;/pre&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p429.tar.gz&quot;&gt;ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p429.tar.gz&lt;/a&gt;&lt;/p&gt;

    &lt;pre&gt;&lt;code&gt;SIZE:   12553234 bytes
MD5:    993c72f7f805a9eb453f90b0b7fe0d2b
SHA256: d192d1afc46a7ef27b9d0a3c7a67b509048984db2c38907aa82641bdf980acf4
&lt;/code&gt;&lt;/pre&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p429.zip&quot;&gt;ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p429.zip&lt;/a&gt;&lt;/p&gt;

    &lt;pre&gt;&lt;code&gt;SIZE:   13869978 bytes
MD5:    1986f3934e61b999873d21a79d69d88d
SHA256: 8bd0ecc2dd8eec471aa44f88abdcd82f4b398e9110ca06f76eff066b653b8b90
&lt;/code&gt;&lt;/pre&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;À propos de cette release&lt;/h2&gt;

&lt;p&gt;De nombreux contributeurs, testeurs et utilisateurs m’ont aidé à produire ces
correctifs et cette release, en remplissant des rapports de bugs. Je les en
remercie.&lt;/p&gt;
</description>
      <pubDate>Tue, 14 May 2013 17:00:00 +0000</pubDate>
      <guid>http://www.ruby-lang.org/fr/news/2013/05/14/ruby-1-9-3-p429-is-released/</guid>
      <link>http://www.ruby-lang.org/fr/news/2013/05/14/ruby-1-9-3-p429-is-released/</link>
    </item>
    
    <item>
      <title>Sortie de Ruby 2.0.0-p195</title>
      <description>&lt;p&gt;Ruby 2.0.0-p195 vient de sortir. Il s’agit du premier niveau de patch pour Ruby
2, depuis la sortie de la version 2.0.0.&lt;/p&gt;

&lt;p&gt;Cette release contient un
&lt;a href=&quot;/fr/news/2013/05/14/taint-bypass-dl-fiddle-cve-2013-2065/&quot;&gt;correctif de sécurité pour Ruby DL / Fiddle&lt;/a&gt;
ainsi que de nombreuses corrections de bugs et des optimisations. On trouvera
également quelques corrections sur la documentation.&lt;/p&gt;

&lt;p&gt;Pour plus de détails, consultez les &lt;a href=&quot;https://bugs.ruby-lang.org/projects/ruby-200/issues?set_filter=1&amp;amp;status_id=5&quot;&gt;tickets&lt;/a&gt;
et le &lt;a href=&quot;http://svn.ruby-lang.org/repos/ruby/tags/v2_0_0_195/ChangeLog&quot;&gt;ChangeLog&lt;/a&gt; associés.
Les principales corrections de bugs sont listées ci-dessous.&lt;/p&gt;

&lt;h2&gt;Téléchargement&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p195.tar.bz2&quot;&gt;ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p195.tar.bz2&lt;/a&gt;&lt;/p&gt;

    &lt;pre&gt;&lt;code&gt;SIZE:   10807456 bytes
MD5:    2f54faea6ee1ca500632ec3c0cb59cb6
SHA256: 0be32aef7a7ab6e3708cc1d65cd3e0a99fa801597194bbedd5799c11d652eb5b
&lt;/code&gt;&lt;/pre&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p195.tar.gz&quot;&gt;ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p195.tar.gz&lt;/a&gt;&lt;/p&gt;

    &lt;pre&gt;&lt;code&gt;SIZE:   13641558 bytes
MD5:    0672e5af309ae99d1703d0e96eff8ea5
SHA256: a2fe8d44eac3c27d191ca2d0ee2d871f9aed873c74491b2a8df229bfdc4e5a93
&lt;/code&gt;&lt;/pre&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p195.zip&quot;&gt;ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p195.zip&lt;/a&gt;&lt;/p&gt;

    &lt;pre&gt;&lt;code&gt;SIZE:   15092199 bytes
MD5:    924fe4bea72b1b258655211998631791
SHA256: 81a4dc6cc09e491d417a51e5983c4584eff849e2a186ec3affdbe5bc15cd7db5
&lt;/code&gt;&lt;/pre&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;À propos de cette release&lt;/h2&gt;

&lt;p&gt;Merci à tous les contributeurs.&lt;/p&gt;

&lt;h2&gt;Changements importants&lt;/h2&gt;

&lt;h3&gt;Core - prepend&lt;/h3&gt;

&lt;pre&gt;&lt;code&gt;  #7841 Module#prepend now detect cyclic prepend.
  #7843 removing prepended methods causes exceptions.
  #8357 Module#prepend breaks Module&#39;s comparison operators.
  #7983 Module#prepend can&#39;t override Fixnum&#39;s operator methods.
  #8005 methods made private/protected after definition become uncallable on prepended class.
  #8025 Module#included_modules include classes when prepended.
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Core - keyword arguments&lt;/h3&gt;

&lt;pre&gt;&lt;code&gt;  #7922 unnamed keyword rest argument cause SyntaxError.
  #7942 support define method only receive keyword arguments without paren.
  #8008 fix a bug in super with keyword arguments.
  #8236 fix a treatment of rest arguments and keyword arguments through `super&#39;.
  #8260 non-symbol key should not treated as keyword arguments.
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Core - refinements&lt;/h3&gt;

&lt;pre&gt;&lt;code&gt;  #7925 fix a bug of refinements with a method call super in a block.
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Core - GC&lt;/h3&gt;

&lt;pre&gt;&lt;code&gt;  #8092 improve accuracy of GC.stat[:heap_live_num]
  #8146 avoid unnecessary heap growth.
  #8145  fix unlimited memory growth with large values of RUBY_FREE_MIN.
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Core - Regexp&lt;/h3&gt;

&lt;pre&gt;&lt;code&gt;  #7972 Regexp POSIX space class is location sensitive.
  #7974 Regexp case-insensitive group doesn&#39;t work.
  #8023 Regexp lookbehind assertion fails with /m mode enabled
  #8001 Regexp \Z matches where it shouldn&#39;t
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Core - other&lt;/h3&gt;

&lt;pre&gt;&lt;code&gt;  #8063 fix a potential memory violation and avoid abort on the environment _FORTIFY_SOURCE=2 (ex. Ubuntu).
  #8175 ARGF#skip doesn&#39;t work as documented.
  #8069 File.expand_path(&#39;something&#39;, &#39;~&#39;) now support home path on Windows.
  #8220 fix a Segmentation fault when defined? ().
  #8367 fix a regression in defined?(super).
  #8283 Dir.glob doesn&#39;t recurse hidden directories.
  #8165 fix a bug of multiple require with non-ascii file path.
  #8290 fix an incompatible String#inspect behavior with NUL character.
  #8360 fix a Segmentation fault of Thread#join(Float::INFINITY) on some platforms.
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;RubyGems&lt;/h3&gt;

&lt;pre&gt;&lt;code&gt;  Bundled RubyGems version is updated to 2.0.2+
  #7698 fix an rubygems&#39; incompatibility about installation of extension libraries.
  #8019 fix a bug of gem list --remote doesn&#39;t work.
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Libraries&lt;/h3&gt;

&lt;pre&gt;&lt;code&gt;  #7911 File.fnmatch with US-ASCII pattern and UTF-8 path raise an exception.
  #8240 fix a bug about OpenSSL::SSL::SSLSocket breaks other connections or files on GC.
  #8183 CGI.unescapeHTML can&#39;t decode Numeric Character References with uppercase (&amp;amp;#Xnnnn).
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Build/Platform specific&lt;/h3&gt;

&lt;pre&gt;&lt;code&gt;  #7830 fix build failure with compiler warning.
  #7950 fix a build failure on mswin/VC with --with-static-linked-ext.
&lt;/code&gt;&lt;/pre&gt;
</description>
      <pubDate>Tue, 14 May 2013 13:00:01 +0000</pubDate>
      <guid>http://www.ruby-lang.org/fr/news/2013/05/14/ruby-2-0-0-p195-is-released/</guid>
      <link>http://www.ruby-lang.org/fr/news/2013/05/14/ruby-2-0-0-p195-is-released/</link>
    </item>
    
    <item>
      <title>Vulnérabilité : Object taint bypassing in DL and Fiddle in Ruby (CVE-2013-2065)</title>
      <description>&lt;p&gt;Les modules &lt;code&gt;DL&lt;/code&gt; et &lt;code&gt;Fiddle&lt;/code&gt; de Ruby comportaient une vulnérabilité mettant
en œuvre une chaîne de caractère « contaminée » (&lt;em&gt;tainted string&lt;/em&gt;, marquée
avec la méthode &lt;code&gt;Object#tain&lt;/code&gt;). Des appels systèmes pouvaient être fait en
utilisant de telles chaînes de caractères, ignorant le niveau &lt;code&gt;$SAFE&lt;/code&gt; de
Ruby. Cette vulnérabilité porte l’identifiant CVE-2013-2065.&lt;/p&gt;

&lt;h2&gt;Explications et impact&lt;/h2&gt;

&lt;p&gt;Les fonctions natives exposées à Ruby via &lt;code&gt;DL&lt;/code&gt; ou &lt;code&gt;Fiddle&lt;/code&gt; ne vérifiaient pas
la valeur du drapeau &lt;code&gt;taint&lt;/code&gt; des objets manipulées. Cela pouvait causer des
situations où des chaînes de caractères marquées comme contaminées étaient
tout de même acceptées comme des données valides pour des exceptions de type
&lt;code&gt;SecurityError&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Un exemple de code utilisant &lt;code&gt;DL&lt;/code&gt; illustrant cette vulnérabilité :&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;my_function&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;user_input&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;handle&lt;/span&gt;    &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;no&quot;&gt;DL&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dlopen&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kp&quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;sys_cfunc&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;DL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;:CFunc&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;handle&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;system&amp;#39;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;DL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;:TYPE_INT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;system&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;sys&lt;/span&gt;       &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;DL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;:Function&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sys_cfunc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;DL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;:TYPE_VOIDP&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;sys&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;call&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;user_input&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;

&lt;span class=&quot;vg&quot;&gt;$SAFE&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;my_function&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;uname -rs&amp;quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;taint&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Un autre exemple, avec &lt;code&gt;Fiddle&lt;/code&gt; :&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;my_function&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;user_input&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;handle&lt;/span&gt;    &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;no&quot;&gt;DL&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dlopen&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kp&quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;sys&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;Fiddle&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;:Function&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;handle&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;system&amp;#39;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
                          &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;Fiddle&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;:TYPE_VOIDP&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;Fiddle&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;:TYPE_INT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;sys&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;call&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;user_input&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;

&lt;span class=&quot;vg&quot;&gt;$SAFE&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;my_function&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;uname -rs&amp;quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;taint&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Tous les rubyistes utilisant une version affectée par cette vulnérabilité
sont invités à mettre à jour Ruby, ou à utiliser le palliatif décrit
ci-après.&lt;/p&gt;

&lt;p&gt;Veuillez notez que le correctif n’empêche pas l’utilisation d’offset
numériques, car les nombres ne peuvent être marqués par &lt;code&gt;Object#taint&lt;/code&gt;. Dans
l’exemple suivant :&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;my_function&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;handle&lt;/span&gt;    &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;no&quot;&gt;DL&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dlopen&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kp&quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;sys&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;Fiddle&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;:Function&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;handle&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;system&amp;#39;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
                          &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;Fiddle&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;:TYPE_VOIDP&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;Fiddle&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;:TYPE_INT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;sys&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;call&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;input&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;

&lt;span class=&quot;vg&quot;&gt;$SAFE&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;user_input&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;uname -rs&amp;quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;taint&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;my_function&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;DL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;:CPtr&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;user_input&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;to_i&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;l’adresse mémoire est utilisée sans qu’il soit possible de déterminer si
elle est valide ou non. Dans ce cas, il est recommandé de vérifier l’état
de la donnée en entrée avant de passer l’adresse mémoire :&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;&lt;span class=&quot;n&quot;&gt;user_input&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;uname -rs&amp;quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;taint&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;raise&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;vg&quot;&gt;$SAFE&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;user_input&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;tainted?&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;my_function&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;DL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;:CPtr&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;user_input&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;to_i&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2&gt;Palliatif&lt;/h2&gt;

&lt;p&gt;Si vous êtes dans l’impossibilité de mettre à jour Ruby, il est tout de même
possible de palier cette vulnérabilité avec le &lt;em&gt;monkey patching&lt;/em&gt; suivant :&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;&lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;Fiddle&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;no&quot;&gt;Function&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;alias&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;:old_call&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;:call&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;call&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;args&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;vg&quot;&gt;$SAFE&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;args&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;any?&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;tainted?&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
      &lt;span class=&quot;k&quot;&gt;raise&lt;/span&gt; &lt;span class=&quot;no&quot;&gt;SecurityError&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;tainted parameter not allowed&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;old_call&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;args&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2&gt;Versions affectées&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Toutes les versions de la branche 1.9 avant la 1.9.3-p426&lt;/li&gt;
  &lt;li&gt;Toutes les versions de la branche 2.0 avant la 2.0.0-p195&lt;/li&gt;
  &lt;li&gt;Les versions de développement avant la révision 40728&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;La branche 1.8 n’est pas concernée.&lt;/p&gt;

&lt;h2&gt;Remerciements&lt;/h2&gt;

&lt;p&gt;Merci à Vit Ondruch pour avoir mis en lumière cette vulnérabilité.&lt;/p&gt;

&lt;h2&gt;Historique&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Initialement publié le 14 mai 2013 à 13:00:00 (UTC)&lt;/li&gt;
&lt;/ul&gt;
</description>
      <pubDate>Tue, 14 May 2013 13:00:00 +0000</pubDate>
      <guid>http://www.ruby-lang.org/fr/news/2013/05/14/taint-bypass-dl-fiddle-cve-2013-2065/</guid>
      <link>http://www.ruby-lang.org/fr/news/2013/05/14/taint-bypass-dl-fiddle-cve-2013-2065/</link>
    </item>
    
    <item>
      <title>Sortie de Ruby 2.0.0-p0</title>
      <description>&lt;p&gt;Nous sommes heureux d&#39;annoncer la sortie de Ruby 2.0.0-p0 !&lt;/p&gt;

&lt;p&gt;Cette version est la première release stable de la branche 2.0. Elle
intègre de nombreuses nouvelles fonctionnalités et améliorations, pour
faire face à la diversification toujours plus importante des cas
d&#39;usages de Ruby.&lt;/p&gt;

&lt;p&gt;Nous vous souhaitons un &lt;em&gt;happy hacking&lt;/em&gt; avec Ruby 2.0.0 !&lt;/p&gt;

&lt;h2&gt;Téléchargements&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p0.tar.bz2&quot;&gt;&amp;lt;URL:ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p0.tar.bz2&amp;gt;&lt;/a&gt;&lt;/p&gt;

    &lt;pre&gt;&lt;code&gt;SIZE:   10814890 bytes
MD5:    895c1c581f8d28e8b3bb02472b2ccf6a
SHA256: c680d392ccc4901c32067576f5b474ee186def2fcd3fcbfa485739168093295f
&lt;/code&gt;&lt;/pre&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p0.tar.gz&quot;&gt;&amp;lt;URL:ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p0.tar.gz&amp;gt;&lt;/a&gt;&lt;/p&gt;

    &lt;pre&gt;&lt;code&gt;SIZE:   13608925 bytes
MD5:    50d307c4dc9297ae59952527be4e755d
SHA256: aff85ba5ceb70303cb7fb616f5db8b95ec47a8820116198d1c866cc4fff151ed
&lt;/code&gt;&lt;/pre&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p0.zip&quot;&gt;&amp;lt;URL:ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p0.zip&amp;gt;&lt;/a&gt;&lt;/p&gt;

    &lt;pre&gt;&lt;code&gt;SIZE:   15037340 bytes
MD5:    db5af5d6034646ad194cbdf6e50f49ee
SHA256: 0d0af6a9c8788537efd8d7d2358ce9468e6e2b7703dacba9ebd064d8b7da5f99
&lt;/code&gt;&lt;/pre&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Quoi de neuf dans Ruby 2.0.0 ?&lt;/h2&gt;

&lt;h3&gt;Nouvelles fonctionnalités&lt;/h3&gt;

&lt;p&gt;Petit aperçu des nouveautés…&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Fonctionnalités principales du langage :
    &lt;ul&gt;
      &lt;li&gt;les arguments mots-clés, pour plus de flexibilité (API…)&lt;/li&gt;
      &lt;li&gt;Module#prepend, une nouvelle façon « d&#39;augmenter » une classe&lt;/li&gt;
      &lt;li&gt;le litéral %i, pour créer un tableau de symboles avec une syntaxe
minimale&lt;/li&gt;
      &lt;li&gt;__dir__, pour accéder directement au nom du dossier contenant le
fichier en cours d&#39;exécution&lt;/li&gt;
      &lt;li&gt;UTF-8 devient l&#39;encodage par défaut (fini les commentaires «
magiques » !)&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Au niveau des librairies du Core :
    &lt;ul&gt;
      &lt;li&gt;Enumerable#lazy et Enumerator::Lazy permettent de gérer des suites
potentiellement infinies (lazy streams)&lt;/li&gt;
      &lt;li&gt;Enumerator#size et Range#size, pour déterminer la taille par
évaluation retardée (lazy evaluation)&lt;/li&gt;
      &lt;li&gt;#to_h comme nouvelle méthode conventionnelle pour gérer la
conversion vers un Hash&lt;/li&gt;
      &lt;li&gt;Onigmo remplace Oniguruma comme moteur d&#39;expressions régulières
(c&#39;est un fork)&lt;/li&gt;
      &lt;li&gt;nouvelle API de gestion asynchrone des exceptions&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Du côté de la chasse aux bugs
    &lt;ul&gt;
      &lt;li&gt;support de DTrace, ce qui permet notamment de produire des rapports
at run-time en production&lt;/li&gt;
      &lt;li&gt;TracePoint, une meilleure API de tracing (pour l&#39;analyse de logs)&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Améliorations des performances
    &lt;ul&gt;
      &lt;li&gt;optimisation du ramasse-miettes par &quot;bitmap marking&quot;&lt;/li&gt;
      &lt;li&gt;optimisation de Kernel#require, ce qui permet par exemple à Ruby On
Rails de démarrer très rapidement&lt;/li&gt;
      &lt;li&gt;diverses optimisations dans la VM (routage des messages aux
méthodes…)&lt;/li&gt;
      &lt;li&gt;optimisation des opérations de calculs sur les flottants (Float)&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Par ailleurs, et toujours en mode « expérimental », vous retrouverez
dans cette version les Refinements.&lt;/p&gt;

&lt;p&gt;Pour prendre connaissance de tous les détails, consultez le fichier
NEWS.&lt;/p&gt;

&lt;h3&gt;Compatibilité&lt;/h3&gt;

&lt;p&gt;Nous avons pris garde à concevoir la version 2.0.0 de telle façon à ce
qu&#39;elle soit compatible avec la 1.9, à quelques détails près (seulement
!). Il sera donc plus facile de migrer de la 1.9 à la 2.0 qu&#39;il ne
l&#39;avait été pour le passage 1.8 / 1.9. Les incompatibilités principales
sont décrites ci-après.&lt;/p&gt;

&lt;p&gt;À noter que grâce au travail de nombreux collaborateurs, un certain
nombre d&#39;applications telles que Rails ou tDiary sont d&#39;ores et déjà
fonctionnelles sur cette version 2.0.0-p0 !&lt;/p&gt;

&lt;h3&gt;Documentation&lt;/h3&gt;

&lt;p&gt;Un effort important à également été produit pour améliorer la
documentation, ce qui a été une demande régulière de la part de la
communauté. Le volume de documentation rdoc pour les modules et les
méthodes a ainsi notablement augmenté : 75% de la 2.0.0 est couvert,
tandis que la 1.9.3 plafonnait vers les 60%. Par ailleurs, vous pouvez
retrouver une description de la syntaxe ruby en appelant:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;sh&quot;&gt;ri ruby:syntax
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3&gt;Stabilité&lt;/h3&gt;

&lt;p&gt;Contrairement à la 1.9.0, la version 2.0.0 est une release stable… bien
que son numéro micro soit 0. Évidemment, nous incitons tous les
mainteneurs de librairies à supporter dès que possible Ruby 2.0.0, ce
qui devrait être relativement simple (cf. Compatibilité).&lt;/p&gt;

&lt;p&gt;Pour conclure, Ruby 2.0.0 est bel et bien là, prête à vous simplifier
une nouvelle fois la vie : adoptez-la !&lt;/p&gt;

&lt;h2&gt;Notes&lt;/h2&gt;

&lt;h3&gt;Articles&lt;/h3&gt;

&lt;p&gt;Voici une sélection d&#39;articles parus à l&#39;occasion du lancement de la
2.0.0 :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://blog.marc-andre.ca/2013/02/23/ruby-2-by-example&quot;&gt;&amp;lt;URL:http://blog.marc-andre.ca/2013/02/23/ruby-2-by-example&amp;gt;&lt;/a&gt;
(exhaustif, recommandé)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://speakerdeck.com/shyouhei/whats-new-in-ruby-2-dot-0&quot;&gt;&amp;lt;URL:https://speakerdeck.com/shyouhei/whats-new-in-ruby-2-dot-0&amp;gt;&lt;/a&gt;
(exhaustif, recommandé)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://el.jibun.atmarkit.co.jp/rails/2012/11/ruby-20-8256.html&quot;&gt;&amp;lt;URL:http://el.jibun.atmarkit.co.jp/rails/2012/11/ruby-20-8256.html&amp;gt;&lt;/a&gt;
(court, en japonais)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://speakerdeck.com/nagachika/rubyist-enumeratorlazy&quot;&gt;&amp;lt;URL:https://speakerdeck.com/nagachika/rubyist-enumeratorlazy&amp;gt;&lt;/a&gt;
(à propos de Enumerator::Lazy, en japonais)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Les articles suivants sont également intéressants, hormis pour ce qui
concerne les Refinements (il y a eu des changements depuis leurs
parutions) :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://rubysource.com/a-look-at-ruby-2-0/&quot;&gt;&amp;lt;URL:http://rubysource.com/a-look-at-ruby-2-0/&amp;gt;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://speakerdeck.com/a_matsuda/ruby-2-dot-0-on-rails&quot;&gt;&amp;lt;URL:https://speakerdeck.com/a_matsuda/ruby-2-dot-0-on-rails&amp;gt;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://globaldev.co.uk/2012/11/ruby-2-0-0-preview-features/&quot;&gt;&amp;lt;URL:http://globaldev.co.uk/2012/11/ruby-2-0-0-preview-features/&amp;gt;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.infoq.com/news/2012/11/ruby-20-preview1&quot;&gt;&amp;lt;URL:http://www.infoq.com/news/2012/11/ruby-20-preview1&amp;gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;La dernière édition du Rubyist Magazine propose quelques articles très
intéressants écrits par les contributeurs des fonctionnalités sur
lesquels ils portent :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://jp.rubyist.net/magazine/?0041-200Special&quot;&gt;&amp;lt;URL:http://jp.rubyist.net/magazine/?0041-200Special&amp;gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ce dernier contenu est malheureusement disponible en japonais
uniquement. Nous avons dans l&#39;idée d&#39;en faire des traductions
anglaises rapidement.&lt;/p&gt;

&lt;h3&gt;Incompatibilités&lt;/h3&gt;

&lt;p&gt;Il y a cinq incompatibilités majeures connues à ce jour, par rapport à
la 1.9 :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;L&#39;encodage par défaut des scripts ruby est désormais UTF-8
&lt;a href=&quot;https://bugs.ruby-lang.org/issues/6679&quot;&gt;[#6679]&lt;/a&gt;. Certaines personnes ont mentionné le fait que cela
affecte le fonctionnement de programmes existant, par exemple des
systèmes de benchmarking qui deviennent très lents
&lt;a href=&quot;http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/46547&quot;&gt;[ruby-dev:46547]&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;iconv a finalement été retiré, après avoir été déprécié lors de
l&#39;introduction de M17N dans ruby 1.9. Utilisez désormais
String#encode et autres.&lt;/li&gt;
  &lt;li&gt;L&#39;ABI (Application Binary Interface) connaît un changement majeur
&lt;a href=&quot;http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/48984&quot;&gt;[ruby-core:48984]&lt;/a&gt;. A priori, une simple réinstallation des
extensions doit faire l&#39;affaire, mais soyez bien attentifs à ne pas
copier les fichiers .so ou .bundle depuis une installation 1.9 (&quot;DO
NOT COPY .so OR .bundle FILES FROM 1.9&quot;), faute de quoi Ruby ne
fonctionnera pas.&lt;/li&gt;
  &lt;li&gt;#lines, #chars, #codepoints et #bytes retournent désormais un Array au
lieu d&#39;un Enumerator &lt;a href=&quot;https://bugs.ruby-lang.org/issues/6670&quot;&gt;[#6670]&lt;/a&gt;. Cette modification permet
d&#39;éviter d&#39;avoir à écrire systématiquement &quot;lines.to_a&quot;. Pour
retrouver un énumérateur, utilisez #each_line, par exemple.&lt;/li&gt;
  &lt;li&gt;Object#inspect retourne désormais toujours une chaîne de caractères,
telle que #&amp;lt;ClassName:0x…&amp;gt;, au lieu de passer la main à #to_s
&lt;a href=&quot;https://bugs.ruby-lang.org/issues/2152&quot;&gt;[#2152]&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pour les incompatibilités mineures, voyez &lt;a href=&quot;http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/49119&quot;&gt;[ruby-core:49119]&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;À propos des Refinements&lt;/h3&gt;

&lt;p&gt;Nous avons décidé d&#39;intégrer la nouvelle fonctionnalité appelée
Refinements dans cette version. Elle étend les possibilités coté
modularité des scripts Ruby. Il s&#39;agit toutefois d&#39;une fonctionnalité
expérimentale, et sa spécification est susceptible de changer d&#39;ici la
prochaine version de Ruby. Néanmoins, nous vous encourageons à la
tester, et à nous faire part de vos retours qui nous seront d&#39;une
grande aide pour la finaliser.&lt;/p&gt;

&lt;h2&gt;Remerciements&lt;/h2&gt;

&lt;p&gt;Un très grand nombre de personnes ont participé à l&#39;élaboration de
cette version. Il est rapidement devenu manifeste que même une liste
partielle de remerciements serait trop longue à inclure directement dans
cette actualité ! Aussi, permettez-moi de vous rediriger vers un lien
spécial :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://bugs.ruby-lang.org/projects/ruby/wiki/200SpecialThanks&quot;&gt;&amp;lt;URL:https://bugs.ruby-lang.org/projects/ruby/wiki/200SpecialThanks&amp;gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Merci à tous et à toutes !&lt;/p&gt;

</description>
      <pubDate>Mon, 25 Feb 2013 13:47:57 +0000</pubDate>
      <guid>http://www.ruby-lang.org/fr/news/2013/02/25/sortie-de-ruby-2-0-0-p0/</guid>
      <link>http://www.ruby-lang.org/fr/news/2013/02/25/sortie-de-ruby-2-0-0-p0/</link>
    </item>
    
    <item>
      <title>Sortie de la version 1.9.3-p392 de Ruby</title>
      <description>&lt;p&gt;La version 1.9.3-p392 de Ruby est sortie. Nous nous excusons des mises à
jour trop fréquentes.&lt;/p&gt;

&lt;p&gt;Cette version inclut des correctifs de sécurité pour les bibliothèques
intégrées JSON et REXML :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.ruby-lang.org/fr/news/2013/02/23/dni-de-service-et-vulnrabilit-de-cration-dobjets-non-srs-cve-2013-0269/&quot;&gt;Déni de service et vulnérabilité de création d&#39;objets non-sûrs
(CVE-2013-0269)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.ruby-lang.org/fr/news/2013/02/23/vulnrabilit-de-type-dni-de-service-par-expansion-des-entits-dans-rexml-bombe-xml/&quot;&gt;Vulnérabilité de type Déni de service par expansion des entités dans
REXML (bombe XML)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Et d&#39;autres correctifs de bugs mineurs sont également inclus.&lt;/p&gt;

&lt;p&gt;Voyez les &lt;a href=&quot;https://bugs.ruby-lang.org/projects/ruby-193/issues?set_filter=1&amp;amp;status_id=5&quot;&gt;tickets&lt;/a&gt; et le &lt;a href=&quot;http://svn.ruby-lang.org/repos/ruby/tags/v1_9_3_392/ChangeLog&quot;&gt;ChangeLog&lt;/a&gt; pour plus de détails.&lt;/p&gt;

&lt;h2&gt;Téléchargement&lt;/h2&gt;

&lt;p&gt;Vous pouvez télécharger cette nouvelle version depuis :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p392.tar.bz2&quot;&gt;&amp;lt;URL:ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p392.tar.bz2&amp;gt;&lt;/a&gt;&lt;/p&gt;

    &lt;pre&gt;&lt;code&gt;SIZE:   10024221 bytes
MD5:    a810d64e2255179d2f334eb61fb8519c
SHA256: 5a7334dfdf62966879bf539b8a9f0b889df6f3b3824fb52a9303c3c3d3a58391
&lt;/code&gt;&lt;/pre&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p392.tar.gz&quot;&gt;&amp;lt;URL:ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p392.tar.gz&amp;gt;&lt;/a&gt;&lt;/p&gt;

    &lt;pre&gt;&lt;code&gt;SIZE:   12557294 bytes
MD5:    f689a7b61379f83cbbed3c7077d83859
SHA256: 8861ddadb2cd30fb30e42122741130d12f6543c3d62d05906cd41076db70975f
&lt;/code&gt;&lt;/pre&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p392.zip&quot;&gt;&amp;lt;URL:ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p392.zip&amp;gt;&lt;/a&gt;&lt;/p&gt;

    &lt;pre&gt;&lt;code&gt;SIZE:   13863402 bytes
MD5:    212fb3bc41257b41d1f8bfe0725916b7
SHA256: f200ce4a63ce57bea64028a507350717c2a16bdbba6d9538bc69e9e7c2177c8b
&lt;/code&gt;&lt;/pre&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Commentaire sur cette version&lt;/h2&gt;

&lt;p&gt;De nombreux commiteurs, testeurs et utilisateurs ayant remonté des bugs
ont aidé à préparer cette version. Merci pour leurs contributions.&lt;/p&gt;

</description>
      <pubDate>Sat, 23 Feb 2013 14:13:53 +0000</pubDate>
      <guid>http://www.ruby-lang.org/fr/news/2013/02/23/sortie-de-la-version-1-9-3-p392-de-ruby/</guid>
      <link>http://www.ruby-lang.org/fr/news/2013/02/23/sortie-de-la-version-1-9-3-p392-de-ruby/</link>
    </item>
    
    <item>
      <title>Vulnérabilité de type Déni de service par expansion des entités dans REXML (bombe XML)</title>
      <description>&lt;p&gt;L&#39;expansion d&#39;entités XML sans restriction peut conduire à un déni de
service dans REXML. (L&#39;identifiant CVE sera assigné plus tard.) Nous
recommandons fortement de mettre à jour Ruby.&lt;/p&gt;

&lt;h2&gt;Détails&lt;/h2&gt;

&lt;p&gt;Lors de la lecture de nœuds texte au sein d&#39;un document XML, le parseur
REXML peut être forcé à allouer des chaînes de caractères extrêmement
larges, ce qui peut consommer toute la mémoire de la machine, entraînant
un déni de service.&lt;/p&gt;

&lt;p&gt;Le code concerné ressemble à ceci :&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;&lt;span class=&quot;n&quot;&gt;document&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;REXML&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;:Document&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;some_xml_doc&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;document&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;root&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;text&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Quand la méthode `text` est appelée, les entités sont étendues. Un
attaquant peut envoyer un document XML relativement petit qui, lors de
cette étape, consommera d&#39;énormes quantités de mémoire sur le système
cible.&lt;/p&gt;

&lt;p&gt;Veuillez noter que cette attaque est similaire, bien que différente, à
celle de l&#39;attaque Billion Laughs. C&#39;est aussi en rapport avec le
CVE-2013-1664 de Python.&lt;/p&gt;

&lt;p&gt;Tous les utilisateurs d&#39;une version concernée sont incités à mettre à
jour Ruby ou utiliser l&#39;un des contournements ci-dessous immédiatement.&lt;/p&gt;

&lt;h2&gt;Contournements&lt;/h2&gt;

&lt;p&gt;Si vous ne pouvez pas mettre à jour Ruby, utiliser ce monkey patch comme
contournement :&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;&lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;REXML&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;no&quot;&gt;Document&lt;/span&gt;
  &lt;span class=&quot;vc&quot;&gt;@@entity_expansion_text_limit&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;10_240&lt;/span&gt;

  &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;entity_expansion_text_limit&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;val&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;vc&quot;&gt;@@entity_expansion_text_limit&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;val&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;

  &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;entity_expansion_text_limit&lt;/span&gt;
    &lt;span class=&quot;vc&quot;&gt;@@entity_expansion_text_limit&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;REXML&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;no&quot;&gt;Text&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;unnormalize&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;doctype&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kp&quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;filter&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kp&quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;illegal&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kp&quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;sum&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;gsub&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;sr&quot;&gt;/\r\n?/&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;gsub&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;no&quot;&gt;REFERENCE&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;n&quot;&gt;s&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;expand&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;vg&quot;&gt;$&amp;amp;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;doctype&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;filter&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
      &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;sum&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;s&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;bytesize&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;REXML&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;:Document&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;entity_expansion_text_limit&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;raise&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;entity expansion has grown too large&amp;quot;&lt;/span&gt;
      &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;sum&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;s&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;bytesize&lt;/span&gt;
      &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
      &lt;span class=&quot;n&quot;&gt;s&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;

  &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;expand&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ref&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;doctype&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;filter&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ref&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;sc&quot;&gt;?#&lt;/span&gt;
      &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ref&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;sc&quot;&gt;?x&lt;/span&gt;
        &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ref&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;to_i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pack&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;U*&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
      &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt;
        &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ref&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;to_i&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pack&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;U*&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
      &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;elsif&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ref&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;&amp;amp;amp;&amp;#39;&lt;/span&gt;
      &lt;span class=&quot;s1&quot;&gt;&amp;#39;&amp;amp;&amp;#39;&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;elsif&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;filter&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;and&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;filter&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;include?&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ref&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
      &lt;span class=&quot;n&quot;&gt;ref&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;elsif&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;doctype&lt;/span&gt;
      &lt;span class=&quot;n&quot;&gt;doctype&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;entity&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ref&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;or&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ref&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt;
      &lt;span class=&quot;n&quot;&gt;entity_value&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;DocType&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;:DEFAULT_ENTITIES&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ref&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;
      &lt;span class=&quot;n&quot;&gt;entity_value&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;?&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;entity_value&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;value&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ref&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Ce monkey patch limitera la taille des remplacements d&#39;entités à 10k
par nœud. REXML n&#39;autorise déjà que 10000 remplacements d&#39;entités par
document (valeur par défaut). Ainsi la quantité maximale de mémoire pour
le texte généré par les remplacements d&#39;entités ne sera au maximum que
d&#39;environ 98 Mo.&lt;/p&gt;

&lt;h2&gt;Les versions de Ruby concernées&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Toutes les versions de Ruby 1.9 antérieures à la version 1.9.3
patchlevel 392&lt;/li&gt;
  &lt;li&gt;Toutes les versions de Ruby 2.0 antérieures à la version 2.0.0
patchlevel 0&lt;/li&gt;
  &lt;li&gt;Toutes les versions trunk avant la révision 39384&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Crédits&lt;/h2&gt;

&lt;p&gt;Merci à Ben Murphy pour avoir remonté cette vulnérabilité.&lt;/p&gt;

&lt;h2&gt;Historique&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Publié initialement à 2013-02-22 12:00:00 (UTC)&lt;/li&gt;
&lt;/ul&gt;

</description>
      <pubDate>Sat, 23 Feb 2013 14:03:15 +0000</pubDate>
      <guid>http://www.ruby-lang.org/fr/news/2013/02/23/vulnrabilit-de-type-dni-de-service-par-expansion-des-entits-dans-rexml-bombe-xml/</guid>
      <link>http://www.ruby-lang.org/fr/news/2013/02/23/vulnrabilit-de-type-dni-de-service-par-expansion-des-entits-dans-rexml-bombe-xml/</link>
    </item>
    
    <item>
      <title>Déni de service et vulnérabilité de création d'objets non-sûrs (CVE-2013-0269)</title>
      <description>&lt;p&gt;Il existe une vulnérabilité dans la bibliothèque JSON embarquée avec
Ruby qui peut causer des dénis de service et la création d&#39;objets
non-sûrs. Cette vulnérabilité a reçu l&#39;assignation CVE-2013-0269. Nous
vous encourageons très fortement à mettre à jour Ruby.&lt;/p&gt;

&lt;h2&gt;Détails&lt;/h2&gt;

&lt;p&gt;Lors de l&#39;analyse de certains documents JSON, la gem JSON (inclue avec
ruby) peut être forcée à créer des symboles Ruby dans le système cible.
Comme les symboles Ruby ne sont pas libérés de la mémoire par le
ramasse-miettes, cela peut résulter en une attaque par déni de service.&lt;/p&gt;

&lt;p&gt;La même technique peut être utilisée pour créer des objets dans le
système cible qui se comporteront comme des objets internes. Ces objets
« qui se comportent de façon similaire » peuvent être utilisés pour
contourner certains mécanismes de sécurité et servir de tremplin pour
des attaques par injection SQL dans Ruby on Rails.&lt;/p&gt;

&lt;p&gt;Le code visé ressemble à ceci :&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;JSON.parse(user_input)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Où la variable `user_input` contient un document JSON comme celui-ci
:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;{&quot;json_class&quot;:&quot;foo&quot;}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;La gem JSON va essayer de récupérer la constante &quot;foo&quot; et, ce faisant,
va créer un symbole.&lt;/p&gt;

&lt;p&gt;Dans la version 1.7.x de JSON, des objets avec des attributs arbitraires
peuvent être créés. Cela peut, par exemple, être fait avec un document
JSON tel que celui-ci :&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;{&quot;json_class&quot;:&quot;JSON::GenericObject&quot;,&quot;foo&quot;:&quot;bar&quot;}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Ce document sera transformé en une instance de JSON::GenericObject, avec
l&#39;attribut &quot;foo&quot; qui aura pour valeur &quot;bar&quot;. L&#39;instanciation de
tels objets permet la création de symboles arbitraires et, dans certains
cas, peut être utilisée pour contourner des mesures de sécurité.&lt;/p&gt;

&lt;p&gt;IMPORTANT : ce comportement &lt;strong&gt;ne change pas&lt;/strong&gt; avec l&#39;utilisation de
`JSON.load`. `JSON.load` ne doit &lt;strong&gt;jamais&lt;/strong&gt; être utilisé avec des
données provenant de sources inconnues. Si vous traitez des documents
JSON provenant d&#39;une source inconnue, utiliser &lt;strong&gt;toujours&lt;/strong&gt;
`JSON.parse`.&lt;/p&gt;

&lt;p&gt;Tous les utilisateurs d&#39;une version de Ruby concernée par ce problème
sont encouragés à mettre à jour ou à utiliser un des contournements
ci-dessous immédiatement.&lt;/p&gt;

&lt;h2&gt;Contournements&lt;/h2&gt;

&lt;p&gt;Pour les utilisateurs pour lesquels une mise à jour de Ruby ou de la gem
JSON n&#39;est pas possible, remplacez dans votre code :&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;JSON.parse(json)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;par ceci :&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;JSON.parse(json, :create_additions =&amp;gt; false)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If you cannot change the usage of `JSON.parse` (for example you&#39;re
using a gem which depends on `JSON.parse` like multi_json), then
apply this monkey patch: Si vous ne pouvez modifier l&#39;utilisation de
`JSON.parse` (par exemple, si cet appel est fait dans une gem externe
comme multi_json), alors appliquez ce monkey patch :&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;module JSON
  class &amp;lt;&amp;lt; self
    alias :old_parse :parse
    def parse(json, args = {})
      args[:create_additions] = false
      old_parse(json, args)
    end
  end
end
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Les versions de Ruby concernées&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Toutes les versions de Ruby 1.9 antérieures à Ruby 1.9.3 patchlevel
392&lt;/li&gt;
  &lt;li&gt;Toutes les versions de Ruby 2.0 antérieures à Ruby 2.0.0 patchlevel 0&lt;/li&gt;
  &lt;li&gt;Toutes les versions trunk avant la révision 39208&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Crédits&lt;/h2&gt;

&lt;p&gt;Un énorme merci va pour les personnes suivantes pour avoir remonté de
façon responsable cette vulnérabilité et avoir travaillé avec l&#39;équipe
Rails pour la corriger:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Thomas Hollstegge of Zweitag (www.zweitag.de)&lt;/li&gt;
  &lt;li&gt;Ben Murphy&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Historique&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Publié originalement à 2013-02-22 12:00:00 (UTC)&lt;/li&gt;
&lt;/ul&gt;

</description>
      <pubDate>Sat, 23 Feb 2013 13:37:53 +0000</pubDate>
      <guid>http://www.ruby-lang.org/fr/news/2013/02/23/dni-de-service-et-vulnrabilit-de-cration-dobjets-non-srs-cve-2013-0269/</guid>
      <link>http://www.ruby-lang.org/fr/news/2013/02/23/dni-de-service-et-vulnrabilit-de-cration-dobjets-non-srs-cve-2013-0269/</link>
    </item>
    
    <item>
      <title>Speakers recherchés pour la Barcelona Ruby Conference</title>
      <description>&lt;p&gt;La &lt;strong&gt;&lt;a href=&quot;http://baruco.org&quot;&gt;Barcelona Ruby Conference&lt;/a&gt;&lt;/strong&gt; se tiendra en Catalogne les 14 et
15 septembre. De &lt;a href=&quot;http://baruco.org/speakers&quot;&gt;nombreux intervenants&lt;/a&gt; connus et reconnus seront
présents : &lt;strong&gt;Aaron Patterson&lt;/strong&gt; (contributeur à Rails et Ruby), &lt;strong&gt;David
Chelimsky&lt;/strong&gt; (auteur du &lt;em&gt;RSpec book&lt;/em&gt;, contributeur à RSpec), &lt;strong&gt;Charles
Nutter&lt;/strong&gt; (mainteneur de JRuby), &lt;strong&gt;Sandi Metz&lt;/strong&gt; (auteur de &lt;em&gt;Practical
Object-Oriented Design in Ruby&lt;/em&gt;) ou encore &lt;strong&gt;Yukihiro Matz&lt;/strong&gt; (le
Créateur).&lt;/p&gt;

&lt;p&gt;L&#39;&lt;strong&gt;&lt;a href=&quot;http://baruco.org/call_for_papers&quot;&gt;appel à communication&lt;/a&gt; est lancé&lt;/strong&gt;: soumissions attendues
avant le 10 mars. Les 4 meilleures seront retenues. Chacun des lauréats
de ce mini-concours verra son entrée à la conférence et son hébergement
offerts et gérés par les organisateurs. Tous les détails sur &lt;a href=&quot;http://baruco.org/call_for_papers&quot;&gt;le site
web&lt;/a&gt; !&lt;/p&gt;

</description>
      <pubDate>Sat, 16 Feb 2013 16:45:43 +0000</pubDate>
      <guid>http://www.ruby-lang.org/fr/news/2013/02/16/speakers-recherchs-pour-la-barcelona-ruby-conference/</guid>
      <link>http://www.ruby-lang.org/fr/news/2013/02/16/speakers-recherchs-pour-la-barcelona-ruby-conference/</link>
    </item>
    
    <item>
      <title>Les Ruby Hero Awards, édition 2013</title>
      <description>&lt;p&gt;Un nouvel opus des &lt;a href=&quot;http://rubyheroes.com&quot;&gt;Ruby Hero Awards&lt;/a&gt; débute ! Les nominations sont
d&#39;ores et déjà acceptées, et les organisateurs comptent sur vous pour
dénicher de nouveaux talents au sein de la communauté… notamment celles
et ceux qui n&#39;ont pas encore reçus toute l&#39;attention méritée. Profil
typique : une personne qui contribue à l&#39;écosystème open-source Ruby de
façon particulièrement utile (au moins selon vous…), un mentor, un
organisateur de conférences ou ateliers…&lt;/p&gt;

&lt;p&gt;Si vous avez une idée en tête, proposer un nom sur &lt;a href=&quot;http://rubyheroes.com&quot;&gt;RubyHeroes.com&lt;/a&gt;
ne vous prendra pas plus d&#39;une minute : indiquez un pseudo github et
expliquez en quelques mots les raisons de votre choix. Dans environ un
mois, les lauréats des années précédentes se concerteront pour désigner
leurs six nouveaux héros, lesquels seront révélés au monde lors de la
RailsConf, fin avril.&lt;/p&gt;

</description>
      <pubDate>Sat, 16 Feb 2013 11:58:45 +0000</pubDate>
      <guid>http://www.ruby-lang.org/fr/news/2013/02/16/les-ruby-hero-awards-dition-2013/</guid>
      <link>http://www.ruby-lang.org/fr/news/2013/02/16/les-ruby-hero-awards-dition-2013/</link>
    </item>
    
    <item>
      <title>Sortie de Ruby 2.0.0-rc2</title>
      <description>&lt;p&gt;Ruby 2.0.0-rc2 est disponible ! Il s&#39;agit de la dernière release
candidate avant la version 2.0.0.&lt;/p&gt;

&lt;p&gt;N&#39;hésitez pas à la tester et à rapporter tout problème rencontré.&lt;/p&gt;

&lt;h2&gt;Téléchargement&lt;/h2&gt;

&lt;p&gt;Vous pouvez obtenir cette version depuis :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-rc2.tar.bz2&quot;&gt;&amp;lt;URL:ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-rc2.tar.bz2&amp;gt;&lt;/a&gt;&lt;/p&gt;

    &lt;pre&gt;&lt;code&gt;SIZE:   10822239 bytes
MD5:    e92420131bd7994513e0bf09a3e2a19b
SHA256: d55f897bb04283c5fa80223d96d990fe8ecb598508dd59443b356cbba1f66145
&lt;/code&gt;&lt;/pre&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-rc2.tar.gz&quot;&gt;&amp;lt;URL:ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-rc2.tar.gz&amp;gt;&lt;/a&gt;&lt;/p&gt;

    &lt;pre&gt;&lt;code&gt;SIZE:   13616756 bytes
MD5:    9d5e6f26db7c8c3ddefc81fdb19bd41a
SHA256: 87072ab3e6d393d47f7402682364e4f24efe1c518969795cc01fcdeeb0e646f3
&lt;/code&gt;&lt;/pre&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-rc2.zip&quot;&gt;&amp;lt;URL:ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-rc2.zip&amp;gt;&lt;/a&gt;&lt;/p&gt;

    &lt;pre&gt;&lt;code&gt;SIZE:   15118480 bytes
MD5:    1a2d33f1c50e32ca1532f8dea4790d53
SHA256: c28e9baf3aa00b41b8823c16df436ae143e8a63e43e7a53302f23119e13d0ebf
&lt;/code&gt;&lt;/pre&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Nouvelles fonctionnalités de Ruby 2.0.0&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;arguments « mots-clé »&lt;/li&gt;
  &lt;li&gt;Enumerable#lazy&lt;/li&gt;
  &lt;li&gt;Module#prepend&lt;/li&gt;
  &lt;li&gt;#to_h: convention pour la conversion vers un Hash&lt;/li&gt;
  &lt;li&gt;%i: un literal pour produire un tableau de symboles (à l&#39;instar de %s
pour les chaînes de caractères)&lt;/li&gt;
  &lt;li&gt;Moteur d&#39;expression régulière mis à jour : Onigmo (un fork
d&#39;Oniguruma)&lt;/li&gt;
  &lt;li&gt;Enumerator#size et Range#size font leur apparition&lt;/li&gt;
  &lt;li&gt;support de DTrace&lt;/li&gt;
  &lt;li&gt;TracePoint&lt;/li&gt;
  &lt;li&gt;de meilleurs performances pour la directive require (en particulier
sous Windows)&lt;/li&gt;
  &lt;li&gt;support de NativeClient&lt;/li&gt;
  &lt;li&gt;amélioration générale de la documentation&lt;/li&gt;
  &lt;li&gt;meilleure gestion des interruptions asynchrones&lt;/li&gt;
  &lt;li&gt;apparition de paramètres pour modifier la taille du stack de démarrage&lt;/li&gt;
  &lt;li&gt;Refinements (expérimental !)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;… et bien plus encore. Voir le fichiers NEWS pour tous les détails.&lt;/p&gt;

&lt;p&gt;Voici quelques articles sur ces différents sujets récemment publiés :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://speakerdeck.com/a_matsuda/ruby-2-dot-0-on-rails&quot;&gt;&amp;lt;URL:https://speakerdeck.com/a_matsuda/ruby-2-dot-0-on-rails&amp;gt;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://globaldev.co.uk/2012/11/ruby-2-0-0-preview-features/&quot;&gt;&amp;lt;URL:http://globaldev.co.uk/2012/11/ruby-2-0-0-preview-features/&amp;gt;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.infoq.com/news/2012/11/ruby-20-preview1&quot;&gt;&amp;lt;URL:http://www.infoq.com/news/2012/11/ruby-20-preview1&amp;gt;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://timelessrepo.com/refinements-in-ruby&quot;&gt;&amp;lt;URL:http://timelessrepo.com/refinements-in-ruby&amp;gt;&lt;/a&gt;
(Refinements)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://el.jibun.atmarkit.co.jp/rails/2012/11/ruby-20-8256.html&quot;&gt;&amp;lt;URL:http://el.jibun.atmarkit.co.jp/rails/2012/11/ruby-20-8256.html&amp;gt;&lt;/a&gt;
(en japonais)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://speakerdeck.com/nagachika/rubyist-enumeratorlazy&quot;&gt;&amp;lt;URL:https://speakerdeck.com/nagachika/rubyist-enumeratorlazy&amp;gt;&lt;/a&gt;
(Enumerator::Lazy, en japonais)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;S&#39;il vous prend l&#39;envie d&#39;écrire un article, prévenez-nous pour
qu&#39;il soit cité dans la prochaine actualité.&lt;/p&gt;

&lt;h2&gt;Notes&lt;/h2&gt;

&lt;h3&gt;Incompatibilités&lt;/h3&gt;

&lt;p&gt;Il en existe à notre connaissance trois principales :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;L&#39;encodage par défaut des scripts ruby est désormais UTF-8
&lt;a href=&quot;https://bugs.ruby-lang.org/issues/6679&quot;&gt;[#6679]&lt;/a&gt;. Certaines personnes ont mentionné le fait que cela
affecte le fonctionnement de programmes existant, par exemple des
systèmes de benchmarking qui deviennent très lents
&lt;a href=&quot;http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/46547&quot;&gt;[ruby-dev:46547]&lt;/a&gt;. La spécification pourrait de ce fait encore
évoluer d&#39;ici la release finale.&lt;/li&gt;
  &lt;li&gt;iconv a finalement été retiré, après avoir été déprécié lors de
l&#39;introduction de M17N dans ruby 1.9. Utilisez désormais
String#encode et autres.&lt;/li&gt;
  &lt;li&gt;L&#39;ABI (Application Binary Interface) connaît un changement majeur
&lt;a href=&quot;http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/48984&quot;&gt;[ruby-core:48984]&lt;/a&gt;. A priori, une simple réinstallation des
extensions doit faire l&#39;affaire, mais soyez bien attentifs à ne pas
copier les fichiers .so ou .bundle depuis une installation 1.9 (&quot;DO
NOT COPY .so OR .bundle FILES FROM 1.9&quot;), faute de quoi Ruby ne
fonctionnera pas.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Il existe par ailleurs quelques incompatibilités mineurs, voir
&lt;a href=&quot;http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/49119&quot;&gt;[ruby-core:49119]&lt;/a&gt;. Merci de rapporter tout autre problème de ce
type d&#39;ici la release.&lt;/p&gt;

&lt;p&gt;Bon à savoir : nous avons créé des notes de mise-à-jour, bien qu&#39;une
partie d&#39;entre elles soient déjà dépassées.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://bugs.ruby-lang.org/projects/ruby/wiki/200UpgradeNotesDraft&quot;&gt;&amp;lt;URL:https://bugs.ruby-lang.org/projects/ruby/wiki/200UpgradeNotesDraft&amp;gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;À propose des Refinements&lt;/h3&gt;

&lt;p&gt;Ruby 2.0.0 apportera les Refinements en tant que « fonctionnalité
expérimentale », faute d&#39;un accord final sur leur spécification.&lt;/p&gt;

&lt;p&gt;Notez donc que leur comportement pourrait changer dans les prochaines
versions.&lt;/p&gt;

&lt;h3&gt;Remerciements spéciaux&lt;/h3&gt;

&lt;p&gt;Merci à tous ceux et celles qui ont testé les preview et release
candidates ! Je suis très honoré du travail acharné de tous ces
contributeurs pour résoudre les bugs : je vous remercie tous
chaleureusement.&lt;/p&gt;

</description>
      <pubDate>Mon, 11 Feb 2013 08:45:25 +0000</pubDate>
      <guid>http://www.ruby-lang.org/fr/news/2013/02/11/sortie-de-ruby-2-0-0-rc2/</guid>
      <link>http://www.ruby-lang.org/fr/news/2013/02/11/sortie-de-ruby-2-0-0-rc2/</link>
    </item>
    
  </channel>
</rss>
