Vulnerabilities > CVE-2011-3009 - Cryptographic Issues vulnerability in Ruby-Lang Ruby 1.8.6

047910
CVSS 5.0 - MEDIUM
Attack vector
NETWORK
Attack complexity
LOW
Privileges required
NONE
Confidentiality impact
PARTIAL
Integrity impact
NONE
Availability impact
NONE
network
low complexity
ruby-lang
CWE-310
nessus

Summary

Ruby before 1.8.6-p114 does not reset the random seed upon forking, which makes it easier for context-dependent attackers to predict the values of random numbers by leveraging knowledge of the number sequence obtained in a different child process, a related issue to CVE-2003-0900.

Vulnerable Configurations

Part Description Count
Application
Ruby-Lang
3

Common Weakness Enumeration (CWE)

Common Attack Pattern Enumeration and Classification (CAPEC)

  • Signature Spoofing by Key Recreation
    An attacker obtains an authoritative or reputable signer's private signature key by exploiting a cryptographic weakness in the signature algorithm or pseudorandom number generation and then uses this key to forge signatures from the original signer to mislead a victim into performing actions that benefit the attacker.

Nessus

  • NASL familyCentOS Local Security Checks
    NASL idCENTOS_RHSA-2012-0070.NASL
    descriptionUpdated ruby packages that fix two security issues are now available for Red Hat Enterprise Linux 4 and 5. The Red Hat Security Response Team has rated this update as having moderate security impact. Common Vulnerability Scoring System (CVSS) base scores, which give detailed severity ratings, are available for each vulnerability from the CVE links in the References section. Ruby is an extensible, interpreted, object-oriented, scripting language. It has features to process text files and to do system management tasks. A denial of service flaw was found in the implementation of associative arrays (hashes) in Ruby. An attacker able to supply a large number of inputs to a Ruby application (such as HTTP POST request parameters sent to a web application) that are used as keys when inserting data into an array could trigger multiple hash function collisions, making array operations take an excessive amount of CPU time. To mitigate this issue, randomization has been added to the hash function to reduce the chance of an attacker successfully causing intentional collisions. (CVE-2011-4815) It was found that Ruby did not reinitialize the PRNG (pseudorandom number generator) after forking a child process. This could eventually lead to the PRNG returning the same result twice. An attacker keeping track of the values returned by one child process could use this flaw to predict the values the PRNG would return in other child processes (as long as the parent process persisted). (CVE-2011-3009) Red Hat would like to thank oCERT for reporting CVE-2011-4815. oCERT acknowledges Julian Walde and Alexander Klink as the original reporters of CVE-2011-4815. All users of ruby are advised to upgrade to these updated packages, which contain backported patches to resolve these issues.
    last seen2020-06-01
    modified2020-06-02
    plugin id57734
    published2012-01-31
    reporterThis script is Copyright (C) 2012-2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/57734
    titleCentOS 4 / 5 : ruby (CESA-2012:0070)
  • NASL familyScientific Linux Local Security Checks
    NASL idSL_20120130_RUBY_ON_SL4_X.NASL
    descriptionRuby is an extensible, interpreted, object-oriented, scripting language. It has features to process text files and to do system management tasks. A denial of service flaw was found in the implementation of associative arrays (hashes) in Ruby. An attacker able to supply a large number of inputs to a Ruby application (such as HTTP POST request parameters sent to a web application) that are used as keys when inserting data into an array could trigger multiple hash function collisions, making array operations take an excessive amount of CPU time. To mitigate this issue, randomization has been added to the hash function to reduce the chance of an attacker successfully causing intentional collisions. (CVE-2011-4815) It was found that Ruby did not reinitialize the PRNG (pseudorandom number generator) after forking a child process. This could eventually lead to the PRNG returning the same result twice. An attacker keeping track of the values returned by one child process could use this flaw to predict the values the PRNG would return in other child processes (as long as the parent process persisted). (CVE-2011-3009) All users of ruby are advised to upgrade to these updated packages, which contain backported patches to resolve these issues.
    last seen2020-03-18
    modified2012-08-01
    plugin id61228
    published2012-08-01
    reporterThis script is Copyright (C) 2012-2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/61228
    titleScientific Linux Security Update : ruby on SL4.x, SL5.x i386/x86_64 (20120130)
  • NASL familySuSE Local Security Checks
    NASL idSUSE_11_4_RUBY-120117.NASL
    descriptionThis update of ruby provides 1.8.7p357, which contains many stability fixes and bug fixes, which are fully compatible with the previous version. You can review the detailed list here : http://svn.ruby-lang.org/repos/ruby/tags/v1_8_7_357/ChangeLog The particularly noteworthy fixes are : - Hash functions are now using a randomized seed to avoid algorithmic complexity attacks (CVE-2011-4815). For this OpenSSL::Random.seed at the SecureRandom.random_bytes is used if available. - mkconfig.rb: fix for continued lines. - Fix Infinity to be greater than any bignum number. - initialize store->ex_data.sk. - some IPv6 related fixes - zlib fixes - reinitialize PRNG when forking children (CVE-2011-2686/CVE-2011-3009) - securerandom fixes (CVE-2011-2705) - uri route_to fixes - fix race condition with variables and autoload
    last seen2020-06-05
    modified2014-06-13
    plugin id76015
    published2014-06-13
    reporterThis script is Copyright (C) 2014-2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/76015
    titleopenSUSE Security Update : ruby (openSUSE-SU-2012:0228-1)
  • NASL familySuSE Local Security Checks
    NASL idSUSE_11_RUBY-187P357-120127.NASL
    descriptionThis update of ruby provides 1.8.7p357, which contains many stability fixes and bug fixes while maintaining full compatibility with the previous version. A detailailed list of changes is available from http://svn.ruby-lang.org/repos/ruby/tags/v1_8_7_357/ChangeLog . The most important fixes are : - Hash functions are now using a randomized seed to avoid algorithmic complexity attacks. If available, OpenSSL::Random.seed at the SecureRandom.random_bytes is used to achieve this. (CVE-2011-4815) - mkconfig.rb: fix for continued lines. - Fix Infinity to be greater than any bignum number. - Initialize store->ex_data.sk. - Several IPv6 related fixes. - Fixes for zlib. - Reinitialize PRNG when forking children. (CVE-2011-2686 / CVE-2011-3009) - Fixes to securerandom. (CVE-2011-2705) - Fix uri route_to - Fix race condition with variables and autoload.
    last seen2020-06-05
    modified2012-02-06
    plugin id57841
    published2012-02-06
    reporterThis script is Copyright (C) 2012-2020 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/57841
    titleSuSE 11.1 Security Update : ruby (SAT Patch Number 5716)
  • NASL familyScientific Linux Local Security Checks
    NASL idSL_20111206_RUBY_ON_SL6_X.NASL
    descriptionRuby is an extensible, interpreted, object-oriented, scripting language. It has features to process text files and to do system management tasks. It was found that Ruby did not reinitialize the PRNG (pseudorandom number generator) after forking a child process. This could eventually lead to the PRNG returning the same result twice. An attacker keeping track of the values returned by one child process could use this flaw to predict the values the PRNG would return in other child processes (as long as the parent process persisted). (CVE-2011-3009) A flaw was found in the Ruby SecureRandom module. When using the SecureRandom.random_bytes class, the PRNG state was not modified after forking a child process. This could eventually lead to SecureRandom.random_bytes returning the same string more than once. An attacker keeping track of the strings returned by one child process could use this flaw to predict the strings SecureRandom.random_bytes would return in other child processes (as long as the parent process persisted). (CVE-2011-2705) This update also fixes the following bugs : - The ruby package has been upgraded to upstream point release 1.8.7-p352, which provides a number of bug fixes over the previous version. - The MD5 message-digest algorithm is not a FIPS-approved algorithm. Consequently, when a Ruby script attempted to calculate an MD5 checksum in FIPS mode, the interpreter terminated unexpectedly. This bug has been fixed and an exception is now raised in the described scenario. - Due to inappropriately handled line continuations in the mkconfig.rb source file, an attempt to build the ruby package resulted in unexpected termination. An upstream patch has been applied to address this issue and the ruby package can now be built properly. - When the 32-bit ruby-libs library was installed on a 64-bit machine, the mkmf library failed to load various modules necessary for building Ruby-related packages. This bug has been fixed and mkmf now works properly in the described scenario. - Previously, the load paths for scripts and binary modules were duplicated on the i386 architecture. Consequently, an ActiveSupport test failed. With this update, the load paths are no longer stored in duplicates on the i386 architecture. This update also adds the following enhancement : - With this update, SystemTap probes have been added to the ruby package. All users of ruby are advised to upgrade to these updated packages, which resolve these issues and add this enhancement.
    last seen2020-06-01
    modified2020-06-02
    plugin id61197
    published2012-08-01
    reporterThis script is Copyright (C) 2012-2019 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/61197
    titleScientific Linux Security Update : ruby on SL6.x i386/x86_64
  • NASL familyOracle Linux Local Security Checks
    NASL idORACLELINUX_ELSA-2012-0070.NASL
    descriptionFrom Red Hat Security Advisory 2012:0070 : Updated ruby packages that fix two security issues are now available for Red Hat Enterprise Linux 4 and 5. The Red Hat Security Response Team has rated this update as having moderate security impact. Common Vulnerability Scoring System (CVSS) base scores, which give detailed severity ratings, are available for each vulnerability from the CVE links in the References section. Ruby is an extensible, interpreted, object-oriented, scripting language. It has features to process text files and to do system management tasks. A denial of service flaw was found in the implementation of associative arrays (hashes) in Ruby. An attacker able to supply a large number of inputs to a Ruby application (such as HTTP POST request parameters sent to a web application) that are used as keys when inserting data into an array could trigger multiple hash function collisions, making array operations take an excessive amount of CPU time. To mitigate this issue, randomization has been added to the hash function to reduce the chance of an attacker successfully causing intentional collisions. (CVE-2011-4815) It was found that Ruby did not reinitialize the PRNG (pseudorandom number generator) after forking a child process. This could eventually lead to the PRNG returning the same result twice. An attacker keeping track of the values returned by one child process could use this flaw to predict the values the PRNG would return in other child processes (as long as the parent process persisted). (CVE-2011-3009) Red Hat would like to thank oCERT for reporting CVE-2011-4815. oCERT acknowledges Julian Walde and Alexander Klink as the original reporters of CVE-2011-4815. All users of ruby are advised to upgrade to these updated packages, which contain backported patches to resolve these issues.
    last seen2020-06-01
    modified2020-06-02
    plugin id68441
    published2013-07-12
    reporterThis script is Copyright (C) 2013-2019 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/68441
    titleOracle Linux 4 / 5 : ruby (ELSA-2012-0070)
  • NASL familyRed Hat Local Security Checks
    NASL idREDHAT-RHSA-2012-0070.NASL
    descriptionUpdated ruby packages that fix two security issues are now available for Red Hat Enterprise Linux 4 and 5. The Red Hat Security Response Team has rated this update as having moderate security impact. Common Vulnerability Scoring System (CVSS) base scores, which give detailed severity ratings, are available for each vulnerability from the CVE links in the References section. Ruby is an extensible, interpreted, object-oriented, scripting language. It has features to process text files and to do system management tasks. A denial of service flaw was found in the implementation of associative arrays (hashes) in Ruby. An attacker able to supply a large number of inputs to a Ruby application (such as HTTP POST request parameters sent to a web application) that are used as keys when inserting data into an array could trigger multiple hash function collisions, making array operations take an excessive amount of CPU time. To mitigate this issue, randomization has been added to the hash function to reduce the chance of an attacker successfully causing intentional collisions. (CVE-2011-4815) It was found that Ruby did not reinitialize the PRNG (pseudorandom number generator) after forking a child process. This could eventually lead to the PRNG returning the same result twice. An attacker keeping track of the values returned by one child process could use this flaw to predict the values the PRNG would return in other child processes (as long as the parent process persisted). (CVE-2011-3009) Red Hat would like to thank oCERT for reporting CVE-2011-4815. oCERT acknowledges Julian Walde and Alexander Klink as the original reporters of CVE-2011-4815. All users of ruby are advised to upgrade to these updated packages, which contain backported patches to resolve these issues.
    last seen2020-04-16
    modified2012-01-31
    plugin id57747
    published2012-01-31
    reporterThis script is Copyright (C) 2012-2020 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/57747
    titleRHEL 4 / 5 : ruby (RHSA-2012:0070)
  • NASL familyRed Hat Local Security Checks
    NASL idREDHAT-RHSA-2011-1581.NASL
    descriptionUpdated ruby packages that fix two security issues, various bugs, and add one enhancement are now available for Red Hat Enterprise Linux 6. The Red Hat Security Response Team has rated this update as having low security impact. Common Vulnerability Scoring System (CVSS) base scores, which give detailed severity ratings, are available for each vulnerability from the CVE links in the References section. Ruby is an extensible, interpreted, object-oriented, scripting language. It has features to process text files and to do system management tasks. It was found that Ruby did not reinitialize the PRNG (pseudorandom number generator) after forking a child process. This could eventually lead to the PRNG returning the same result twice. An attacker keeping track of the values returned by one child process could use this flaw to predict the values the PRNG would return in other child processes (as long as the parent process persisted). (CVE-2011-3009) A flaw was found in the Ruby SecureRandom module. When using the SecureRandom.random_bytes class, the PRNG state was not modified after forking a child process. This could eventually lead to SecureRandom.random_bytes returning the same string more than once. An attacker keeping track of the strings returned by one child process could use this flaw to predict the strings SecureRandom.random_bytes would return in other child processes (as long as the parent process persisted). (CVE-2011-2705) This update also fixes the following bugs : * The ruby package has been upgraded to upstream point release 1.8.7-p352, which provides a number of bug fixes over the previous version. (BZ#706332) * The MD5 message-digest algorithm is not a FIPS-approved algorithm. Consequently, when a Ruby script attempted to calculate an MD5 checksum in FIPS mode, the interpreter terminated unexpectedly. This bug has been fixed and an exception is now raised in the described scenario. (BZ#717709) * Due to inappropriately handled line continuations in the mkconfig.rb source file, an attempt to build the ruby package resulted in unexpected termination. An upstream patch has been applied to address this issue and the ruby package can now be built properly. (BZ#730287) * When the 32-bit ruby-libs library was installed on a 64-bit machine, the mkmf library failed to load various modules necessary for building Ruby-related packages. This bug has been fixed and mkmf now works properly in the described scenario. (BZ#674787) * Previously, the load paths for scripts and binary modules were duplicated on the i386 architecture. Consequently, an ActiveSupport test failed. With this update, the load paths are no longer stored in duplicates on the i386 architecture. (BZ#722887) This update also adds the following enhancement : * With this update, SystemTap probes have been added to the ruby package. (BZ#673162) All users of ruby are advised to upgrade to these updated packages, which resolve these issues and add this enhancement.
    last seen2020-06-01
    modified2020-06-02
    plugin id57017
    published2011-12-06
    reporterThis script is Copyright (C) 2011-2019 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/57017
    titleRHEL 6 : ruby (RHSA-2011:1581)
  • NASL familySuSE Local Security Checks
    NASL idSUSE_11_RUBY-187P357-120126.NASL
    descriptionThis update of ruby provides 1.8.7p357, which contains many stability fixes and bug fixes while maintaining full compatibility with the previous version. A detailailed list of changes is available from http://svn.ruby-lang.org/repos/ruby/tags/v1_8_7_357/ChangeLog . The most important fixes are : - Hash functions are now using a randomized seed to avoid algorithmic complexity attacks. If available, OpenSSL::Random.seed at the SecureRandom.random_bytes is used to achieve this. (CVE-2011-4815) - mkconfig.rb: fix for continued lines. - Fix Infinity to be greater than any bignum number. - Initialize store->ex_data.sk. - Several IPv6 related fixes. - Fixes for zlib. - Reinitialize PRNG when forking children. (CVE-2011-2686 / CVE-2011-3009) - Fixes to securerandom. (CVE-2011-2705) - Fix uri route_to - Fix race condition with variables and autoload.
    last seen2020-06-05
    modified2012-02-06
    plugin id57840
    published2012-02-06
    reporterThis script is Copyright (C) 2012-2020 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/57840
    titleSuSE 11.1 Security Update : ruby (SAT Patch Number 5716)

Redhat

advisories
  • bugzilla
    id730287
    titleIt's not possible to build ruby package
    oval
    OR
    • commentRed Hat Enterprise Linux must be installed
      ovaloval:com.redhat.rhba:tst:20070304026
    • AND
      • commentRed Hat Enterprise Linux 6 is installed
        ovaloval:com.redhat.rhba:tst:20111656003
      • OR
        • AND
          • commentruby-ri is earlier than 0:1.8.7.352-3.el6
            ovaloval:com.redhat.rhsa:tst:20111581001
          • commentruby-ri is signed with Red Hat redhatrelease2 key
            ovaloval:com.redhat.rhsa:tst:20110910012
        • AND
          • commentruby-docs is earlier than 0:1.8.7.352-3.el6
            ovaloval:com.redhat.rhsa:tst:20111581003
          • commentruby-docs is signed with Red Hat redhatrelease2 key
            ovaloval:com.redhat.rhsa:tst:20110910016
        • AND
          • commentruby-rdoc is earlier than 0:1.8.7.352-3.el6
            ovaloval:com.redhat.rhsa:tst:20111581005
          • commentruby-rdoc is signed with Red Hat redhatrelease2 key
            ovaloval:com.redhat.rhsa:tst:20110910004
        • AND
          • commentruby-devel is earlier than 0:1.8.7.352-3.el6
            ovaloval:com.redhat.rhsa:tst:20111581007
          • commentruby-devel is signed with Red Hat redhatrelease2 key
            ovaloval:com.redhat.rhba:tst:20193384026
        • AND
          • commentruby-tcltk is earlier than 0:1.8.7.352-3.el6
            ovaloval:com.redhat.rhsa:tst:20111581009
          • commentruby-tcltk is signed with Red Hat redhatrelease2 key
            ovaloval:com.redhat.rhsa:tst:20110910008
        • AND
          • commentruby-static is earlier than 0:1.8.7.352-3.el6
            ovaloval:com.redhat.rhsa:tst:20111581011
          • commentruby-static is signed with Red Hat redhatrelease2 key
            ovaloval:com.redhat.rhsa:tst:20110910002
        • AND
          • commentruby-irb is earlier than 0:1.8.7.352-3.el6
            ovaloval:com.redhat.rhsa:tst:20111581013
          • commentruby-irb is signed with Red Hat redhatrelease2 key
            ovaloval:com.redhat.rhba:tst:20193384070
        • AND
          • commentruby is earlier than 0:1.8.7.352-3.el6
            ovaloval:com.redhat.rhsa:tst:20111581015
          • commentruby is signed with Red Hat redhatrelease2 key
            ovaloval:com.redhat.rhba:tst:20193384030
        • AND
          • commentruby-libs is earlier than 0:1.8.7.352-3.el6
            ovaloval:com.redhat.rhsa:tst:20111581017
          • commentruby-libs is signed with Red Hat redhatrelease2 key
            ovaloval:com.redhat.rhba:tst:20193384024
    rhsa
    idRHSA-2011:1581
    released2011-12-05
    severityLow
    titleRHSA-2011:1581: ruby security, bug fix, and enhancement update (Low)
  • rhsa
    idRHSA-2012:0070
rpms
  • ruby-0:1.8.7.352-3.el6
  • ruby-debuginfo-0:1.8.7.352-3.el6
  • ruby-devel-0:1.8.7.352-3.el6
  • ruby-docs-0:1.8.7.352-3.el6
  • ruby-irb-0:1.8.7.352-3.el6
  • ruby-libs-0:1.8.7.352-3.el6
  • ruby-rdoc-0:1.8.7.352-3.el6
  • ruby-ri-0:1.8.7.352-3.el6
  • ruby-static-0:1.8.7.352-3.el6
  • ruby-tcltk-0:1.8.7.352-3.el6
  • irb-0:1.8.1-18.el4
  • ruby-0:1.8.1-18.el4
  • ruby-0:1.8.5-22.el5_7.1
  • ruby-debuginfo-0:1.8.1-18.el4
  • ruby-debuginfo-0:1.8.5-22.el5_7.1
  • ruby-devel-0:1.8.1-18.el4
  • ruby-devel-0:1.8.5-22.el5_7.1
  • ruby-docs-0:1.8.1-18.el4
  • ruby-docs-0:1.8.5-22.el5_7.1
  • ruby-irb-0:1.8.5-22.el5_7.1
  • ruby-libs-0:1.8.1-18.el4
  • ruby-libs-0:1.8.5-22.el5_7.1
  • ruby-mode-0:1.8.1-18.el4
  • ruby-mode-0:1.8.5-22.el5_7.1
  • ruby-rdoc-0:1.8.5-22.el5_7.1
  • ruby-ri-0:1.8.5-22.el5_7.1
  • ruby-tcltk-0:1.8.1-18.el4
  • ruby-tcltk-0:1.8.5-22.el5_7.1