Випущено дослідники Cisco Talos Кілька днів тому вразливість в ядрі Linux, яку можна використати для крадіжки даних а також слугують засобом нарощування привілеїв та компрометації системи.
Вразливість описується як "вразливість до розкриття інформації що може дозволити зловмисникові бачити пам'ять стека ядра. '
CVE-2020-28588 - це вразливість, яка виявлено в ARM-пристроях функціональність proc / pid / syscall 32-розрядні пристрої, на яких запущена операційна система. За словами Cisco Talos, проблема вперше була виявлена на пристрої під управлінням Azure Sphere.
Уразливість щодо розкриття інформації існує у / proc / pid / syscall функціональності Linux Kernel 5.1 Stable та 5.4.66. Більш конкретно, ця проблема була введена у v5.1-rc4 (фіксує 631b7abacd02b88f4b0795c08b54ad4fc3e7c7c0) і все ще присутня у v5.10-rc4, тому всі проміжні версії, ймовірно, будуть зачеплені. Зловмисник може прочитати / proc / pid / syscall, щоб активувати цю вразливість, внаслідок чого ядро втратить вміст пам'яті.
Proc - це спеціальна псевдо-файлова система на Unix-подібних операційних системах, які використовується для динамічного доступу до даних процесу знайдено в ядрі. Представляє інформацію про процес та іншу системну інформацію в ієрархічній, файлоподібній структурі.
Наприклад, він містить підкаталоги / proc / [pid], кожен з яких містить файли та підкаталоги, що містять інформацію про конкретні процеси, читабельну за допомогою відповідного ідентифікатора процесу. У разі файлу "syscall" це законний файл операційної системи Linux, який містить журнали системних викликів, що використовуються ядром.
Для компанії lХакери можуть скористатися вадою і отримати доступ до операційної системи та файлу syscall через систему, яка використовується для взаємодії між структурами даних ядра, Proc. Запис syscall procfs може бути використаний, якщо хакери видають команди для генерації 24 байт неініціалізованої кучевої пам'яті, що веде до обходу рандомізації макета адресного простору ядра (KASLR).
Дивлячись на цю конкретну функцію, все виглядає нормально, але варто зазначити, що
args
переданий параметр походить зproc_pid_syscall
функція і як така насправді є типом__u64 args
. У системі ARM визначення функції перетворює розмірarg
масив у чотирибайтових елементах з восьми байт (оскількиunsigned long
в ARM це 4 байти), що призводить до того, що вmemcpy
копіюється в 20 байт (плюс 4 дляargs[0]
).Подібним чином, для i386, де
unsigned long
це всього 4 байтиargs
перші 24 байти аргументу записуються, а решта 24 байти залишаються цілими.В обох випадках, якщо озирнутися на
proc_pid_syscall
функція.У той час як в 32-розрядному ARM та i386 ми копіюємо лише 24 байти в
args
масив, рядок формату закінчується читанням 48 байт файлуargs
матриця, оскільки%llx
Рядок формату становить вісім байт у 32-розрядних та 64-розрядних системах. Отже, 24 байти неініціалізованої пам'яті купи в кінцевому підсумку отримують вихід, що може призвести до обходу KASLR.
Дослідники стверджують, що ця атака "неможливо віддалено виявити в мережі" тому що це читання із законного файлу операційної системи Linux. "При правильному використанні хакер може скористатися цією витоком інформації для успішного використання інших невідпрацьованих вразливостей Linux", - говорить Cisco.
У зв'язку з цим нещодавно Google заявив:
“Вади безпеки пам’яті часто загрожують безпеці пристроїв, особливо програм та операційних систем. Наприклад, у мобільній операційній системі Android, яка також підтримується ядром Linux, Google заявляє, що більше половини вразливостей системи безпеки, усунених у 2019 році, були результатом помилок безпеки пам'яті.
Останнє, але не менш важливе Рекомендується оновити версії 5.10-rc4, 5.4.66, 5.9.8 ядра Linux, оскільки Ця вразливість була перевірена та підтверджена, що вона може використовувати наступні версії ядра Linux.
В кінці кінців якщо вам цікаво дізнатись більше про це Щодо повідомлення, ви можете перевірити деталі в наступне посилання.