CVE-2015-7551: Небезпечне використання tainted рядка в Fiddle та DL

Опублікував usa 16-12-2015
Переклав: Andrii Furmanets

Є вразливість небезпечного використання tainted рядка в Fiddle та DL. Цій вразливості присвоєно ідентифікатор CVE CVE-2015-7551.

Деталі

Є вразливість небезпечного tainted рядка в Fiddle та DL. Ця проблема була спочатку повідомлена та виправлена з CVE-2009-5147 в DL, але знову з’явилася після того, як DL було перереалізовано з використанням Fiddle та libffi.

І, щодо DL, CVE-2009-5147 було виправлено в Ruby 1.9.1, але не виправлено в інших гілках, тоді rubies, які включають DL , крім Ruby 1.9.1, все ще вразливі.

Зачеплений код виглядає приблизно так:

handle = Fiddle::Handle.new(dangerous_user_input)

Або:

handle = Fiddle::Handle.new(some_library)
function_pointer = handle[dangerous_user_input]

Всі користувачі, які запускають зачеплений випуск, повинні або оновитися, або використовувати один з обхідних шляхів негайно.

Зачеплені версії

  • Всі випуски патчів Ruby 1.9.2 та Ruby 1.9.3 (DL та Fiddle).
  • Всі випуски патчів Ruby 2.0.0 до Ruby 2.0.0 рівня патчу 648 (DL та Fiddle).
  • Всі версії Ruby 2.1 до Ruby 2.1.8 (DL та Fiddle).
  • Всі версії Ruby 2.2 до Ruby 2.2.4 (Fiddle).
  • Ruby 2.3.0 preview 1 та preview 2 (Fiddle).
  • до ревізії trunk 53153 (Fiddle).

Обхідні шляхи

Якщо ви не можете оновитися, наступний monkey patch може бути застосований як обхідний шлях для Fiddle:

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 4.0.0

Ми раді повідомити про випуск Ruby 4.0.0. Ruby 4.0 представляє “Ruby Box” та “ZJIT”, а також додає багато покращень.

Опублікував naruse 25-12-2025

Новий вигляд документації Ruby

Слідом за ре-дизайном ruby-lang.org, ми маємо більше новин, щоб відсвяткувати 30-річчя Ruby: docs.ruby-lang.org має повністю новий вигляд завдяки Aliki — новій темі за замовчуванням для...

Опублікував Stan Lo 23-12-2025

Більше новин...