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

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Ruby RSS News</title>
    <link>http://www.ruby-lang.org/de/feeds/news.rss</link>
    <language>de-DE</language>
    <ttl>40</ttl>
    <description>Die letzten Neuigkeiten von ruby-lang.org.</description>
    
    <item>
      <title>Ruby 1.9.3-p429 veröffentlicht</title>
      <description>&lt;p&gt;Ruby 1.9.3-p429 ist soeben veröffentlicht worden.
Die vor einigen Stunden veröffentlichte Version p426 hatte auf
manchen Plattformen Kompilierprobleme. Verwenden Sie daher bitte
diese neue Version p429.&lt;/p&gt;

&lt;p&gt;Dieser Release beinhaltet einen Sicherheitsfix für DL / Fiddle.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/de/news/2013/05/14/taint-bypass-dl-fiddle-cve-2013-2065/&quot;&gt;Umgehung von Object#taint in DL und Fiddle in Ruby
(CVE-2013-2065)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Einige kleine Buxfixes sind ebenfalls enthalten.&lt;/p&gt;

&lt;p&gt;Siehe &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;
und &lt;a href=&quot;http://svn.ruby-lang.org/repos/ruby/tags/v1_9_3_429/ChangeLog&quot;&gt;ChangeLog&lt;/a&gt;
für weitere Informationen.&lt;/p&gt;

&lt;h2&gt;Download&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;Danksagung&lt;/h2&gt;

&lt;p&gt;Viele Committer, Tester und Nutzer, die Probleme gemeldet haben,
halfen mir bei der Veröffentlichung dieser Version. Vielen Dank an alle.&lt;/p&gt;
</description>
      <pubDate>Tue, 14 May 2013 17:00:00 +0000</pubDate>
      <guid>http://www.ruby-lang.org/de/news/2013/05/14/ruby-1-9-3-p429-is-released/</guid>
      <link>http://www.ruby-lang.org/de/news/2013/05/14/ruby-1-9-3-p429-is-released/</link>
    </item>
    
    <item>
      <title>Ruby 2.0.0-p195 veröffentlicht</title>
      <description>&lt;p&gt;Ruby 2.0.0-p195 wurde veröffentlicht.
Dies ist der erste Patchlevel-Release von Ruby 2.0.0.&lt;/p&gt;

&lt;p&gt;Diese Version beinhaltet einen Sicherheitsfix für DL / Fiddle.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/de/news/2013/05/14/taint-bypass-dl-fiddle-cve-2013-2065/&quot;&gt;Umgehung von Object#taint in DL und Fiddle in Ruby
(CVE-2013-2065)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sie enthält außerdem viele Bugfixes, einige Optimierungen
sowie Verbesserungen in der Dokumentation.&lt;/p&gt;

&lt;h2&gt;Downloads&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;Änderungen&lt;/h2&gt;

&lt;p&gt;Die wichtigsten Änderungen sind unten aufgelistet.
Siehe das &lt;a href=&quot;http://svn.ruby-lang.org/repos/ruby/tags/v2_0_0_195/ChangeLog&quot;&gt;ChangeLog&lt;/a&gt;
oder die &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;
für weitere Informationen.&lt;/p&gt;

&lt;p&gt;Vielen Dank an alle Committer und Mitwirkende.&lt;/p&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/de/news/2013/05/14/ruby-2-0-0-p195-is-released/</guid>
      <link>http://www.ruby-lang.org/de/news/2013/05/14/ruby-2-0-0-p195-is-released/</link>
    </item>
    
    <item>
      <title>Umgehung von Object#taint in DL und Fiddle in Ruby (CVE-2013-2065)</title>
      <description>&lt;p&gt;Es besteht eine Verwundbarkeit in DL und Fiddle in Ruby, wodurch als
“tainted” eingestufte Strings unabhängig von dem durch Ruby festgelegten
$SAFE-Level in Systemaufrufen verwendet werden können.
Dieser Schwachstelle wurde die CVE-Nummer CVE-2013-2065 zugewiesen.&lt;/p&gt;

&lt;h2&gt;Auswirkungen&lt;/h2&gt;

&lt;p&gt;Native Funktionen, die mittels DL oder Fiddle von Ruby aus aufgerufen
werden, überprüfen nicht den “taint”-Status der ihnen übergebenen Objekte.
Dies kann dazu führen, dass als “tainted” eingestufte Objekte als Eingabe
akzeptiert werden anstatt eine SecurityError-Ausnahme auszulösen.&lt;/p&gt;

&lt;p&gt;Betroffener Code für DL kann etwa folgendermaßen aussehen:&lt;/p&gt;

