แก้ไขสำหรับ: ก่อนเวอร์ชัน 0.1.6 libyaml เสี่ยงต่อการใช้ประโยชน์จากฮีปโอเวอร์โฟลว์จากเพย์โหลด YAML ที่เป็นอันตราย

ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อเรียกใช้ rspec หลังจากที่ฉันเพิ่ม vcr gem การเรียกใช้ gem install psych -- --enable-bundled-libyaml ตามที่แนะนำไม่สามารถแก้ปัญหาได้ ฉันใช้ rbenv และ ruby-build และฉันใช้ Ruby 2.1.1 ฉันต้องทำอย่างไรเพื่อแก้ไขปัญหานี้

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 แหล่งที่มา
comment
รับปัญหาเดียวกันทุกประการที่นี่ใน 2.0.0p353   -  person squarefrog    schedule 07.04.2014


คำตอบ (5)


ขั้นแรก คุณต้องอัปเดต Ruby-build เนื่องจากเพิ่งแก้ไขปัญหาด้านความปลอดภัยนี้ ตอนนี้จะติดตั้ง libyaml 0.1.6 เพื่อคอมไพล์ Ruby

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

คอมไพล์ใหม่ ติดตั้งเวอร์ชัน Ruby ที่คุณใช้ใหม่ 2.0.0-p451 ในกรณีของฉัน:

$ 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
...

และมันก็ได้ผลในกรณีของฉัน

person David Clavijo    schedule 08.04.2014

ฉันเพิ่งทำตามคำแนะนำในการตอบกลับนี้ https://stackoverflow.com/a/9510209/816002 และดูเหมือนว่าจะมี ทำเคล็ดลับแล้ว ฉันทำมันแตกต่างออกไปเล็กน้อย:

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

สิ่งนี้อาจไม่ช่วยหากคุณใช้ระบบ Ruby และจะแตกต่างอย่างชัดเจนกับ rbenv

person squarefrog    schedule 07.04.2014
comment
ด้วยเหตุผลบางอย่างบน osx (10.9.2) rvm pkg install libyaml กำลังติดตั้ง 0.1.5 ดังนั้นนี่ไม่ได้ทำอะไรให้ฉันเลย - person TKH; 08.04.2014
comment
@TKH ดูว่าคำตอบนี้ช่วยได้หรือไม่: stackoverflow.com/questions/22919990/ - person ouranos; 09.04.2014
comment
@ouranos ดูเหมือนว่า brew จะติดตั้ง 0.1.6 แล้ว ลองติดตั้งใหม่ก็ไม่มีประโยชน์ :( - person TKH; 09.04.2014
comment
การทำเหมืองล้มเหลวใน Fetching yaml-0.1.4.tar.gz โดยมีข้อผิดพลาด 404 สำหรับ rvm.io/src/yaml-0.1 .4.tar.gz - person Sarah Vessels; 30.04.2014


หากคุณใช้ Mac OS X / Mavericks คุณอาจใช้งาน Ruby ที่ติดตั้งระบบ Thoughbot สนับสนุนให้คุณอย่าทำเช่นนี้ ฉันก็ประสบปัญหานี้เช่นกัน ดังนั้นฉันจึงทำตามคำแนะนำของพวกเขาและติดตั้ง brew และ rbenv แล้วปัญหาก็หมดไป

person Simon Woodside    schedule 20.04.2014

สำหรับ rvm สิ่งนี้ได้ผลสำหรับฉัน:

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