Güvensiz Seri Durumdan Çıkarma (ARCH6109)
Anahtar ruby.security.insecure-deserialization · Önem critical · Kategori security · CWE CWE-502
Marshal.load veya güvensiz YAML yükleme ile güvenilmeyen veriyi seri durumdan çıkarmak, gadget zincirleri aracılığıyla rastgele nesne oluşturup uzaktan kod çalıştırmaya olanak tanır. Yalnızca veri formatları kullanın.
Hatalı
Bölüm başlığı “Hatalı”def restore(blob) Marshal.load(blob)end
restore(request.body.read)require "json"
def restore(blob) JSON.parse(blob, symbolize_names: true)end
restore(request.body.read)Düzeltme
Bölüm başlığı “Düzeltme”Marshal.load/güvensiz YAML kullanmayın; güvenilmeyen veri için JSON veya YAML.safe_load tercih edin.