CVE Vulnerabilities

CVE-2019-5420

Use of Insufficiently Random Values

Published: Mar 27, 2019 | Modified: Nov 07, 2023
CVSS 3.x
9.8
CRITICAL
Source:
NVD
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS 2.x
7.5 HIGH
AV:N/AC:L/Au:N/C:P/I:P/A:P
RedHat/V2
RedHat/V3
8.1 MODERATE
CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Ubuntu
MEDIUM

A remote code execution vulnerability in development mode Rails <5.2.2.1, <6.0.0.beta3 can allow an attacker to guess the automatically generated development mode secret token. This secret token can be used in combination with other Rails internals to escalate to a remote code execution exploit.

Weakness

The product uses insufficiently random numbers or values in a security context that depends on unpredictable numbers.

Affected Software

Name Vendor Start Version End Version
Rails Rubyonrails * 5.2.2.1 (excluding)
Rails Rubyonrails 6.0.0-beta1 (including) 6.0.0-beta1 (including)
Rails Rubyonrails 6.0.0-beta2 (including) 6.0.0-beta2 (including)
Rails Ubuntu cosmic *
Rails Ubuntu disco *
Rails-4.0 Ubuntu trusty *
Ruby-actionpack-3.2 Ubuntu trusty *
Ruby-activemodel-3.2 Ubuntu trusty *
Ruby-activerecord-3.2 Ubuntu trusty *
Ruby-activesupport-3.2 Ubuntu trusty *
Ruby-rails-3.2 Ubuntu trusty *

Potential Mitigations

  • Use a well-vetted algorithm that is currently considered to be strong by experts in the field, and select well-tested implementations with adequate length seeds.
  • In general, if a pseudo-random number generator is not advertised as being cryptographically secure, then it is probably a statistical PRNG and should not be used in security-sensitive contexts.
  • Pseudo-random number generators can produce predictable numbers if the generator is known and the seed can be guessed. A 256-bit seed is a good starting point for producing a “random enough” number.

References