&lt;pre class=&quot;code&quot;&gt;&lt;code&gt;def my_function(user_input)
  handle    = DL.dlopen(nil)
  sys_cfunc = DL::CFunc.new(handle[&#39;system&#39;], DL::TYPE_INT, &#39;system&#39;)
  sys       = DL::Function.new(sys_cfunc, [DL::TYPE_VOIDP])
  sys.call user_input
end

$SAFE = 1
my_function &quot;uname -rs&quot;.taint
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Betroffener Code für Fiddle kann etwa folgendermaßen aussehen:&lt;/p&gt;

&lt;pre class=&quot;code&quot;&gt;&lt;code&gt;def my_function(user_input)
  handle    = DL.dlopen(nil)
  sys = Fiddle::Function.new(handle[&#39;system&#39;],
                          [Fiddle::TYPE_VOIDP], Fiddle::TYPE_INT)
  sys.call user_input
end

$SAFE = 1
my_function &quot;uname -rs&quot;.taint
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Alle Nutzer eines betroffenen Releases sollten dringend
aktualisieren oder einen der folgenden Workarounds anwenden.&lt;/p&gt;

&lt;p&gt;Beachten Sie, dass dies eine Verwendung von numerischen Memory-Offsets
als Pointer-Werte &lt;em&gt;nicht verhindert&lt;/em&gt;. Zahlen können nicht als “tainted”
markiert werden, so dass Code, der einen numerischen Memory-Offset übergibt,
nicht überprüft werden kann. Zum Beispiel:&lt;/p&gt;

&lt;pre class=&quot;code&quot;&gt;&lt;code&gt;def my_function(input)
  handle    = DL.dlopen(nil)
  sys = Fiddle::Function.new(handle[&#39;system&#39;],
                          [Fiddle::TYPE_VOIDP], Fiddle::TYPE_INT)
  sys.call input
end

$SAFE = 1
user_input = &quot;uname -rs&quot;.taint
my_function DL::CPtr[user_input].to_i
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;In diesem Fall wird der Speicherort übergeben und der “taint”-Status des
Objekts kann von DL / Fiddle nicht festgestellt werden. Überprüfen Sie
in solchen Fällen den “taint”-Status der Benutzereingabe vor der Übergabe
des Speicherorts:&lt;/p&gt;

&lt;pre class=&quot;code&quot;&gt;&lt;code&gt;user_input = &quot;uname -rs&quot;.taint
raise if $SAFE &amp;gt;= 1 &amp;amp;&amp;amp; user_input.tainted?
my_function DL::CPtr[user_input].to_i
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Workarounds&lt;/h2&gt;

&lt;p&gt;Wenn ein Upgrade von Ruby nicht möglich ist, kann der folgende
Monkeypatch als Notlösung verwendet werden:&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;Betroffene Versionen&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Alle Versionen von Ruby 1.9 vor Ruby 1.9.3 patchlevel 426&lt;/li&gt;
  &lt;li&gt;Alle Versionen von Ruby 2.0 vor Ruby 2.0.0 patchlevel 195&lt;/li&gt;
  &lt;li&gt;Alle Trunk-Versionen vor Revision 40728&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ruby 1.8 ist nicht betroffen.&lt;/p&gt;

&lt;h2&gt;Danksagung&lt;/h2&gt;

&lt;p&gt;Vielen Dank an Vit Ondruch für das Melden dieses Problems.&lt;/p&gt;

&lt;h2&gt;Verlauf&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Erstmals veröffentlicht am 2013-05-14 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/de/news/2013/05/14/taint-bypass-dl-fiddle-cve-2013-2065/</guid>
      <link>http://www.ruby-lang.org/de/news/2013/05/14/taint-bypass-dl-fiddle-cve-2013-2065/</link>
    </item>
    
    <item>
      <title>Ruby 2 veröffentlicht</title>
      <description>&lt;p&gt;Wir sind höchst erfreut, heute, am 20. Geburtstag von Ruby, die
Veröffentlichung von Ruby 2.0.0-p0 ankündigen zu können. Ruby 2.0.0 ist
das erste stabile Release der 2.0er Serie, mit zahlreichen neuen
Features und Verbesserungen als Antwort auf die steigenden und
expandierenden Ansprüche an die Programmiersprache Ruby.&lt;/p&gt;

&lt;p&gt;Haben Sie viel Freude an der Programmierung mit Ruby 2.0.0!&lt;/p&gt;

&lt;h3&gt;Was ist Ruby 2&lt;/h3&gt;

&lt;h4&gt;Neue Features&lt;/h4&gt;

&lt;p&gt;Ein paar der Höhepunkte:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;Sprachkern&lt;/em&gt;:
    &lt;ul&gt;
      &lt;li&gt;Benannte Parameter, die API-Design Flexibilität geben&lt;/li&gt;
      &lt;li&gt;Module#prepend ermöglicht neue Wege, Klassen zu erweitern&lt;/li&gt;
      &lt;li&gt;Ein neues Literal &lt;code&gt;%i&lt;/code&gt;, das ein Array von Symbolen erzeugt&lt;/li&gt;
      &lt;li&gt;&lt;code&gt;__dir__&lt;/code&gt; gibt den Verzeichnispfad der aktuell ausgeführten Datei
zurück&lt;/li&gt;
      &lt;li&gt;UTF-8 ist nun die Standardkodierung, wodurch der magische Kommentar
nun weggelassen werden kann&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Eingebaute Bibliotheken&lt;/em&gt;:
    &lt;ul&gt;
      &lt;li&gt;Enumerable#lazy und &lt;code&gt;Enumerator::Lazy&lt;/code&gt;, für (durchaus unendliche)
&lt;em&gt;lazy&lt;/em&gt; Streams&lt;/li&gt;
      &lt;li&gt;Enumerator#size und Range#size, für &lt;em&gt;lazy&lt;/em&gt; Größenfeststellung&lt;/li&gt;
      &lt;li&gt;#to_h, die neue Konvention zur Konvertierung in einen Hash&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;Onigmo&lt;/em&gt;, die neue Engine für Reguläre Ausdrücke (ein Fork von
Oniguruma)&lt;/li&gt;
      &lt;li&gt;Asynchrones API zum Behandeln von Exceptions&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Debugging-Unterstützung&lt;/em&gt;
    &lt;ul&gt;
      &lt;li&gt;Unterstützung von &lt;em&gt;DTrace&lt;/em&gt;, sodass Runtime-Diagnosen in Produktion
möglich werden&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;TracePoint&lt;/em&gt;, ein verbessertes Tracing-API&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Performanzverbesserungen&lt;/em&gt;:
    &lt;ul&gt;
      &lt;li&gt;GC-Optimierung durch &lt;em&gt;Bitmap Marking&lt;/em&gt;&lt;/li&gt;
      &lt;li&gt;Optimierungen an Kernel#require, wodurch sich die Startzeit von
Rails drastisch verringert&lt;/li&gt;
      &lt;li&gt;Optimierungen an der VM, etwa am Methoden-Dispatch&lt;/li&gt;
      &lt;li&gt;Optimierungen bei der Gleitkommazahlberechnung&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Darüberhinaus enthält 2.0.0 Refinements zur Erweiterung von Rubys
Modularität, allerdings als &lt;strong&gt;experimentelles Feature&lt;/strong&gt;. Für noch mehr,
siehe die &lt;a href=&quot;http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/tags/v2_0_0_0/NEWS?view=markup&quot;&gt;NEWS&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;Kompatibilität&lt;/h4&gt;

&lt;p&gt;Wir haben auch darauf geachtet, 2.0.0 kompatibel zu 1.9 zu designen,
daher sollte es einfacher sein, von 1.9 auf 2.0 zu migrieren, als damals
von 1.8 auf 1.9 (die auffälligen Inkompatibilitäten werden weiter unten
beschrieben).&lt;/p&gt;

&lt;p&gt;Tatsächlich sind, dank der bemerkenswerten Arbeit Dritter, einige
populäre Anwendungen wie Rails und tDiary bereits erfolgreich auf die
Release-Candidates von 2.0.0 portiert worden.&lt;/p&gt;

&lt;h4&gt;Dokumentation&lt;/h4&gt;

&lt;p&gt;Es gibt zahlreiche Verbesserungen an der Dokumentation, was viele
Rubyisten gefordert haben. Wir haben riesige Berge von RDoc für Module
und Methoden geschrieben; insgesamt ist 2.0.0 zu rund 75% dokumentiert,
wohingegen 1.9.3 nur zu etwa 60% abgedeckt war. Daneben gibt es nun eine
Beschreibung von Rubys Syntax, einsehbar mit:&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;h4&gt;Stabilität&lt;/h4&gt;

&lt;p&gt;Beachten Sie, dass, anders als 1.9.0, 2.0.0 ein &lt;strong&gt;stabiles Release&lt;/strong&gt;
ist, &lt;strong&gt;obwohl&lt;/strong&gt; die &lt;em&gt;teeny&lt;/em&gt;-Nummer 0 ist. Es wird allen Autoren von
Programmbibliotheken stärkstens empfohlen, 2.0.0 zu unterstützen — wie
bereits gesagt, sollte die Migration von 1.9 auf 2.0 nicht sonderlich
schwerfallen.&lt;/p&gt;

&lt;p&gt;Ruby 2.0.0 ist produktionsreif und wir Ihr Leben als Rubyist
verschönern.&lt;/p&gt;

&lt;h3&gt;Notizen&lt;/h3&gt;

&lt;h4&gt;Einführende Artikel&lt;/h4&gt;

&lt;p&gt;Hier sind einige Einführungen in Ruby 2 von Dritten:&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;http://blog.marc-andre.ca/2013/02/23/ruby-2-by-example&lt;/a&gt;
(ausführlich, empfohlen)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://speakerdeck.com/shyouhei/whats-new-in-ruby-2-dot-0&quot;&gt;https://speakerdeck.com/shyouhei/whats-new-in-ruby-2-dot-0&lt;/a&gt;
(ausführlich, empfohlen)&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;http://el.jibun.atmarkit.co.jp/rails/2012/11/ruby-20-8256.html&lt;/a&gt;
(kurz, japanisch)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://speakerdeck.com/nagachika/rubyist-enumeratorlazy&quot;&gt;https://speakerdeck.com/nagachika/rubyist-enumeratorlazy&lt;/a&gt; (nur
&lt;code&gt;Enumerator::Lazy&lt;/code&gt;, japanisch)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Die folgenden Artikel sind durchaus hilfreich, aber im Bezug auf
Refinements veraltet:&lt;/p&gt;

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

&lt;p&gt;In der aktuellen Ausgabe des &lt;em&gt;Rubyist Magazine&lt;/em&gt; finden sich einige
Artikel, die von den Feature-Entwicklern selbst verfasst wurden:&lt;/p&gt;

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

&lt;p&gt;Obwohl diese Artikel in Japanisch verfasst wurden, sind für die Zukunft
englische Übersetzungen geplant.&lt;/p&gt;

&lt;h3&gt;Inkompatibilitäten&lt;/h3&gt;

&lt;p&gt;Es gibt fünf auffällige Inkompatibilitäten, von denen wir wissen:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Die Standardkodierung für Ruby-Skripte ist nun UTF-8 [#6679]. Einige
Leute sind der Meinung, dass dies existierende Programme betrifft,
etwa werden scheinbar einige Benchmark-Programme sehr langsam
[ruby-dev:46547].&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Iconv&lt;/em&gt; wurde entfernt. Es war ohnehin schon seit der Einführung von
M17n in Ruby 1.9 &lt;em&gt;deprecated&lt;/em&gt;; benutzen Sie stattdessen String#encode
usw.&lt;/li&gt;
  &lt;li&gt;Es gibt einen ABI-Bruch [ruby-core:48984]. Wir sind allerdings der
Auffassung, dass normale Nutzer einfach ihre Extension-Libraries neu
installieren können/sollten. KOPIEREN SIE KEINE &lt;code&gt;.so&lt;/code&gt;- ODER
&lt;code&gt;.bundle&lt;/code&gt;-DATEIEN VON 1.9.&lt;/li&gt;
  &lt;li&gt;#lines, #chars, #codepoints und #bytes geben nun ein Array anstelle
eines Enumerators zurück [#6670], wodurch das gewohnt gewordene
Idiom &lt;code&gt;lines.to_a&lt;/code&gt; entfällt. Nutzen Sie #each_line usw. um einen
Enumerator zu erhalten.&lt;/li&gt;
  &lt;li&gt;Object#inspect gibt nun stets einen String à la &lt;code&gt;#&amp;lt;ClassName:0x...&amp;gt;&lt;/code&gt;
zurück statt an #to_s zu delegieren [#2152].&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Daneben gibt es einige vergleichsweise kleine Inkompatibilitäten
[ruby-core:49119].&lt;/p&gt;

&lt;h3&gt;Status von Refinements&lt;/h3&gt;

&lt;p&gt;Wir haben ein neues Feature namens &lt;em&gt;Refinements&lt;/em&gt; in die Sprache
eingeführt, das Rubys Modularität um ein weiteres Konzept erweitert.
Beachten Sie jedoch bitte, dass Refinements &lt;strong&gt;noch immer experimentell&lt;/strong&gt;
sind: wir können ihre Spezifikation in Zukunft ändern. Abgesehen davon
möchten wir Sie jedoch dazu ermutigen, mit ihnen zu spielen und uns Ihre
Gedanken dazu mitzuteilen. Ihr Feedback wird dabei helfen, diese
interessante Feature festzuschmieden.&lt;/p&gt;

&lt;h3&gt;Danksagung&lt;/h3&gt;

&lt;p&gt;Eine große Anzahl von Leuten haben an Ruby 2 mitgearbeitet, eine
komplette Danksagung selbst für wenige Teile der Mitarbeit wäre viel zu
groß, um sie hier einzufügen. Es tut mir Leid, aber lassen Sie mich
stattdessen einen Link auf eine &lt;em&gt;SpecialThanks&lt;/em&gt;-Seite setzen:&lt;/p&gt;

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

&lt;p&gt;Vielen Dank euch allen!&lt;/p&gt;

&lt;h3&gt;Download&lt;/h3&gt;

&lt;dl&gt;
  &lt;dt&gt;&lt;a href=&quot;ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p0.tar.bz2&quot;&gt;ruby-2.0.0-p0.tar.bz2&lt;/a&gt;&lt;/dt&gt;
  &lt;dd&gt;
    &lt;p&gt;&lt;strong&gt;MD5-Summe&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;895c1c581f8d28e8b3bb02472b2ccf6a&lt;/p&gt;

    &lt;p&gt;&lt;strong&gt;SHA256&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;c680d392ccc4901c32067576f5b474ee186def2fcd3fcbfa485739168093295f&lt;/p&gt;

    &lt;p&gt;&lt;strong&gt;Größe&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;10.814.890 Byte&lt;/p&gt;
  &lt;/dd&gt;
  &lt;dt&gt;&lt;a href=&quot;ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p0.tar.gz&quot;&gt;ruby-2.0.0-p0.tar.gz&lt;/a&gt;&lt;/dt&gt;
  &lt;dd&gt;
    &lt;p&gt;&lt;strong&gt;MD5-Summe&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;50d307c4dc9297ae59952527be4e755d&lt;/p&gt;

    &lt;p&gt;&lt;strong&gt;SHA256&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;aff85ba5ceb70303cb7fb616f5db8b95ec47a8820116198d1c866cc4fff151ed&lt;/p&gt;

    &lt;p&gt;&lt;strong&gt;Größe&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;13.608.925 Byte&lt;/p&gt;
  &lt;/dd&gt;
  &lt;dt&gt;&lt;a href=&quot;ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p0.zip&quot;&gt;ruby-2.0.0-p0.zip&lt;/a&gt;&lt;/dt&gt;
  &lt;dd&gt;
    &lt;p&gt;&lt;strong&gt;MD5-Summe&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;db5af5d6034646ad194cbdf6e50f49ee&lt;/p&gt;

    &lt;p&gt;&lt;strong&gt;SHA256&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;0d0af6a9c8788537efd8d7d2358ce9468e6e2b7703dacba9ebd064d8b7da5f99&lt;/p&gt;

    &lt;p&gt;&lt;strong&gt;Größe&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;15.037.340 Byte&lt;/p&gt;
  &lt;/dd&gt;
&lt;/dl&gt;

</description>
      <pubDate>Sun, 24 Feb 2013 10:33:03 +0000</pubDate>
      <guid>http://www.ruby-lang.org/de/news/2013/02/24/ruby-2-verffentlicht/</guid>
      <link>http://www.ruby-lang.org/de/news/2013/02/24/ruby-2-verffentlicht/</link>
    </item>
    
    <item>
      <title>Ruby 1.9.3-p392 veröffentlicht</title>
      <description>&lt;p&gt;Ruby 1.9.3-p392 ist nun auch noch veröffentlicht worden — wir
entschuldigen uns für diese häufigen Releases, aber hierbei handelt es
sich um wichtige Sicherheitsaktualisierungen.&lt;/p&gt;

&lt;p&gt;Hierbei handelt es sich um die neueste stabile Version der 1.9er-Serie.
Sie enthält Sicherheitsfixes für die mit Ruby mitgelieferten JSON- und
REXML-Bibliotheken, nebst einigen kleineren Bugfixes.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.ruby-lang.org/de/news/2013/02/23/rexml-bombe/&quot; title=&quot;XML-Bombe&quot;&gt;Entitätsexpansion-DoS-Schwachstelle in REXML&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.ruby-lang.org/de/news/2013/02/23/denial-of-service-cve-2013-0269/&quot; title=&quot;CVE-2013-0269&quot;&gt;Denial-of-Service- und Objekterstellungs-Sicherheitslücken in
JSON&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Siehe die &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; und das &lt;a href=&quot;http://svn.ruby-lang.org/repos/ruby/tags/v1_9_3_392/ChangeLog&quot;&gt;Changelog&lt;/a&gt; für weitere Informationen.&lt;/p&gt;

&lt;h3&gt;Download&lt;/h3&gt;

&lt;dl&gt;
  &lt;dt&gt;&lt;a href=&quot;ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p392.tar.bz2&quot;&gt;ruby-1.9.3-p392.tar.bz2&lt;/a&gt;&lt;/dt&gt;
  &lt;dd&gt;
    &lt;p&gt;&lt;strong&gt;MD5-Summe&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;a810d64e2255179d2f334eb61fb8519c&lt;/p&gt;

    &lt;p&gt;&lt;strong&gt;SHA256&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;5a7334dfdf62966879bf539b8a9f0b889df6f3b3824fb52a9303c3c3d3a58391&lt;/p&gt;

    &lt;p&gt;&lt;strong&gt;Größe&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;10.024.221 Byte&lt;/p&gt;
  &lt;/dd&gt;
  &lt;dt&gt;&lt;a href=&quot;ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p392.tar.gz&quot;&gt;ruby-1.9.3-p392.tar.gz&lt;/a&gt;&lt;/dt&gt;
  &lt;dd&gt;
    &lt;p&gt;&lt;strong&gt;MD5-Summe&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;f689a7b61379f83cbbed3c7077d83859&lt;/p&gt;

    &lt;p&gt;&lt;strong&gt;SHA256&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;8861ddadb2cd30fb30e42122741130d12f6543c3d62d05906cd41076db70975f&lt;/p&gt;

    &lt;p&gt;&lt;strong&gt;Größe&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;12.557.294 Byte&lt;/p&gt;
  &lt;/dd&gt;
  &lt;dt&gt;&lt;a href=&quot;ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p392.zip&quot;&gt;ruby-1.9.3-p392.zip&lt;/a&gt;&lt;/dt&gt;
  &lt;dd&gt;
    &lt;p&gt;&lt;strong&gt;MD5-Summe&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;212fb3bc41257b41d1f8bfe0725916b7&lt;/p&gt;

    &lt;p&gt;&lt;strong&gt;SHA256&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;f200ce4a63ce57bea64028a507350717c2a16bdbba6d9538bc69e9e7c2177c8b&lt;/p&gt;

    &lt;p&gt;&lt;strong&gt;Größe&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;13.863.402 Byte&lt;/p&gt;
  &lt;/dd&gt;
&lt;/dl&gt;

&lt;h3&gt;Danksagung&lt;/h3&gt;

&lt;p&gt;Viele Commiter, Tester und Nutzer, die Fehler gemeldet haben, halfen uns
sehr bei der Veröffentlichung dieser Version. Vielen Dank an alle eure
Mitarbeit.&lt;/p&gt;

</description>
      <pubDate>Sat, 23 Feb 2013 09:27:32 +0000</pubDate>
      <guid>http://www.ruby-lang.org/de/news/2013/02/23/ruby-1-9-3-p392-verffentlicht/</guid>
      <link>http://www.ruby-lang.org/de/news/2013/02/23/ruby-1-9-3-p392-verffentlicht/</link>
    </item>
    
    <item>
      <title>Entitätsexpansion-DoS-Schwachstelle in REXML (XML-Bombe, CVE-2013-1821)</title>
      <description>&lt;p&gt;Unkontrollierte Expansion von Entitäten in REXML kann zu einer
DoS-Verwundbareit führen. Dieser Verwundbarkeit wurde die CVE-Nummer
CVE-2013-1821 zugewiesen. Wir empfehlen stark, Ruby zu aktualisieren.&lt;/p&gt;

&lt;h3&gt;Details&lt;/h3&gt;

&lt;p&gt;Beim Lesen von Textknoten aus einem XML-Dokument kann der REXML-Parser
dazu gebracht werden, extrem große String-Objekte zu allokieren, die den
gesamten Arbeitsspeicher eines Rechners verbrauchen und somit für eine
Denial-of-Service-Attacke genutzt werden können.&lt;/p&gt;

&lt;p&gt;Betroffener Code sieht so aus:&lt;/p&gt;

&lt;pre class=&quot;code&quot;&gt;&lt;code&gt;document = REXML::Document.new some_xml_doc
document.root.text
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Wenn die #text-Methode aufgerufen wird, werden die Entitäten expandiert.
Ein Angreifer kann so mithilfe eines verhältnismäßig kleinen
XML-Dokuments erreichen, dass bei der Expansion der Entitäten extreme
Mengen an Arbeitsspeicher auf dem Zielsystem verbraucht werden.&lt;/p&gt;

&lt;p&gt;Beachten Sie, dass dieser Angriff dem „Billion Laughs“-Angriff ähnlich
ist, sich aber dennoch von diesem unterscheidet. Er ist auch mit Pythons
&lt;em&gt;CVE-2013-1664&lt;/em&gt; verwandt.&lt;/p&gt;

&lt;p&gt;Alle Nutzer eines betroffenen Release sind angehalten, entweder umgehend
zu aktualisieren oder den folgenden Workaround anzuwenden.&lt;/p&gt;

&lt;h3&gt;Workaround&lt;/h3&gt;

&lt;p&gt;Wenn Sie Ruby nicht aktualisieren können, benutzen Sie diesen
Monkeypatch als Notlösung:&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;Der Monkeypatch begrenzt die Größe der Entitätsersetzungen auf 10.000
pro Knoten; REXML besitzt bereits eine Standardbegrenzung auf 10.000
Entitätsersetzungen pro Dokument, sodass die durch Entitätsersetzung
maximal erzeugbare Menge an Text sich um etwa 98 Megabyte bewegen wird.&lt;/p&gt;

&lt;h3&gt;Betroffene Versionen&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Alle Versionen von Ruby 1.9 vor 1.9.3-p392&lt;/li&gt;
  &lt;li&gt;Alle Versionen von Ruby 2 vor 2.0.0-p0&lt;/li&gt;
  &lt;li&gt;Alle Trunk-Revisionen vor Revision 39384&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Danksagung&lt;/h3&gt;

&lt;p&gt;Vielen Dank an Ben Murphy für das Melden dieses Problems.&lt;/p&gt;

&lt;h3&gt;Verlauf&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;CVE-Nummer ergänzt am 2013-03-11 07:45:00 (UTC)&lt;/li&gt;
  &lt;li&gt;Erstmals veröffentlicht am 2013-02-22 12:00:00 (UTC)&lt;/li&gt;
&lt;/ul&gt;

</description>
      <pubDate>Sat, 23 Feb 2013 09:14:24 +0000</pubDate>
      <guid>http://www.ruby-lang.org/de/news/2013/02/23/rexml-bombe/</guid>
      <link>http://www.ruby-lang.org/de/news/2013/02/23/rexml-bombe/</link>
    </item>
    
    <item>
      <title>Denial-of-Service- und Objekterstellungs-Sicherheitslücken in JSON (CVE-2013-0269)</title>
      <description>&lt;p&gt;Es ist möglich, einen Denial-of-Service- und Objekterstellungs-Angriff
auf die mit Ruby ausgelieferte &lt;code&gt;json&lt;/code&gt;-Bibliothek durchzuführen. Dieser
Sicherheitslücke wurde die CVE-Nummer &lt;em&gt;CVE-2013-0269&lt;/em&gt; zugewiesen und wir
empfehlen dringend, Ruby zu aktualisieren.&lt;/p&gt;

&lt;h3&gt;Details&lt;/h3&gt;

&lt;p&gt;Beim Parsen gewisser JSON-Dokumente kann das &lt;code&gt;json&lt;/code&gt;-Gem (auch das mit
Ruby mitgelieferte) dazu gebracht werden, Ruby-Symbole in ein Zielsystem
einzuschleusen. Da Ruby-Symbole bekanntlich nicht von der Garbage
Collection betroffen sind, kann dies für einen Denial-of-Service-Angriff
ausgenutzt werden.&lt;/p&gt;

&lt;p&gt;Dieselbe Technik kann genutzt werden, um auf einem Zielsystem Objekte zu
erstellen, die sich wie interne Objekte verhalten. Diese erscheinen nach
außen hin normal, können aber zur Umgehung bestimmter
Sicherheitsmechanismen benutzt werden und damit als Sprungbrett für
SQL-Injection-Angriffe in RubyOnRails dienen.&lt;/p&gt;

&lt;p&gt;Betroffener Code sieht so aus:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;&lt;span class=&quot;no&quot;&gt;JSON&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;parse&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;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Wobei die &lt;code&gt;user_input&lt;/code&gt;-Variable ein JSON-Dokument hält, das etwa so
aussieht:&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;Das JSON-Gem wird daraufhin versuchen, die Konstante &lt;code&gt;foo&lt;/code&gt;
nachzuschlagen und dabei ein Symbol erzeugen.&lt;/p&gt;

&lt;p&gt;In &lt;code&gt;json&lt;/code&gt; Version 1.7.x können Objekte mit beliebigen Attributen wie
folgt erstellt werden:&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;Dieses Dokument erzeugt eine Instanz von &lt;code&gt;JSON::GenericObject&lt;/code&gt; mit einem
Attribut &lt;code&gt;foo&lt;/code&gt;, das den Wert &lt;code&gt;&quot;bar&quot;&lt;/code&gt; hält. Durch die Instanziierung
solcher Objekte können beliebige Symbole erzeugt werden und in einigen
Fällen sogar Sicherheitsmechanismen umgangen werden.&lt;/p&gt;

&lt;p&gt;BITTE BEACHTEN: Dieses Verhalten &lt;strong&gt;ändert sich nicht&lt;/strong&gt; bei der
Verwendung von &lt;code&gt;JSON.load&lt;/code&gt;. &lt;code&gt;JSON.load&lt;/code&gt; sollte man &lt;strong&gt;niemals&lt;/strong&gt; Input aus
nicht vertrauenswürdigen Quellen übergeben — wenn Se JSON aus nicht
vertrauenswürdigen Quellen verarbeiten, benutzen Sie &lt;strong&gt;immer&lt;/strong&gt;
&lt;code&gt;JSON.parse&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Alle Nutzer eines betroffenen Release sollten entweder aktualisieren
oder einen der folgenden Workarounds umgehend anwenden.&lt;/p&gt;

&lt;h3&gt;Workarounds&lt;/h3&gt;

&lt;p&gt;Nutzer, die Ruby oder das JSON-Gem nicht aktualisieren können, sollten
ihren Code von diesem:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;&lt;span class=&quot;no&quot;&gt;JSON&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;parse&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;json&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;auf diesen ändern:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;&lt;span class=&quot;no&quot;&gt;JSON&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;parse&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;json&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;:create_additions&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kp&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Wenn Sie den &lt;code&gt;JSON.parse&lt;/code&gt; nutzenden Code nicht anpassen können (weil Sie
zum Beispiel ein Gem wie &lt;code&gt;multi_json&lt;/code&gt; verwenden, das von &lt;code&gt;JSON.parse&lt;/code&gt;
abhängt), verwenden Sie diesen Monkeypatch:&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;module&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;JSON&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;self&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;alias&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;:old_parse&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;:parse&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;parse&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;json&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&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;p&quot;&gt;{})&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;ss&quot;&gt;:create_additions&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;kp&quot;&gt;false&lt;/span&gt;
      &lt;span class=&quot;n&quot;&gt;old_parse&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;json&lt;/span&gt;&lt;span class=&quot;p&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;span class=&quot;k&quot;&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3&gt;Betroffene Versionen&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Alle Versionen von Ruby 1.9 vor 1.9.3-p392&lt;/li&gt;
  &lt;li&gt;Alle Versionen von Ruby 2 vor 2.0.0-p0&lt;/li&gt;
  &lt;li&gt;Alle Trunk-Revisionen vor Revision 39208&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Danksagung&lt;/h3&gt;

&lt;p&gt;Großer Dank geht an die folgenden Personen, die das Problem
verantwortungsvoll gemeldet („responsible disclosure“) und mit dem
Rails-Team zusammengearbeitet haben, um es zu beheben:&lt;/p&gt;

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

&lt;h3&gt;Verlauf&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Erstmals veröffentlicht: 2013-02-22 12:00:00 (UTC)&lt;/li&gt;
&lt;/ul&gt;

</description>
      <pubDate>Sat, 23 Feb 2013 08:54:03 +0000</pubDate>
      <guid>http://www.ruby-lang.org/de/news/2013/02/23/denial-of-service-cve-2013-0269/</guid>
      <link>http://www.ruby-lang.org/de/news/2013/02/23/denial-of-service-cve-2013-0269/</link>
    </item>
    
    <item>
      <title>Call for Papers für die Barcelona Ruby Conference eröffnet</title>
      <description>&lt;p&gt;Die &lt;a href=&quot;http://baruco.org&quot;&gt;Barcelona Ruby Conference&lt;/a&gt; findet dieses Jahr am 14. und 15.
September im Herzen von Catalunya, Spanien, statt. Nebst weiteren treten
&lt;a href=&quot;http://baruco.org/speakers&quot;&gt;Weltklasse-Sprecher&lt;/a&gt; wie Aaron Patterson (Rails und Ruby-Core),
David Chelimsky (Autor von &lt;em&gt;The RSpec Book&lt;/em&gt;), Charles O. Nutter
(JRuby-Maintainer), Sandi Metz (Autor von &lt;em&gt;Practical Object-Oriented
Design in Ruby&lt;/em&gt;) und Yukihiro „Matz“ Matsumoto (Erfinder von Ruby) auf.&lt;/p&gt;

&lt;p&gt;Der &lt;a href=&quot;http://baruco.org/call_for_papers&quot;&gt;Call for Papers&lt;/a&gt; ist bereits eröffnet und Vorschläge werden bis
zum 10. März entgegengenommen — verpassen Sie nicht die Chance, auf
dieser Liste zu stehen!&lt;/p&gt;

&lt;p&gt;Insgesamt gibt es vier freie Plätze, und jeder der vier ausgewählten
Sprecher erhält ein kostenfreies Ticket zur Konferenz inklusive Kost und
Logis. Auf &lt;a href=&quot;http://baruco.org/call_for_papers&quot;&gt;dieser Website&lt;/a&gt; können Sie den momentanen Status des Call
for Papers überprüfen und Ihre Eingabe machen.&lt;/p&gt;

</description>
      <pubDate>Sun, 17 Feb 2013 20:30:30 +0000</pubDate>
      <guid>http://www.ruby-lang.org/de/news/2013/02/17/call-for-papers-fr-die-barcelona-ruby-conference-erffnet/</guid>
      <link>http://www.ruby-lang.org/de/news/2013/02/17/call-for-papers-fr-die-barcelona-ruby-conference-erffnet/</link>
    </item>
    
    <item>
      <title>Die Ruby-Hero-Awards 2013</title>
      <description>&lt;p&gt;Die &lt;em&gt;Ruby Hero Awards&lt;/em&gt; akzeptieren ab sofort Nominierungen und wir
brauchen eure Hilfe, um Leute zu finden, die dankesohne anderen helfen
und vielleicht nicht einmal die Aufmerksamkeit erhalten, die sie
verdienen. Das könnte jemand sein, der an Open-Source-Ruby-Software
gearbeitet hat, die du nützlich fandest, ein Tutor, oder vielleicht
jemand, der bei der Organisation von Ruby-Events half.&lt;/p&gt;

&lt;p&gt;Wenn du eine Minute Zeit hast, erübrige sie, um jemanden auf
&lt;a href=&quot;http://rubyheroes.com&quot;&gt;rubyheroes.com&lt;/a&gt; zu nominieren. Gib einfach den GitHub-Nutzernamen
der Person, die du nominieren möchtest ein und uns gegenüber einen Grund
an, weshalb diese Person die Auszeichnung erhalten sollte. In etwa einem
Monat werden alle Ruby Heroes des letzten Jahres bei der Entscheidung
helfen, wer die diesjährigen sechs Auszeichnungen erhält, die live auf
der Railsconf Ende April verliehen werden.&lt;/p&gt;

</description>
      <pubDate>Sun, 17 Feb 2013 19:44:25 +0000</pubDate>
      <guid>http://www.ruby-lang.org/de/news/2013/02/17/die-ruby-hero-awards-2013/</guid>
      <link>http://www.ruby-lang.org/de/news/2013/02/17/die-ruby-hero-awards-2013/</link>
    </item>
    
    <item>
      <title>Ruby 2.0.0-rc2 veröffentlicht</title>
      <description>&lt;p&gt;Der zweite Release Candidate von Ruby 2 ist veröffentlicht worden. Dies
ist der letzte Release Candidate vor Ruby 2 und wir bitten darum, alle
Probleme, die möglicherweise auftreten, zu melden.&lt;/p&gt;

&lt;h3&gt;Neue Features in Ruby 2&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Benannte Argumente&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.ruby-doc.org/core-2.0/Enumerable.html#method-i-lazy&quot;&gt;Enumerable#lazy&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.ruby-doc.org/core-2.0/Module.html#method-i-prepend&quot;&gt;Module#prepend&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;#to_h: Konvention zur Konvertierung in ein Hash&lt;/li&gt;
  &lt;li&gt;&lt;code&gt;%i&lt;/code&gt; Literal zur Erstellung eines Arrays von Symbolen&lt;/li&gt;
  &lt;li&gt;Aktualisierte Engine für reguläre Ausdrücke: Onigmo (ein Fork von
Oniguruma)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.ruby-doc.org/core-2.0/Enumerator.html#method-i-size&quot;&gt;Enumerator#size&lt;/a&gt; und &lt;a href=&quot;http://www.ruby-doc.org/core-2.0/Range.html#method-i-size&quot;&gt;Range#size&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;DTrace-Support&lt;/li&gt;
  &lt;li&gt;TracePoint&lt;/li&gt;
  &lt;li&gt;Optimierte Performance für &lt;code&gt;require&lt;/code&gt; (insbesondere auf Windows)&lt;/li&gt;
  &lt;li&gt;Support für NativeClient&lt;/li&gt;
  &lt;li&gt;Verbesserung der Dokumentation&lt;/li&gt;
  &lt;li&gt;Erweitertes asynchrones Interrupt-Handling&lt;/li&gt;
  &lt;li&gt;Startzeit-Parameter zum Tuning der Stackgröße&lt;/li&gt;
  &lt;li&gt;Refinements [&lt;em&gt;experimentell&lt;/em&gt;]&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;…und viel mehr. Siehe &lt;a href=&quot;http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/tags/v2_0_0_rc2/NEWS?view=markup&quot;&gt;NEWS&lt;/a&gt; für Details.&lt;/p&gt;

&lt;p&gt;Hier noch einige Artikel Dritter zum Thema:&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;Ruby 2.0 on Rails&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;Preview of the new features in Ruby 2.0.0&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;Ruby 2.0 Preview 1 Released, Final Release in February 2013&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://timelessrepo.com/refinements-in-ruby&quot;&gt;Refinements in Ruby&lt;/a&gt;&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;Ruby 2.0初のプレビュー版がリリース！ 注目機能は!?&lt;/a&gt; (japanisch)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://speakerdeck.com/nagachika/rubyist-enumeratorlazy&quot;&gt;怠惰なRubyistへの道 – Enumerator::Lazy の使いかた&lt;/a&gt; (Enumerator::Lazy,
japanisch)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;(Wenn Sie freiwillig Artikel schreiben möchten, können wir diese in der
nächsten Ankündigung zitieren oder referenzieren)&lt;/p&gt;

&lt;h3&gt;Weiteres&lt;/h3&gt;

&lt;h4&gt;Inkompatibilitäten&lt;/h4&gt;

&lt;p&gt;Es gibt drei größere uns bekannte Inkompatibilitäten:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Das Standardencoding für Ruby-Skripte ist nun UTF-8 &lt;a href=&quot;https://bugs.ruby-lang.org/issues/6679&quot;&gt;[#6679]&lt;/a&gt;.
Einige Leute berichten, dass dies existierende Programme betrifft,
beispielsweise werden einige Benchmark-Programme sehr langsam
&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;. Die Spec hierzu kann sich zum offiziellen
Release noch ändern.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;iconv&lt;/strong&gt; wurde entfernt. Es war bereits in Ruby 1.9 bei der
Einführung von M17n als &lt;em&gt;deprecated&lt;/em&gt; markiert worden und ist damit
durch String#encode obsolet. Nutzen Sie dieses stattdessen.&lt;/li&gt;
  &lt;li&gt;Es gibt binäre Inkompatibilitäten (&lt;em&gt;ABI breakage&lt;/em&gt;,
&lt;a href=&quot;http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/48984&quot;&gt;[ruby-core:489894]&lt;/a&gt;. Wir denken, dass normale Nutzer einfach
ihre Extension-Libraries neu installieren können/sollten. SIE DÜRFEN
KEINE &lt;code&gt;.so&lt;/code&gt;- ODER &lt;code&gt;.bundle&lt;/code&gt;-DATEIEN VON RUBY 1.9 KOPIEREN.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Daneben gibt es noch einige kleinere Inkompatibilitäten
&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;. Melden Sie alle weiteren Inkompatibilitäten,
die Ihnen auffallen.&lt;/p&gt;

&lt;p&gt;FYI: Wir arbeiten an Upgrade-Hinweisen, aber einige Teile sind bereits
veraltet:
&lt;a href=&quot;https://bugs.ruby-lang.org/projects/ruby/wiki/200UpgradeNotesDraft&quot;&gt;https://bugs.ruby-lang.org/projects/ruby/wiki/200UpgradeNotesDraft&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;Zum Status von Refinements&lt;/h4&gt;

&lt;p&gt;2.0.0 wird Refinements als &lt;strong&gt;experimentelles Feature&lt;/strong&gt; enthalten, weil
wir uns nicht auf eine detaillierte Spec einigen konnten. Das bedeutet,
dass sich ihr Verhalten in zukünftigen Versionen von Ruby ändern kann.&lt;/p&gt;

&lt;h4&gt;Spezielle Danksagungen&lt;/h4&gt;

&lt;p&gt;Ich danke allen, die die Preview und ersten Release Candidate
ausprobiert haben. Darüber hinaus bin all den hart arbeitenden
Contributors meinen Dank schuldig. Ich bin wirklich all den Leuten, die
mir bei dieser Veröffentlichung geholfen haben, sehr dankbar.&lt;/p&gt;

&lt;h3&gt;Download&lt;/h3&gt;

&lt;dl&gt;
  &lt;dt&gt;&lt;a href=&quot;ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-rc2.tar.bz2&quot;&gt;ruby-2.0.0-rc2.tar.bz2&lt;/a&gt;&lt;/dt&gt;
  &lt;dd&gt;
    &lt;p&gt;&lt;strong&gt;MD5-Summe&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;e92420131bd7994513e0bf09a3e2a19b&lt;/p&gt;

    &lt;p&gt;&lt;strong&gt;SHA256&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;d55f897bb04283c5fa80223d96d990fe8ecb598508dd59443b356cbba1f66145&lt;/p&gt;

    &lt;p&gt;&lt;strong&gt;Größe&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;10.822.239 Byte&lt;/p&gt;
  &lt;/dd&gt;
  &lt;dt&gt;&lt;a href=&quot;ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-rc2.tar.gz&quot;&gt;ruby-2.0.0-rc2.tar.gz&lt;/a&gt;&lt;/dt&gt;
  &lt;dd&gt;
    &lt;p&gt;&lt;strong&gt;MD5-Summe&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;9d5e6f26db7c8c3ddefc81fdb19bd41a&lt;/p&gt;

    &lt;p&gt;&lt;strong&gt;SHA256&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;87072ab3e6d393d47f7402682364e4f24efe1c518969795cc01fcdeeb0e646f3&lt;/p&gt;

    &lt;p&gt;&lt;strong&gt;Größe&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;13.616.756 Byte&lt;/p&gt;
  &lt;/dd&gt;
  &lt;dt&gt;&lt;a href=&quot;ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-rc2.zip&quot;&gt;ruby-2.0.0-rc2.zip&lt;/a&gt;&lt;/dt&gt;
  &lt;dd&gt;
    &lt;p&gt;&lt;strong&gt;MD5-Summe&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;1a2d33f1c50e32ca1532f8dea4790d53&lt;/p&gt;

    &lt;p&gt;&lt;strong&gt;SHA256&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;c28e9baf3aa00b41b8823c16df436ae143e8a63e43e7a53302f23119e13d0ebf&lt;/p&gt;

    &lt;p&gt;&lt;strong&gt;Größe&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;15.118.480 Byte&lt;/p&gt;
  &lt;/dd&gt;
&lt;/dl&gt;

</description>
      <pubDate>Fri, 08 Feb 2013 20:27:03 +0000</pubDate>
      <guid>http://www.ruby-lang.org/de/news/2013/02/08/ruby-2-0-0-rc2-verffentlicht/</guid>
      <link>http://www.ruby-lang.org/de/news/2013/02/08/ruby-2-0-0-rc2-verffentlicht/</link>
    </item>
    
  </channel>
</rss>
