Є переповнення при парсингу екранування URI YAML в Ruby.
Цій вразливості присвоєно ідентифікатор CVE
[CVE-2014-2525](http://www.ocert.org/advisories/ocert-2014-003.html).

## Деталі

Кожного разу, коли парситься рядок у YAML з тегами, спеціально сконструйований рядок може спричинити
переповнення купи, яке може призвести до виконання довільного коду.

Наприклад:

<figure class="highlight"><pre><code class="language-ruby" data-lang="ruby"><span class="no">YAML</span><span class="p">.</span><span class="nf">load</span> <span class="o">&lt;</span><span class="n">code_from_unknown_source</span><span class="o">&gt;</span></code></pre></figure>

## Зачеплені версії

Ruby 1.9.3-p0 та вище включають psych як парсер YAML за замовчуванням.
Будь-які версії psych, пов'язані з libyaml `<= 0.1.5`, зачеплені.

І, ці версії Ruby включають зачеплену версію libyaml:

* Ruby 2.0.0-p451 та раніше,
* Ruby 2.1.0 та Ruby 2.1.1.

Ви можете перевірити версію libyaml, використовуючи:

<figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="nv">$ </span>ruby <span class="nt">-rpsych</span> <span class="nt">-e</span> <span class="s1">'p Psych.libyaml_version'</span>
<span class="o">[</span>0, 1, 5]</code></pre></figure>

## Рішення

Користувачам, які встановлюють libyaml у систему, рекомендується оновити libyaml до `0.1.6`.
При перекомпіляції Ruby, вкажіть на ново оновлений libyaml:

<figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="nv">$ </span>./configure <span class="nt">--with-yaml-dir</span><span class="o">=</span>/path/to/libyaml</code></pre></figure>

Користувачі без системного libyaml покладаються на вбудований libyaml і їм рекомендується
оновити psych до `2.0.5`, який включає libyaml `0.1.6`:

<figure class="highlight"><pre><code class="language-sh" data-lang="sh"><span class="nv">$ </span>gem <span class="nb">install </span>psych</code></pre></figure>

або оновіть ваш Ruby до 2.0.0-p481, 2.1.2 або новішої.

## Історія

* Спочатку опубліковано 2014-03-29 01:49:25 UTC
* Оновлення опубліковано 2014-03-29 09:37:00 UTC
* Оновлення опубліковано 2014-05-09 03:00:00 UTC
