Стек Clash - це експлуатація, заснована на досить старій техніці. Пам'ять, яка використовується процесом, поділяється на дві області - стек та купу . Взагалі можна уявити стек як зростаючий вниз, а купу наростаючим вгору. Що відбувається, коли будь-який підросте досить, щоб зіткнутися з іншим? Загалом, що відбувається, коли стек зростає достатньо, щоб зазіхати на неспоріднені простори пам'яті? Оригінальній вразливості 12 років, і розробники ядра Linux виправили її тимчасово, використовуючи сторожову сторінку . Однак дослідникам компанії Qualys вдалося це використати, незважаючи на сторінку охорони.
Звіти Ars Technica :
Вразливості Stack Clash повільно набувають широкої поінформованості, спочатку у 2005 році з результатами дослідника безпеки Галела Делало і через п'ять років із випуском вразливості Linux дослідника Рафала Войцечука. Розробники Linux
ввели захист, який покликаний запобігти зіткненням стеків, але сьогоднішнє дослідження демонструє, що зловмисникам порівняно легко обійти цю міру.
Основна атака з підтвердженням концепції, розроблена Qualys, використовує вразливість, індексовану як CVE-2017-1000364. Дослідники Qualys також розробили атаки, які використовують Stack Clash для використання окремих уразливостей, включаючи CVE-2017-1000365 та CVE-2017-1000367. Наприклад, у поєднанні з CVE-2017-1000367, нещодавно виправленим недоліком у Судо, також виявленим Qualys, місцеві користувачі можуть використовувати Sudo для отримання повних привілеїв root на значно ширший спектр ОС. Досі Qualys не в змозі змусити віддалено виконувати код. Єдиною віддаленою програмою, яку вони досліджували, був поштовий сервер Exim, який випадково виявився непридатним. Qualys сказав, що не виключає можливості існування таких віддалених подвигів виконання коду. Qualys заявив, що пізніше буде випущено експерименти з підтвердженням концепції,
[...] Набагато більше інформації можна отримати в цій детальній технічній консультації від Qualys та в цьому технічному аналізі з питань безпечності .
Цитуючи статтю LWN про оригінальне виправлення з 2010 року:
Оскільки Linux не відокремлює сторінки стека процесів і купи, можливе перевиконання сторінки стека на сусідню групу купи. Це означає, що досить глибокий стек (наприклад, з рекурсивного дзвінка) міг би отримати кінцеву пам'ять. Програма, яка може записати на цю купу сторінки (наприклад, X-клієнт), може потім маніпулювати зворотною адресою одного з викликів, щоб перейти на місце, яке вона обрала. Це означає, що клієнт може змусити сервер запускати код свого вибору - довільне виконання коду - який може бути використаний для отримання кореневих привілеїв.
Вищеописаний опис стосується різних ядер Unix-подібних.
У той час як Ars Technica робить відзначити тимчасовий обхідний шлях , згаданий в доповіді Qualys ( «встановити жорсткий RLIMIT STACK і RLIMIT_AS від локальних користувачів і віддалених послуг за низькою вартістю»), слід зазначити , що це не обов'язково гарантії проти цього подвигу . Наразі єдиний безпечний вихід - оновлення. Відповідно до аналізу безпеки:
Повинно бути зрозуміло, що спроби вирішити цю проблему ядра завжди будуть неповними, оскільки справжня проблема полягає у відсутності зондування стека. Оскільки альтернативне реальне рішення залежить від відновлення всієї країни користування, це, ймовірно, єдине можливе рішення в осяжному майбутньому.
Найкраще, що ми можемо зробити зараз, - оновити ядро до виправленої версії.
Експлуатація 2010 року використовувала X-сервер, цей використовував sudo, наступним може бути будь-яка з безлічі програм програми userland, які в певний момент запускаються з підвищеними привілеями.
Qualys ще не опублікував жодного доказового коду для подвигів (вони планують зробити це пізніше).
З CVE-2017-1000364 пов'язано кілька повідомлень про безпеку Ubuntu:
Також зауважте, що трекер CVE перераховує декілька комбінацій випуску / ядра як виправлені очікування.
Як правило, найпростішим виправленням є оновлення ваших систем до останнього пакета ядра ASAP.
Відповідні версії ядра з USN (викреслені з використанням 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-image-4.8.0-56-powerpc-smp
4.8.0-56.61
-
linux-image-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-generic
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-image-powerpc64-smp-lts-
utopic 4.4.0.81.87
-
linux-image-generic-lts-
wily 4.4.0.81.87
-
linux-image-generic-lts-
utopic 4.4.0.81.87
-
linux-image-4.4.0-81-generic-lpae
4.4.0-81.104
-
linux-image-powerpc64-emb-lts-
vivid 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-
utopic 4.4.0.81.87
-
linux-image-powerpc-e500mc-lts-xenial
4.4.0.81.87
-
linux-image-4.4.0-81-powerpc64-
emb 4.4.0-81.104
-
linux-image-powerpc-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-
vivid 4.4.0.81.87
-
linux-image-virtual-lts-
utopic 4.4.0.81.87
-
linux-image-virtual
4.4.0.81.87
-
linux-image-powerpc64-emb-lts-
wily 4.4.0.81.87
-
linux-image-lowlatency-lts-
vivid 4.4.0.81.87
-
linux-image-powerpc-e500mc-lts-
vivid 4.4.0.81.87
-
linux-image-powerpc64-
emb 4.4.0.81.87
-
linux-image-powerpc-smp-lts-xenial
4.4.0.81.87
-
linux-image-4.4.0-81-generic
4.4.0-81.104
-
linux-image-powerpc64-smp-lts-
vivid 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-image-powerpc64-smp-lts-xenial
4.4.0.81.87
-
linux-image-powerpc64-emb-lts-
utopic 4.4.0.81.87
-
linux-image-generic-lts-xenial
4.4.0.81.87
-
linux-image-generic-lts-
vivid 4.4.0.81.87
-
linux-image-powerpc-e500mc-lts-
utopic 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-
vivid 4.4.0.81.87
-
linux-image-generic-lpae
4.4.0.81.87
-
linux-image-powerpc64-smp-lts-
wily 4.4.0.81.87
-
linux-image-powerpc64-emb-lts-xenial
4.4.0.81.87
-
linux-image-powerpc-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-image-powerpc-smp-lts-
utopic 4.4.0.81.87
-
linux-image-powerpc-smp-lts-
vivid 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-
utopic 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-generic
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-generic-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-image-powerpc-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-image-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-image-powerpc64-emb-lts-xenial
4.4.0.81.66
-
linux-image-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-image-3.13.0-121-powerpc-e500mc
3.13.0-121.170
-
linux-image-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-generic
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-image-powerpc-smp
3.2.0.128.142
-
linux-image-3.2.0-128-virtual
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-generic
3.2.0-128.173
-
Ubuntu 12.04 LTS:
-
linux-image-3.13.0-121-generic
3.13.0-121.170 ~ точний1
-
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 ~ точний1
Судо
Вищезгадана помилка судо охоплюється USN-3304-1 з 30 травня 2017 року:
-
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