VMware ESX Server többszörös sérülékenység

CH azonosító

CH-4370

Angol cím

VMware ESX Server Multiple Kernel Vulnerabilities

Felfedezés dátuma

2011.02.10.

Súlyosság

Alacsony

Érintett rendszerek

VMware
VMware ESX server

Érintett verziók

VMware ESX Server 4.x

Összefoglaló

A VMware ESX Server több sérülékenységét jelentették, amelyet kihasználva helyi felhasználók szolgáltatás megtagadást (DoS – Denial of Service) okozhatnak, megkerülhetnek bizonyos biztonsági szabályokat, bizalmas információkat gyűjthetnek, DNS poisoning támadást indíthatnak, emelt szintű jogosultságokat szerezhetnek, valamint a támadók szolgáltatás megtagadást (DoS – Denial of Service) okozhatnak.

Leírás

  1. Sérülékenységet okoz, hogy nem megfelelő a hozzáférés ellenőrzés az “EXT4_IOC_MOVE_EXT” IOCTL feldolgozás közben, amelyet kihasználva állományokat írhatóak felül root jogosultsággal, ha egy speciálisan elkészített IOCTL-t küldenek a szervernek.
  2. Az fs/ext4/super.c fájlban lévő “ext4_fill_flex_info()” függvény egy hibáját kihasználva, nullával való osztást lehet előidézni, egy speciálisan elkészített fájlrendszer felcsatolásakot (mount).
  3. Az fs/ext4/super.c-ben lévő “ext4_decode_error()” függvény egy hibáját kihasználva, NULL mutató hivatkozás feloldási hibát lehet előidézni, egy speciálisan elkészített fájlrendszer felcsatolásakot (mount).
  4. Egy sérülékenység forrása az, hogy a net/bridge/netfilter/ebtables.c-ben található “do_ebt_set_ctl()” és “do_ebt_get_ctl()” függvények nem megfelelően korlátozzák a “CAP_NET_ADMIN” jogosultsággal rendelkező felhasználók hozzáférését, amelyet kihasználva módosítani lehet az ebtables szabályokat, a megfelelő hozzáférési jogok nélkül.
  5. Több sérülékenységet találtak a “do_mremap()” függvényben és a hozzá tartozó “MREMAP_FIXED”-ben, amelyeket kihasználva a rendszer összeomlását lehet előidézni, különböző architektúrákon.
  6. Egy sérülékenységet találtak a drivers/connector/connector.c notification kódjában, amelyet kihasználva out-of-memory állapotot lehet előidézni.
  7. A sérülékenység a processz környezetének beállításakor történik, és a rendszer összeomlásához vezethet, ha pl. egy 32 bites alkalmazásból meghívnak egy 64 bitest, hiányzik az ELF interpreter, ez pedig segmentation fault-hoz vezet. A hiba sikeres kihasználásához szükséges, hogy 64 bites rendszer és a core dump engedélyezve legyen.
  8. A KVM x86 kód emuláció nem megfelelően ellenőrzi a CPL és IOPL jogosultságokat, amelyet kihasználva, tetszőleges kódot futtatható emelt szintű jogosultsággal.
  9. A KVM nem megfelelően ellenőrzi a jogosultságokat, amikor betölti a szegmens szelektorokat, amelyet kihasználva egy rosszindulatú userspace processz, ami a guest VM-ben fut, ráveheti az emulátort, hogy tetszőleges kernel szegmenseket töltsön be. A hiba sikeres kihasználásához egy SMP guest szükséges.
  10. A kernel/time/clocksource.c-ben lévő “clocksource_done_booting()” függvény nem megfelelően inicializálja a clocksource-t. Ezt kihasználva, a”/sys/devices/system/clocksource/clocksource0/current_clocksource” kiolvasásakor egy NULL mutató hivatkozás feloldási hibát lehet előidézni. A hiba sikeres kihasználásához szükséges, hogy a kernel “CONFIG_GENERIC_TIME” “n” értékkel legyen fordítva.
  11. Bizonyos CIFS üzenetek kezelésében lévő hibát kihasználva, az mm/filemap.c-ben lévő “iov_iter_advance()” függvényben egy “BUG_ON()”-t lehet kiváltani.
  12. A drivers/net/igb/igb_main.c-ben lévő “igb_receive_skb()” függvény hibáját kihasználva, egy NULL mutató hivatkozás feloldási hibát lehet előidézni, ez pedig a rendszer összeomlásához vezet, ha egy VLAN frame-t küldenek az érintett rendszernek.
    A hiba sikeres kihasználásához szükséges, hogy a “CONFIG_PCI_IOV” engedélyezve legyen, és ne legyen VLAN regisztrálva.
  13. Egy sérülékenység oka, hogy az mm/migrate.c “do_pages_move()” függvény nem tisztázza megfelelően a felhasználói területről érkező node értékeket. Ez kihasználható összeomlás okozására, vagy a memória tartalmának megtekintésére, egy speciálisan erre a célra elkészített “move_pages” rendszer hívás segítségével.
  14. A kernel/futex.c “wake_futex_pi()” függvényének egy NULL mutató hivatkozás feloldási hibáját kihasználva szolgáltatás megtagadás okozható vagy emelt szintű jogosultság szerezhető.
  15. A kernel/futex.c “futex_lock_pi()” függvényének egy futex kulcs hivatkozás számlálási hibáját kihasználva kernel összeomlás okozható, pl. ext3 fájlrendszer lecsatolásával, ha az egy olyan ideiglenes fájlt tartalmaz, amire egy futex vonatkozik.
  16. Egy sérülékenységet az újraküldési időzítés (retransmission timeout – RTO) hibás kiszámítása okozza, amelyet kihasználva az érintett rendszeren magas CPU és hálózati terhelés okozható. A sikeres kihasználás feltétele, hogy a TCP időbélyegek le legyenek tiltva.
  17. Az fs/nfs/pagelist.c-ben lévő “nfs_release_request()” függvény megszakítható, amelyet kihasználva, NULL mutató hivatkozás feloldási hibát lehet kiváltani, egy olyan alkalmazás megszakításával, ami NFS állományon végez műveleteket.
  18. A sérülékenységet a sound/pci/hda/hda_intel.c “azx_position_ok()” függvényében egy nullával való osztás okozza, ami a rendszer összeomlásának előidézésére használható ki. A sikeres kihasználás feltétele a hda-intel driver használata. A sérülékenységet az AMD780V chipset-et használó rendszereken futó 2.6.32.7 és 2.6.33-rc6 verziókban jelentették. Más verziók is érintettek lehetnek.
  19. A hiba oka, hogy az fs/ext4/extents.c “ext4_fallocate()” függvénye nem ellenőrzi, hogy a fájl mérete nagyobb-e mint az “RLIMIT_FSIZE” érték. Ezt kihasználva nagyobb fájlokat lehet létrehozni a megengedettnél pl. a “posix_fallocate()” függvénnyel.
  20. Sérülékenységet okoz, hogy nem megfelelő a hozzáférés ellenőrzés az “EXT4_IOC_MOVE_EXT” IOCTL feldolgozás közben, amit kihasználva, felül lehet írni az append-only fájlokat, egy speciálisan elkészített IOCTL küldésével.
  21. A sérülékenység oka, hogy a fs/xfs/xfs_dfrag.c “xfs_swapext()” függvénye nem ellenőrzi megfelelően a hozzáférési jogosultságokat. Ezt kihasználva, egy egyedileg kialakított IOCTL segítségével pl. egy másik felhasználó által birtokolt írásvédett fájl tartalmára cserélhető a támadó által olvasható fájl tartalma.
  22. A net/core/ethtool.c-ben lévő “ethtool_get_rxnfc()” függvény egy egésszám túlcsordulási hibáját kihasználva, a kernel összeomlását, és esetleg emel tszintű jogosultságokat lehet szerezni, egy speciálisan elkészített IOCTL küldésével. A hiba sikeres kihasználásához szükséges, hogya network driver támogassa és használja a “get_rxnfc” műveletet.
  23. Egy sérülékenységet okoz, hogy az XFS fájlrendszer nem megfelelően ellenőrzi az inode darabszámokat egy fájl kezelésekor. Ez oda vezethet, hogy bizalmas információk juthatnak ki egy NFS kliensnek.
  24. A drivers/scsi/bfa/bfa_core.c-ben lévő “bfa_attach()” függvény nem megfelelően inicializál bizonyos adatstruktúrákat, amit kihasználva a rendszer összeomlását lehet előidézni, ha a sysfs-en keresztül kiolvassák a fc_host állományt.
  25. A sérülékenység a CIFS DNS feloldó mechanizmus nem megfelelő kikeresési tábla hozzáférési korlátozásának hibájából ered, amely kihasználható például egy kártékony szerver meghamisított kikeresési táblájának használatához.
  26. A sérülékenység oka, hogy a JFS fájlrendszer nem érvényesíti megfelelően az xattr névtér hozzáférési jogokat, amely kihasználható a hozzáférési szabályok megkerülésére az érvényes xattr nevekhez történő “os2” előtag hozzáfűzésével.
  27. A “compat_alloc_user_space()” függvény néhány hívó függvénye (pl.net/compat.c fájlban a “compat_mc_getsockopt()”), nem végez semmilyen ellenőrzést a visszakapott memória területre, amit kihasználva, memória hivatkozási hibát lehet okozni.
  28. A 32 bites rendszer hívás emulációs réteg nem ellenőrzi, hogy a hivatkozott rendszer hívás benne van-e a rendszer hívási táblában. Ezt kihasználva, tetszőleges kódot lehet futtatni kernel jogosultsággal.

Megoldás

Telepítse a javítócsomagokat