CVE-2014-0196

Linux Kernel

ВЫСОКАЯ ВЕРОЯТНОСТЬ

Дата обнаружения

2023-05-12

Официальное описание

Linux Kernel contains a race condition vulnerability within the n_tty_write function that allows local users to cause a denial-of-service (DoS) or gain privileges via read and write operations with long strings.

🛡️
Технический анализ и план устранения

Суть уязвимости

CVE-2014-0196 представляет собой состояние гонки (race condition) в ядре Linux, возникающее в компоненте n_tty_write (драйвер псевдотерминалов TTY). Уязвимость проявляется при одновременной обработке операций записи и чтения длинных строк.

Из-за отсутствия надлежащей блокировки (locking) между процессами, записывающими данные в TTY, и процессом, обрабатывающим эхо-вывод, может произойти переполнение буфера в памяти ядра. Локальный злоумышленник может использовать это для: 1. Вызова отказа в обслуживании (Kernel Panic/DoS). 2. Повышения привилегий до уровня суперпользователя (root) путем перезаписи структур данных ядра.

Как исправить

Основным способом устранения является обновление ядра Linux до версии, в которой исправлена логика блокировок в подсистеме TTY.

  1. Обновите списки пакетов репозитория:
sudo apt-get update

  1. Установите последние доступные обновления безопасности для ядра (для Debian/Ubuntu):
sudo apt-get upgrade linux-image-generic

  1. Для систем RHEL/CentOS используйте менеджер пакетов yum:
sudo yum update kernel

  1. После обновления необходимо перезагрузить систему для инициализации нового ядра:
sudo reboot

  1. Проверьте версию ядра после перезагрузки (исправление включено в версии 3.14.3+, 3.10.40+, 3.4.90+, 3.2.58+):
uname -r

Временные меры

Если немедленное обновление ядра и перезагрузка невозможны, рекомендуется ограничить доступ к системе и минимизировать риски:

  1. Ограничьте доступ к системе для недоверенных локальных пользователей, так как уязвимость требует возможности запуска произвольного кода локально.

  2. Используйте системы принудительного контроля доступа (MAC), такие как SELinux или AppArmor, чтобы ограничить возможности эксплуатации, хотя это не гарантирует полную защиту от данной специфической ошибки ядра.

  3. В критических случаях, где TTY не используется для интерактивного ввода, можно рассмотреть возможность настройки параметров терминала, однако это редко является практичным решением и полноценный патч ядра остается единственным надежным методом устранения.