Знайшов помилку в ядрі AF_PACKET і видалив прокручуваний текст у консолі

Останнім часом ще одне питання було розкрито в підсистемі AF_PACKET Ядро Linux, яке дозволяє непривілейованому локальному користувачеві запускати код як root або вийдіть із ізольованих контейнерів, якщо вони мають root-доступ.

В опублікованій інформації згадується, що для створення сокета AF_PACKET та використання вразливості потрібен повноваження CAP_NET_RAW.

Однак зазначається, що користувач без привілеїв може отримати дозвіл вказано у контейнерах, створених у системах із увімкненими просторами імен користувачів.

Наприклад, простори імен користувачів включені за замовчуванням в Ubuntu та Fedora, але не включені в Debian та RHEL. Тоді як в Android процес медіасервера має право створювати сокети AF_PACKET, за допомогою яких вразливість може бути використана.

Про вразливість у AF_PACKET

Вразливість присутня у функції tpacket_rcv і це спричинено помилкою в обчисленні змінної netoff.

Зловмисник може створити умови під яким напише значення менше, ніж maclen у змінній netoff, яка спричинить переповнення обчислюючи "macoff = netoff-maclen", а потім роблячи це, може неправильно встановити покажчик на буфер для вхідних даних.

В результаті, зловмисник може ініціювати запис від 1 до 10 байт в область за межами виділеного буфера. 

Прорахунок присутній у ядрі з липня 2008 року, тобто у всіх поточних ядрах, однак відома на сьогодні можливість використовувати його для запису в область за межами виділеного буфера (вразливість), імовірно, була введена в лютому з 2016 року (з ядра версії 4.6-rc1 та пізніші), з розвитком підтримки virtio_net.

Що стосується вирішення проблеми, воно все ще доступне як патч. На додаток до того, що, з іншого боку, спостерігається, що розробляється експлойт, що дозволяє отримати кореневі права на систему.

Для тих, кому цікаво дізнатися, чи виправлення вже доступне для їх розповсюдження, вони можуть відстежувати появу оновлень пакетів у різних дистрибутивах на наступних сторінках: Ubuntu, Fedora, SUSE, Debian, RHEL, арка.

Підтримку прокрутки тексту для текстової консолі видалено

З іншого боку, говорячи про ядро ​​Linux, також було оголошено, що код прокрутки тексту був вилучений з реалізації текстової консолі в ядрі Linux (CONFIG_VGACON_SOFT_SCROLLBACK).

Код було видалено через наявність помилок, яку не було кому виправити через відсутність менеджера, який би контролював розробку vgacon.

І це кілька місяців тому у vgacon було виявлено та виправлено уразливість (CVE-2020-14331), що може спричинити переповнення буфера через відсутність належних перевірок наявності пам'яті в прокручувальному буфері. Уразливість привернула увагу розробників який організував нечіткі тести коду vgacon у syzbot.

Крім того подальші перевірки виявили ще кілька питань Подібне в коді vgacon, а також проблеми реалізації програмного забезпечення для витіснення в контролері fbcon.

На жаль, код проблеми довгий час залишався без нагляду, імовірно через те, що розробники перейшли на використання графічних консолей і текстові консолі перестали використовуватися (люди продовжують використовувати консолі vgacon і fbcon, але вони не були основним інтерфейсом ядра протягом десятиліть, і функції поширювали обидві такі як вбудований у контролер прокрутка (Shift + PgUp / PgUp), ймовірно, низьким попитом).

У зв'язку з цим, Лінус Торвальдс вирішив не намагатися зберегти код незатребуваний, але просто видаліть його.

Нарешті, згадується, що якщо є користувачі, яким потрібна ця функціональність, код для підтримки прокрутки в консолі буде повернутий до ядра, як тільки буде готовий супровідник або хто хоче взяти на себе відповідальність за самостійне обслуговування. руки, тобто єдиний, хто хоче присвятити цьому час.


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: AB Internet Networks 2008 SL
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.