Heap Overflow in YAML URI Escape Parsing (CVE-2014-2525)

È presente un overflow nell’URI escape parsing di YAML in Ruby. A questa vulnerabilità è stato assegnato l’identifier CVE CVE-2014-2525.

Dettagli

Ogni volta che viene fatto il parsing di una stringa con tags in YAML una stringa costruita ad-hoc può causare un heap overflow che può portare ad esecuzione arbitraria di codice.

Ad esempio:

YAML.load <codice_da_fonte_sconosciuta>

Versioni Affette

Ruby dalla versione 1.9.3-p0 include psych come parser YAML di default. Tutte le versioni di psych con link su libyaml <= 0.1.5 sono affette.

Potete verificare la versione di libyaml in uso eseguendo:

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

Soluzioni

Agli utenti che installano libyaml a livello di sistema si consiglia di aggiornare libyaml alla versione 0.1.6. Ricompilando Ruby, puntare alla versione aggiornata della libreria:

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

Gli utenti senza una libyaml di sistema o che usano libyaml embedded sono pregati di aggiornare psych alla 2.0.5 che fornisce libyaml 0.1.6:

$ gem install psych

Storia

  • Pubblicato il 2014-03-29 01:49:25 UTC
  • Aggiornato il 2014-03-29 09:37:00 UTC