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-20295 – Cisco IMC sérülékenysége
CVE-2024-3400 – Palo Alto Networks PAN-OS sérülékenysége
CVE-2024-3566 – Windows CreateProcess sérülékenysége
CVE-2024-22423 – yt-dlp sérülékenysége
CVE-2024-1874 – PHP sérülékenysége
CVE-2024-24576 – Rust sérülékenysége
CVE-2023-45590 – Fortinet FortiClientLinux sérülékenysége
CVE-2024-29988 – Microsoft Windows SmartScreen sérülékenysége
CVE-2024-26234 – Microsoft Windows proxy driver sérülékenysége
CVE-2023-6320 – LG webOS sérülékenysége
Tovább a sérülékenységekhez »