Internet Explorer UXSS sérülékenysége

CH azonosító

CH-11999

Angol cím

Internet Explorer UXSS vulnerability

Felfedezés dátuma

2015.02.11.

Súlyosság

Magas

Érintett rendszerek

Internet Explorer
Microsoft

Érintett verziók

Windows 7 és 8.1 alatt futó Internet Explorer 10, 11

Összefoglaló

Nemrég nyilvánosságra került az Internet Explorer XSS sebezhetősége, amely a Same-Origin Policy(SOP) teljes kikerülését teszi lehetővé a legutóbbi IE verzió esetében. 

Leírás

Az eredeti “megvalósíthatósági” példa egy leegyszerűsített formában:

<iframe src=”redirect.php”></iframe>

<iframe src=”https://www.google.com/images/srpr/logo11w.png”></iframe>

<script>

    top[0].eval(‘_=top[1];alert();_.location=”javascript:alert(document.domain)”‘);

</script>

Az egyszerűsített példa kettő iFrame-et tartalmaz, amelyek egy-egy HTTP átirányítással bírnak a megadott céltartományokba. Fontos megjegyezni, hogy az átirányítások nem feltétlen mutatnak ugyanarra a domain-re, valamint a Content-Type sem lényeges szempont.

Összefoglalva:

  • A böngésző veszi az első iFrame-et és indít egy kérést a redirect.php felé.
  • A böngésző veszi a második iFrame-et és az ott megadott forrás felé is indít egy kérést.
  • Majd végrehajtja a megadott scriptet, ami meghívja az eval függvényt az első frame-ben megadott Windows Proxy objektumon és végrehajtja a következő lépéseket:
  1. A második frame Windows Proxy objektum értékét változóba teszi.
  2. Megnyit egy figyelmeztetést tartalmazó párbeszéd ablakot.
  3. Az ablakot a felhasználó bezárja.
  4. Megváltoztatja a helyét a változón keresztül és befecskendezi a káros kódot.
  5. A befecskendezett kód végrehajtása a második frame-ben történik a megadott célon.

Az első iFrame képes átirányítani bárhová, ami nincs a támadó forrásában.

Úgy tűnik a sérülékenység kapcsán a kulcs motívum a párbeszédablak, ugyanakkor a konkrét megvalósításban van különbség az egyes böngészők vonatkozásában:

Firefox

Mikor a párbeszéd ablak felugrik a Firefox továbbra is kezelni fogja a hálózati kéréseket. Miután az 1-es frame-beli átirányítás és betöltés megtörtént az eredeti script végrehajtás megszakításra kerül és ezzel az ablak is bezárul. (NS_ERROR_NOT_AVAILABLE: prompt aborted by user) Emiatt a párbeszéd ablak után már semmi nem kerül végrehajtásra.

Chrome

Mikor a párbeszéd ablak felugrik minden hálózati forgalom leáll, amíg az ablak manuális bezárásra nem kerül. Ezután a helyváltoztatás még lefut, de ez nem jelent veszélyt, mivel az 1-es frame eredete ugyanaz marad.

Internet Explorer

Mikor a párbeszéd ablak felugrik az IE továbbra is kezelni fogja a hálózati kéréseket. Miután ez kézzel bezárásra kerül, a helyváltoztatás  már a célra fog lefutni.

Megoldás

A Microsoft még nem adott ki javítócsomagot. Ügyfeleik védelme érdekében a webes szolgáltatások üzemeltetői/fejlesztői az alábbi védelmi intézkedéseket tehetik az UXSS sérülékenység kihasználása ellen

  1. Az ‘X-Frame-Options’ HTTP fejléc bevezetése globálisan. Fontos, hogy minden kiszolgált elemnek tartalmaznia kell a fejlécet, még a ‘robots.txt’-nek és a statikus képeknek is.
  2. A letárolt cookie-k esetében legyen beállítva a ‘HttpOnly’ kapcsoló, a session cookie-k esetében mindenképpen.
  3. A megengedett maximális munkamenet hossz legyen rövidre állítva.
  4. Ha a session alatt változna az IP cím vagy a User-Agent, akkor a session-t érvényteleníteni kell.

Legfrissebb sérülékenységek
CVE-2024-20401 – Cisco Secure Email Gateway sérülékenysége
CVE-2024-20419 – Cisco Smart Software Manager On-Prem sérülékenysége
CVE-2024-21687 – Atlassian Bamboo Data Center és Server sérülékenysége
CVE-2024-6385 – GitLab CE/EE sérülékenysége
CVE-2024-22280 – VMware Aria Automation sérülékenysége
CVE-2024-6151 – Citrix Virtual Apps and Desktops sérülékenysége
CVE-2024-6235 – NetScaler Console sérülékenysége
CVE-2024-38080 – Windows Hyper-V sérülékenysége
CVE-2024-38112 – Windows MSHTML Platform sérülékenysége
CVE-2024-3596 – RADIUS Protocol RFC 2865 prefix collision sérülékenysége
Tovább a sérülékenységekhez »