Bug 978243 (CVE-2013-2213)
Summary: | CVE-2013-2213 KDE KRandom::random() CWE-334: Small Space of Random Values | ||
---|---|---|---|
Product: | [Other] Security Response | Reporter: | Garth Mollett <gmollett> |
Component: | vulnerability | Assignee: | Red Hat Product Security <security-response-team> |
Status: | CLOSED NOTABUG | QA Contact: | |
Severity: | low | Docs Contact: | |
Priority: | low | ||
Version: | unspecified | CC: | dvratil, jgrulich, jreznik, kevin, ltinkl, rdieter, rnovacek, smparrish, than |
Target Milestone: | --- | Keywords: | Security |
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2013-07-08 03:51:17 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | 978246, 978247 | ||
Bug Blocks: | 978251 |
Description
Garth Mollett
2013-06-26 07:31:04 UTC
Created kdelibs tracking bugs for this issue Affects: fedora-all [bug 978246] Created kdelibs3 tracking bugs for this issue Affects: fedora-all [bug 978247] The KRandom::random() function is written using the glibc srand()/rand() functions. kdecore/util/krandom.cpp: 39 int fd = KDE_open("/dev/urandom", O_RDONLY); 40 if (fd < 0 || ::read(fd, &seed, sizeof(seed)) != sizeof(seed)) 41 { 42 // No /dev/urandom... try something else. 43 srand(getpid()); 44 seed = rand()+time(0); 45 } 46 if (fd >= 0) close(fd); 47 srand(seed); 48 } 49 return rand(); Krandom::random() tries to read the seed from /dev/urandom. If it is not able to open /dev/urandom, it uses a combination of the pid and system time to derive a seed (more predictable then /dev/urandom ofcourse). This seed is then used to derive random numbers via the glibc, rand() function. Note: glibc's rand() function is based on Linear congruential generator and is not recommended to be used for cryptographic purposes which includes generation of random passwords/keys for desktop applications. The same applies to other pseudo-random number generator functions like KRandom::random() which are based on glibc's rand(). Red Hat recommends use of the following functions for generating unpredictable and non-repeating values pseudo-random numbers. http://docs.fedoraproject.org/en-US/Fedora_Security_Team//html/Defensive_Coding/ch10s02.html |