Przepełnienie stosu podczas parsowania znaku modyfikacji dla URI w YAML (CVE-2014-2525)

Jest przepełnienie podczas parsowania znaku modyfikacji dla URI w YAML w Rubim. Podatności tej został przydzielony identyfikator CVE-2014-2525.

Szczegóły

Za każdym razem podczas analizy napisu w YAML-u z tagami, specjalnie spreparowany napis może spowodować przepełnienie stosu, które może doprowadzić do wykonania dowolnego kodu.

Na przykład:

YAML.load <code_from_unknown_source>

Dotyczy wersji

Ruby 1.9.3-p0 i powyżej zawierają psych jako domyślny parser YAML-a. Każda wersja psych złączona z libyamlem <= 0.1.5 jest podatna.

Możesz sprawdzić używaną wersję libyamla poprzez:

$ ruby -rpsych -e 'p Psych.libyaml_version'
[0, 1, 5]

Rozwiązanie

Użytkownikom, którzy zainstalowali libyaml do systemu zaleca się aktualizację libyamla do 0.1.6. Podczas przebudowy Rubiego należy wskazać na nowo zaktualizowanego libyamla:

$ ./configure --with-yaml-dir=/path/to/libyaml

Użytkownikom bez systemowego libyamla bezujący na wbudowanym libyaml zaleca się aktualizację psych do 2.0.5 używającego libyaml 0.1.6:

$ gem install psych

Historia

  • Oryginalnie opublikowane 2014-03-29 01:49:25 UTC
  • Aktualizacja opublikowana 2014-03-29 09:37:00 UTC