From: eregontp@... Date: 2017-03-29T14:27:10+00:00 Subject: [ruby-core:80483] [Ruby trunk Bug#13376] Symbol#hash is deterministic on 2.3 Issue #13376 has been updated by Eregon (Benoit Daloze). nobu (Nobuyoshi Nakada) wrote: > Accepting huge requests which could exhaust memory with too may symbols *at once* would be rarely possible in 2.3. CVE-2011-4815 is about hash collisions, which indeed seems possible if a user can control Symbol keys inserted into a Hash in 2.3. ---------------------------------------- Bug #13376: Symbol#hash is deterministic on 2.3 https://bugs.ruby-lang.org/issues/13376#change-63982 * Author: chrisseaton (Chris Seaton) * Status: Closed * Priority: Normal * Assignee: * Target version: * ruby -v: ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-darwin16] * Backport: 2.2: UNKNOWN, 2.3: DONE, 2.4: UNKNOWN ---------------------------------------- I believe the Symbol#hash should probably be non-deterministic, due to CVE-2011-4815. That seems to be the behaviour on 2.2 and 2.4, but not on 2.3. Was this a conscious decision at the time? Or is it a bug? ~~~ $ 2.2.6/bin/ruby -e 'puts :foo.hash' -505215953858886063 $ 2.2.6/bin/ruby -e 'puts :foo.hash' 3929535091178311289 $ 2.3.3/bin/ruby -e 'puts :foo.hash' 2810 $ 2.3.3/bin/ruby -e 'puts :foo.hash' 2810 $ 2.4.0/bin/ruby -e 'puts :foo.hash' -1200094397129038718 $ 2.4.0/bin/ruby -e 'puts :foo.hash' -916960310565036298 ~~~ ---Files-------------------------------- 0001-hash.c-any_hash-make-static-symbol-hash-non-determin.patch (1.7 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: