Inserito da usa il 2015-12-16
                         Tradotto da simo2409
E’ stata trovata una vulnerabilità nella gestione delle stringhe in Fiddle e DL. A questa vulnerabilità è stato assegnato l’identificativo CVE-2015-7551.
Dettagli
E’ stato trovata una vulnerabilità nella gestione delle stringhe in Fiddle e DL. Questo problema è stato originariamente riportato e corretto con il codice CVE-2009-5147 in DL, ma è riapparso dopo che DL è stato re-implementato utilizzando Fiddle e libffi.
E, sempre riguardo DL, la vulnerabilità CVE-2009-5147 è stata risolta in Ruby 1.9.1, ma non negli altri branch, quindi tutte le versioni (eccetto Ruby 1.9.1) sono ancora vulnerabili.
Un esempio del codice che causa il problema:
handle = Fiddle::Handle.new(dangerous_user_input)O:
handle = Fiddle::Handle.new(some_library)
function_pointer = handle[dangerous_user_input]Tutti gli utenti che stanno utilizzando una versione ancora senza fix dovrebbero aggiornarla o usare un workaround.
Versioni afflitte
- Tutte le versioni patch di Ruby 1.9.2 e Ruby 1.9.3 (DL e Fiddle).
 - Tutte le versioni patch di Ruby 2.0.0 e precedenti al patchlevel 648 (DL e Fiddle).
 - Tutte le versioni di Ruby 2.1 precedenti a Ruby 2.1.8 (DL e Fiddle).
 - Tutte le versioni di Ruby 2.2 precedenti a Ruby 2.2.4 (Fiddle).
 - Ruby 2.3.0 preview 1 e preview 2 (Fiddle).
 - Tutte le versioni precedenti alla revisione del trunk 53153 (Fiddle).
 
Workaround
Se non è possibile aggiornare, il seguente codice può essere utilizzato per risolvere il problema in 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
endSe si utilizza DL si suggerisce di utilizzare Fiddle al suo posto.
Credits
Grazie a Christian Hofstaedtler zeha@debian.org per aver riportato il problema!
Storia
- Originariamente pubblicato il 2015-12-16 12:00:00 UTC