Stack Clash, oldukça eski bir tekniğe dayanan bir istismardır. Bir işlem tarafından kullanılan bellek iki bölgeye ayrılır - yığın ve yığın . Biri genellikle yığını aşağıya doğru büyürken ve yığını yukarı doğru uzadığını düşünür. Her ikisi de diğeriyle çatışacak kadar büyüdüğünde ne olur ? Daha genel olarak, yığın ilgisiz bellek alanlarına girecek kadar büyüdüğünde ne olur? Asıl güvenlik açığı 12 yaşında ve Linux çekirdek geliştiricileri bir güvenlik sayfası kullanarak geçici olarak düzelttiler . Bununla birlikte, Qualys'teki araştırmacılar, güvenlik sayfasına rağmen bunu istismar ettiler.
Ars Technica raporları :
Stack Clash güvenlik açıkları, ilk olarak 2005 yılında güvenlik araştırmacısı Gaël Delalleau'nun bulgularıyla ve beş yıl sonra araştırmacı Rafal Wojtczuk tarafından Linux kırılganlığının serbest bırakılmasıyla birlikte yaygın bir farkındalık kazanmıştır . Linux geliştiricileri
, yığın çatışmasını önleme amaçlı bir koruma sağlamıştır, ancak bugünün araştırması, saldırganların bu önlemi atlamanın nispeten kolay olduğunu göstermektedir.
Qualys tarafından geliştirilen temel kavram kanıtı saldırısı, CVE-2017-1000364 olarak endekslenen bir güvenlik açığından yararlanır. Qualys araştırmacıları ayrıca, CVE-2017-1000365 ve CVE-2017-1000367 dahil olmak üzere ayrı güvenlik açıklarından yararlanmak için Stack Clash kullanan saldırılar geliştirdi. Örneğin, Sudo’larda yeni ortaya çıkan bir kusur olan CVE-2017-1000367 ile birleştirildiğinde, Qualys tarafından keşfedilen yerel kullanıcılar, daha geniş bir işletim sistemi aralığında tam kök ayrıcalıklar elde etmek için Sudo’dan yararlanabilir. Qualys şu ana kadar sömürülerinin uzaktan kod çalıştırmasını sağlayamadı. Araştırdıkları tek uzaktan uygulama tesadüfen kullanılamaz olduğu ortaya çıkan Exim posta sunucusuydu. Qualys, böyle bir uzaktan kod yürütme istismarının mevcut olma olasılığını ekarte edemediğini söyledi. Qualys, daha sonraki bir tarihte kavram kanıtı istismarlarını serbest bırakacağını söyledi.
[...] Qualys'in bu ayrıntılı teknik danışmanlığında ve grsecurity'den gelen bu teknik analizde çok daha fazla bilgi bulunmaktadır .
2010'daki orijinal düzeltmeyle ilgili LWN makalesinden alıntı :
Linux, işlem yığınını ve yığın sayfalarını ayırmadığından, yığın sayfasını bitişik yığın sayfasına atmak mümkündür. Bu, yeterince derin bir yığının (örneğin özyinelemeli bir çağrıdan) yığıntaki belleği kullanarak sona erebileceği anlamına gelir. Bu yığın sayfasına (örneğin bir X istemcisi) yazabilen bir program, seçtiği yere atlamak için çağrılardan birinin dönüş adresini değiştirebilir. Bu, istemcinin, sunucunun, kendi seçtiği kodu - rasgele kod yürütme - kodunu çalıştırmasına neden olabileceği anlamına gelir ve bu da kök ayrıcalıkları elde etmek için kullanılabilir.
Yukarıdaki açıklama, çeşitli Unix benzeri çekirdekleri için geçerlidir.
Ars Technica Qualys raporunda belirtilen geçici çözüm belirtse iken ( "set sert RLimit STACK ve RLIMIT_AS ait yerel kullanıcılar ve uzak hizmetler düşük değere"), unutulmamalıdır , bu istismar karşı mutlaka güvenlik önlemi yok . Şu anda tek güvenli yolu yükseltme yapmaktır. Grsecurity analizine göre:
Bu sorunu çözmek için yalnızca çekirdek girişimlerinin mutlaka asıl mesele, eksik meselenin yığın araştırması eksikliğinden kaynaklandığı için her zaman eksik olacağı açıktır. Alternatif gerçek çözüm tüm kullanıcı alanlarını yeniden inşa etmeye bağlı olduğundan, bu öngörülebilir gelecek için tek uygun çözüm olabilir.
Şimdi yapabileceğimizin en iyisi çekirdeği yamalı bir sürüme yükseltmektir.
2010 sömürüsü, X sunucusunu kullandı; bu, sudo kullandı, bir sonraki, bir noktada, yüksek ayrıcalıklar altında çalışan çok sayıda kullanıcı alanı programından herhangi biri olabilir.
Qualys, henüz bir istismar için kavram kanıtı kodu yayınlamamıştır (daha sonraki bir tarihte yapmayı planlamaktadırlar).
CVE-2017-1000364 ile ilişkili birden çok Ubuntu Güvenlik Bildirimi vardır:
Ayrıca , CVE izleyicisinin , birkaç düzeltme / çekirdek kombinasyonunu bekleyen düzeltmeler olarak listelediğini unutmayın .
Genel olarak, en basit çözüm sistemlerinizi ASAP'ın en son çekirdek paketine güncellemektir.
USN'lerin ilgili çekirdek sürümleri (kullanılarak toplanmıştır for i in {24..35}; curl -s https://www.ubuntu.com/usn/usn-33$i-1/ | pup 'dl:nth-last-of-type(1)'):
-
Ubuntu 17.04:
-
linux-image-4.10.0-24-lowlatency
4.10.0-24.28
-
linux-image-generic-lpae
4.10.0.24.26
-
linux-image-generic
4.10.0.24.26
-
linux-image-4.10.0-24-generic-lpae
4.10.0-24.28
-
linux-image-4.10.0-24-generic
4.10.0-24.28
-
linux-image-lowlatency
4.10.0.24.26
-
Ubuntu 17.04:
-
linux-image-4.10.0-1008-raspi2
4.10.0-1008.11
-
linux-image-raspi2
4.10.0.1008.10
-
Ubuntu 16.10:
-
linux-image-powerpc-smp
4.8.0.56.69
-
linux-image-powerpc-e500mc
4.8.0.56.69
-
linux-görüntü-4.8.0-56-powerpc-smp
4.8.0-56.61
-
linux-görüntü-4.8.0-56-powerpc-e500mc
4.8.0-56.61
-
linux-image-4.8.0-56-lowlatency
4.8.0-56.61
-
linux-image-generic
4.8.0.56.69
-
linux-image-4.8.0-56-genel
4.8.0-56.61
-
linux-image-powerpc64-emb
4.8.0.56.69
-
linux-image-virtual
4.8.0.56.69
-
linux-image-powerpc64-smp
4.8.0.56.69
-
linux-image-4.8.0-56-generic-lpae
4.8.0-56.61
-
linux-image-generic-lpae
4.8.0.56.69
-
linux-image-lowlatency
4.8.0.56.69
-
linux-image-4.8.0-56-powerpc64-emb
4.8.0-56.61
-
Ubuntu 16.10:
-
linux-image-4.8.0-1040-raspi2
4.8.0-1040.44
-
linux-image-raspi2
4.8.0.1040.44
-
Ubuntu 16.04 LTS:
-
linux-görüntü-powerpc64-smp-
lts -ütopik
4.4.0.81.87
-
linux-image-generic-
lts -
wily 4.4.0.81.87
-
linux-image-generic-
lts -ütopik
4.4.0.81.87
-
linux-image-4.4.0-81-generic-lpae
4.4.0-81.104
-
linux-görüntü-powerpc64-emb-
lts -canlı
4.4.0.81.87
-
linux-image-powerpc-e500mc
4.4.0.81.87
-
linux-image-generic-lpae-lts-xenial
4.4.0.81.87
-
linux-image-generic-lpae-lts-ütopik
4.4.0.81.87
-
linux-görüntü-powerpc-e500mc-lts-xenial
4.4.0.81.87
-
linux-image-4.4.0-81-powerpc64-emb
4.4.0-81.104
-
linux-görüntü-güç-e500mc-lts-
wily 4.4.0.81.87
-
linux-image-4.4.0-81-powerpc-e500mc
4.4.0-81.104
-
linux-image-generic-lpae-lts-
wily 4.4.0.81.87
-
linux-image-virtual-
lts -canlı
4.4.0.81.87
-
linux-image-virtual-
lts -ütopik
4.4.0.81.87
-
linux-image-virtual
4.4.0.81.87
-
linux-image-powerpc64-emb-lts-
wily 4.4.0.81.87 sürümü
-
linux-image-lowlatency-lts-canlı
4.4.0.81.87
-
linux-görüntü-güç-e500mc-lts-canlı
4.4.0.81.87
-
linux-image-powerpc64-emb
4.4.0.81.87
-
linux-görüntü-güç-smp-lts-xenial
4.4.0.81.87
-
linux-image-4.4.0-81-generic
4.4.0-81.104
-
linux-görüntü-powerpc64-smp-
lts -canlı
4.4.0.81.87
-
linux-image-lowlatency-lts-
wily 4.4.0.81.87
-
linux-image-4.4.0-81-lowlatency
4.4.0-81.104
-
linux-image-generic
4.4.0.81.87
-
linux-image-lowlatency-lts-xenial
4.4.0.81.87
-
linux-görüntü-powerpc64-smp-lts-xenial
4.4.0.81.87
-
linux-görüntü-powerpc64-emb-
lts -ütopik
4.4.0.81.87
-
linux-image-generic-lts-xenial
4.4.0.81.87
-
linux-image-generic-
lts -canlı
4.4.0.81.87
-
linux-görüntü-güç-e500mc-lts-ütopik
4.4.0.81.87
-
linux-image-powerpc-smp
4.4.0.81.87
-
linux-image-4.4.0-81-powerpc-smp
4.4.0-81.104
-
linux-image-generic-lpae-lts-canlı
4.4.0.81.87
-
linux-image-generic-lpae
4.4.0.81.87
-
linux-görüntü-powerpc64-smp-lts-
wily 4.4.0.81.87
-
linux-görüntü-powerpc64-emb-lts-xenial
4.4.0.81.87
-
linux-görüntü-güç-smp-
lts -
wily 4.4.0.81.87
-
linux-image-virtual-
lts -
wily 4.4.0.81.87
-
linux-image-powerpc64-smp
4.4.0.81.87
-
linux-image-4.4.0-81-powerpc64-smp
4.4.0-81.104
-
linux-görüntü-güç-smp-
lts -ütopik
4.4.0.81.87
-
linux-görüntü-güç-smp-
lts -canlı
4.4.0.81.87
-
linux-image-lowlatency
4.4.0.81.87
-
linux-image-virtual-lts-xenial
4.4.0.81.87
-
linux-image-lowlatency-lts-ütopik
4.4.0.81.87
-
Ubuntu 16.04 LTS:
-
linux-image-4.4.0-1016-gke
4.4.0-1016.16
-
Ubuntu 16.04 LTS:
-
linux-image-snapdragon
4.4.0.1061.54
-
linux-image-4.4.0-1061-snapdragon
4.4.0-1061.66
-
Ubuntu 16.04 LTS:
-
linux-image-4.4.0-1020-aws
4.4.0-1020.29
-
Ubuntu 16.04 LTS:
-
linux-image-raspi2
4.4.0.1059.60
-
linux-image-4.4.0-1059-raspi2
4.4.0-1059.67
-
Ubuntu 16.04 LTS:
-
linux-image-4.8.0-56-powerpc-smp
4.8.0-56.61 ~ 16.04.1
-
linux-image-4.8.0-56-powerpc-e500mc
4.8.0-56.61 ~ 16.04.1
-
linux-image-4.8.0-56-lowlatency
4.8.0-56.61 ~ 16.04.1
-
linux-image-4.8.0-56-jenerik
4.8.0-56.61 ~ 16.04.1
-
linux-image-generic-hwe-16.04
4.8.0.56.27
-
linux-image-lowlatency-hwe-16.04
4.8.0.56.27
-
linux-image-4.8.0-56-jenerik-lpae
4.8.0-56.61 ~ 16.04.1
-
linux-image-virtual-hwe-16.04
4.8.0.56.27
-
linux-image-generic-lpae-hwe-16.04
4.8.0.56.27
-
linux-image-4.8.0-56-powerpc64-emb
4.8.0-56.61 ~ 16.04.1
-
Ubuntu 14.04 LTS:
-
linux-görüntü-güç-smp-lts-xenial
4.4.0.81.66
-
linux-image-lowlatency-lts-xenial
4.4.0.81.66
-
linux-image-4.4.0-81-powerpc-smp
4.4.0-81.104 ~ 14.04.1
-
linux-image-4.4.0-81-powerpc-e500mc
4.4.0-81.104 ~ 14.04.1
-
linux-image-4.4.0-81-lowlatency
4.4.0-81.104 ~ 14.04.1
-
linux-image-4.4.0-81-generic-lpae
4.4.0-81.104 ~ 14.04.1
-
linux-image-generic-lpae-lts-xenial
4.4.0.81.66
-
linux-görüntü-powerpc64-smp-lts-xenial
4.4.0.81.66
-
linux-image-4.4.0-81-generic
4.4.0-81.104 ~ 14.04.1
-
linux-image-4.4.0-81-powerpc64-smp
4.4.0-81.104 ~ 14.04.1
-
linux-image-generic-lts-xenial
4.4.0.81.66
-
linux-görüntü-powerpc64-emb-lts-xenial
4.4.0.81.66
-
linux-görüntü-powerpc-e500mc-lts-xenial
4.4.0.81.66
-
linux-image-virtual-lts-xenial
4.4.0.81.66
-
linux-image-4.4.0-81-powerpc64-emb
4.4.0-81.104 ~ 14.04.1
-
Ubuntu 14.04 LTS:
-
linux-image-powerpc-e500mc
3.13.0.121.131
-
linux-image-lowlatency-pae
3.13.0.121.131
-
linux-image-3.13.0-121-powerpc64-emb
3.13.0-121.170
-
linux-image-generic-pae
3.13.0.121.131
-
linux-image-3.13.0-121-powerpc-smp
3.13.0-121.170
-
linux-görüntü-3.13.0-121-powerpc-e500mc
3.13.0-121.170
-
linux-görüntü-3.13.0-121-powerpc-e500
3.13.0-121.170
-
linux-image-3.13.0-121-generic-lpae
3.13.0-121.170
-
linux-image-generic-
lts -
quantal 3.13.0.121.131
-
linux-image-virtual
3.13.0.121.131
-
linux-image-powerpc-e500
3.13.0.121.131
-
linux-image-generic-
lts -trusty
3.13.0.121.131
-
linux-image-3.13.0-121-genel
3.13.0-121.170
-
linux-image-omap
3.13.0.121.131
-
linux-image-powerpc64-emb
3.13.0.121.131
-
linux-image-3.13.0-121-powerpc64-smp
3.13.0-121.170
-
linux-image-generic
3.13.0.121.131
-
linux-image-highbank
3.13.0.121.131
-
linux-image-generic-
lts -saucy
3.13.0.121.131
-
linux-image-powerpc-smp
3.13.0.121.131
-
linux-image-3.13.0-121-lowlatency
3.13.0-121.170
-
linux-image-generic-lpae-lts-saucy
3.13.0.121.131
-
linux-image-generic-
lts -
raring 3.13.0.121.131
-
linux-image-powerpc64-smp
3.13.0.121.131
-
linux-image-generic-lpae-lts-trusty
3.13.0.121.131
-
linux-image-generic-lpae
3.13.0.121.131
-
linux-image-lowlatency
3.13.0.121.131
-
Ubuntu 12.04 ESM:
-
linux-görüntü-powerpc-smp
3.2.0.128.142
-
linux-image-3.2.0-128-sanal
3.2.0-128.173
-
linux-image-3.2.0-128-generic-pae
3.2.0-128.173
-
linux-image-generic
3.2.0.128.142
-
linux-image-generic-pae
3.2.0.128.142
-
linux-image-highbank
3.2.0.128.142
-
linux-image-3.2.0-128-highbank
3.2.0-128.173
-
linux-image-3.2.0-128-powerpc-smp
3.2.0-128.173
-
linux-image-virtual
3.2.0.128.142
-
linux-image-powerpc64-smp
3.2.0.128.142
-
linux-image-3.2.0-128-omap
3.2.0-128.173
-
linux-image-3.2.0-128-powerpc64-smp
3.2.0-128.173
-
linux-image-omap
3.2.0.128.142
-
linux-image-3.2.0-128-jenerik
3.2.0-128.173
-
Ubuntu 12.04 LTS:
-
linux-image-3.13.0-121-
general 3.13.0-121.170 ~ kesin1
-
linux-image-generic-lpae-lts-trusty
3.13.0.121.112
-
linux-image-generic-
lts -trusty
3.13.0.121.112
-
linux-image-3.13.0-121-generic-lpae
3.13.0-121.170 ~ kesin1
sudo
Yukarıda belirtilen sudo böceği, 30 Mayıs 2017’den itibaren USN-3304-1 kapsamındadır :
-
Ubuntu 17.04:
-
sudo-ldap
1.8.19p1-1ubuntu1.1
-
sudo
1.8.19p1-1ubuntu1.1
-
Ubuntu 16.10:
-
sudo-ldap
1.8.16-0ubuntu3.2
-
sudo
1.8.16-0ubuntu3.2
-
Ubuntu 16.04 LTS:
-
sudo-ldap
1.8.16-0ubuntu1.4
-
sudo
1.8.16-0ubuntu1.4
-
Ubuntu 14.04 LTS:
-
sudo-ldap
1.8.9p5-1ubuntu1.4
-
sudo
1.8.9p5-1ubuntu1.4