CVE-2015-7551: Уязвимост във Fiddle и DL
Публикувана от usa на 2015-12-16
Превод от Georgi Mitrev
Същестува проблем с опасни стрингове във Fiddle и DL. На уязвимостта е назначен CVE идентификатор CVE-2015-7551.
Детайли
Същестува уязвимост във Fiddle и DL, първоначално докладвана и поправена с CVE-2009-5147 в DL, но появила се отново след като DL е реимплментиран чрез Fiddle и libffi.
CVE-2009-5147 е поправен в Ruby 1.9.1, но не и в другите branch-ове и затова всички версии на Ruby с вграден DL са уязвими.
Пример за уязвим код;
handle = Fiddle::Handle.new(dangerous_user_input)Или:
handle = Fiddle::Handle.new(some_library)
function_pointer = handle[dangerous_user_input]Всички потребители на уязвените версии трябва веднага да ъпдейтнат или да ползват workardound.
Уязвими версии
- Всички рилийзи на Ruby 1.9.2 и Ruby 1.9.3 (DL и Fiddle).
- Всички пачнати рилийзи на Ruby 2.0.0 преди 2.0.0-p648 (DL и Fiddle).
- Всички версии на Ruby 2.1 преди 2.1.8 (DL и Fiddle).
- Всички версии на Ruby 2.2 преди Ruby 2.2.4 (Fiddle).
- Ruby 2.3.0 preview 1 и preview 2 (Fiddle).
- преди trunk revision 53153 (Fiddle).
Workaround-и
Ако не можете да ъпгрейднете Ruby, използвайте следният monkey patch:
class Fiddle::Handle
alias :old_initialize :initialize
def initialize file, *args
raise SecurityError if file.tainted? && $SAFE > 0
old_initialize file, *args
end
alias :sym :[]
alias :old_call :[]
def [] fun
raise SecurityError if fun.tainted? && $SAFE > 0
old_call fun
end
endАко използвате DL, започнете да използвате Fiddle вместо него.
Благодарности
Благодарим на Christian Hofstaedtler zeha@debian.org за докладване на проблема!
История
- Първоначално публикувано на 2015-12-16 12:00:00 UTC
Последни новини
Излезе Ruby 2.4.0-preview1
Радваме се да обявим излизането на Ruby 2.4.0-preview1.
Публикувана от naruse на 2016-06-20
Излезе Ruby 2.3.1
Излезе Ruby 2.3.1.
Публикувана от nagachika на 2016-04-26
Излезе Ruby 2.2.5
Излезе Ruby 2.2.5.
Публикувана от usa на 2016-04-26
Излезе Ruby 2.1.10
Излезе Ruby 2.1.10. Този рилийз не е предназначен за употреба в продукция, а за да се тества съвместимостта на версия с двуцифрено число.
Публикувана от usa на 2016-04-01