Perbaikan untuk: Sebelum versi 0.1.6, libyaml rentan terhadap eksploitasi heap overflow dari payload YAML yang berbahaya

Saya mendapatkan kesalahan berikut saat menjalankan rspec setelah saya menambahkan permata vcr. Menjalankan gem install psych -- --enable-bundled-libyaml seperti yang disarankan saja tidak menyelesaikan masalah. Saya menggunakan rbenv dan Ruby-build dan saya menggunakan Ruby 2.1.1. Apa yang harus saya lakukan untuk memperbaikinya?

SafeYAML Warning
  ----------------

  You appear to have an outdated version of libyaml (0.1.4) installed on your system.

  Prior to 0.1.6, libyaml is vulnerable to a heap overflow exploit from malicious YAML payloads.

  For more info, see:
  https://www.ruby-lang.org/en/news/2014/03/29/heap-overflow-in-yaml-uri-escape-parsing-cve-2014-2525/

  The easiest thing to do right now is probably to update Psych to the latest version and enable
  the 'bundled-libyaml' option, which will install a vendored libyaml with the vulnerability patched:

  gem install psych -- --enable-bundled-libyaml

person Dominik Goltermann    schedule 07.04.2014    source sumber
comment
mendapatkan masalah yang sama persis di sini di 2.0.0p353   -  person squarefrog    schedule 07.04.2014


Jawaban (5)


Pertama, Anda harus memperbarui Ruby-build, mereka baru saja menambal masalah keamanan ini. Sekarang, ia menginstal libyaml 0.1.6 untuk mengkompilasi Ruby.

$ rm -rf ~/.rbenv/plugins/ruby-build
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

Kompilasi ulang, instal ulang versi Ruby yang Anda gunakan, 2.0.0-p451 dalam kasus saya:

$ rbenv install 2.0.0-p451
rbenv: /home/ubuntu/.rbenv/versions/2.0.0-p451 already exists
continue with installation? (y/N) y
Downloading yaml-0.1.6.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/5fe00cda18ca5daeb43762b80c38e06e
...

Dan itu berhasil dalam kasus saya.

person David Clavijo    schedule 08.04.2014

Saya baru saja mengikuti instruksi dalam balasan ini https://stackoverflow.com/a/9510209/816002 dan sepertinya sudah berhasil. Namun saya melakukannya sedikit berbeda:

rvm pkg install libyaml
rvm get stable
rvm reinstall all --force

Ini mungkin tidak membantu jika Anda menggunakan sistem Ruby, dan jelas akan berbeda dengan rbenv.

person squarefrog    schedule 07.04.2014
comment
Untuk beberapa alasan di osx (10.9.2) rvm pkg install libyaml menginstal 0.1.5, jadi ini tidak berpengaruh apa pun bagi saya. - person TKH; 08.04.2014
comment
@TKH lihat apakah jawaban ini membantu: stackoverflow.com/questions/22919990/ - person ouranos; 09.04.2014
comment
@ouranos sepertinya brew sudah menginstal 0.1.6. mencoba menginstal ulang tetapi tidak berhasil. :( - person TKH; 09.04.2014
comment
Milik saya gagal pada Fetching yaml-0.1.4.tar.gz dengan kesalahan 404 untuk rvm.io/src/yaml-0.1 .4.tar.gz - person Sarah Vessels; 30.04.2014

Sebagai pengguna rvm, saya berhasil menyiapkan permainan bola dengan membuat rilis 0.1.6 libyaml, lalu menginstal (ulang) Ruby, meneruskan flag konfigurasi berikut

rvm install 1.9.3 -- --with-libyaml-dir=/usr/local

Semoga ini bisa membantu masyarakat dalam jangka pendek hingga keadaan mereda.

person codeasone    schedule 11.04.2014
comment
Dari semua saran pada postingan tertaut tentang masalah ini... yang ini berhasil! Saya harus menginstal ulang permata yang menyebabkan masalah setelah ini, tetapi kemudian berhasil! Menginstal ulang permata tanpa instalasi rvm ini tidak menyelesaikan masalah. - person ATSiem; 12.04.2014

Jika Anda menggunakan Mac OS X / Mavericks maka Anda mungkin menjalankan Ruby yang diinstal sistem. Thoughbot mendorong Anda untuk tidak melakukan ini. Saya juga mengalami masalah ini, jadi saya mengikuti saran mereka dan menginstal brew dan rbenv dan masalahnya hilang.

person Simon Woodside    schedule 20.04.2014

Untuk rvm ini berhasil untuk saya:

rvm pkg install libyaml
$LIBYAML_PATH will be the path where RVM installs the upated yaml
rvm get stable
rvm reinstall all --force --with-libyaml-dir=$LIBYAML_PATH

http://synaptian.com/2014/04/fixing-the-safeyaml-warning-on-ubuntu-12-04-with-rvm/

person hamdiakoguz    schedule 15.10.2015