Нещодавно про це з’явилася новина виявили нову вразливість (вже перераховано під CVE-2021-4204) у підсистемі eBPF (для обміну) ...
І справа в тому, що підсистема eBPF не перестала бути великою проблемою безпеки для ядра, тому що протягом усього 2021 року було легко виявлено дві вразливості на місяць, і про деякі з них ми розповідаємо тут, у блозі.
Щодо деталей нинішньої проблеми зазначається, що виявлена вразливість дозволяє драйверу запускатися всередині ядра Linux у спеціальній віртуальній машині JIT, а це, в свою чергу, дозволяє локальному непривілейованому користувачеві отримати підвищення привілеїв і виконати свій код на рівні ядра.
В описі проблеми вони згадують про це вразливість пов'язана з неправильним скануванням переданих на виконання програм eBPF, оскільки підсистема eBPF передбачає допоміжні функції, правильність яких перевіряється спеціальним верифікатором.
Ця вразливість дозволяє локальним зловмисникам збільшити привілеї
вплинуло на встановлення ядра Linux. Зловмисник спочатку повинен отримати
можливість запускати код з низькими привілеями на цільовій системі
використовувати цю вразливість.Конкретна вада існує в обробці програм eBPF. Питання є результатом відсутності належної перевірки наданих користувачами програм eBPF перед запуском їх.
Крім того, деякі функції вимагають, щоб значення PTR_TO_MEM було передано як аргумент і верифікатор повинен знати розмір пам'яті, пов'язаної з аргументом, щоб уникнути потенційних проблем переповнення буфера.
Тоді як для функцій bpf_ringbuf_submit і bpf_ringbuf_discard, дані про обсяг переданої пам'яті не повідомляються перевіряючому (саме тут починається проблема), якою зловмисник користується, щоб мати можливість використовувати для перезапису областей пам’яті за межами буфера під час виконання спеціально створеного коду eBPF.
Зловмисник може використати цю вразливість підвищити привілеї та виконати код у контексті ядра. Зверніть увагу, що непривілейований bpf вимкнено за замовчуванням у більшості дистрибутивів.
Згадується, що для того, щоб користувач здійснив атаку, користувач повинен мати можливість завантажувати свою програму BPF, і багато останніх дистрибутивів Linux блокують її за замовчуванням (включаючи непривілейований доступ до eBPF тепер заборонено за замовчуванням у самому ядрі, починаючи з версії 5.16).
Наприклад, згадується про вразливість можна використовувати в конфігурації за замовчуванням в дистрибутив, який досі досить використовується і, перш за все, дуже популярний, як він є Ubuntu 20.04 LTS, але в таких середовищах, як Ubuntu 22.04-dev, Debian 11, openSUSE 15.3, RHEL 8.5, SUSE 15-SP4 і Fedora 33, він проявляється, лише якщо адміністратор встановив параметр kernel.unprivileged_bpf_disabled до 0.
Наразі, як обхідний шлях для блокування вразливості, згадується, що непривілейованим користувачам можна запобігти запуску програм BPF, виконавши команду в терміналі:
sysctl -w kernel.unprivileged_bpf_disabled=1
Нарешті, слід зазначити, що проблема з'явилася з ядра Linux 5.8 і залишається невиправленою (включаючи версію 5.16) і тому код експлойта буде відкладено на 7 днів І буде опубліковано о 12:00 UTC, тобто 18 січня 2022 року.
З ним Він призначений для того, щоб дати достатньо часу для доступу коригувальних патчів користувачів різних дистрибутивів Linux в офіційних каналах кожного з них, і як розробники, так і користувачі можуть виправити зазначену вразливість.
Тим, кому цікаво дізнатися про стан формування оновлень з усуненням проблеми в деяких з основних дистрибутивів, слід знати, що їх можна простежити з цих сторінок: Debian, RHEL, SUSE, Fedora, Ubuntu, архіпелаг
Якщо ви є цікаво дізнатися про це більше щодо примітки, ви можете ознайомитися з оригінальною заявою У наступному посиланні.