В поставляемом в ядре Linux драйвере для файловой системы exFAT выявлена уязвимость (CVE-2023-4273), позволяющая при монтировании специально оформленного раздела (например, при подключении вредоносного USB Flash) добиться переполнения стека и выполнения своего кода с правами ядра. Проблема пока устранена в экспериментальном выпуске ядра Linux 6.5-rc5. Проследить за исправлением в дистрибутивах можно на следующих страницах: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.

Отсутствие проверки размера при копировании имени файла в буфер, размещённый в стеке, приводит к переполнению стека ядра в случае задания очень длинного имени файла, превышающего ограничение ФС в 255 символов. Уязвимость присутствует в функции exfat_get_uniname_from_ext_entry, выполняющей реконструкцию длинных имён через цикличное чтение записей с частями имени файла из индекса каталога и слияния полученных частей имени в итоговое длинное имя. Проверка размера в коде exfat_get_uniname_from_ext_entry выполнялась в привязке к каждой записи с частью имени, но не охватывала итоговое имя (например, имя можно разбить на 100 частей и добиться записи в буфер 1500 символов вместо 258).

Выявивший уязвимость исследователь смог подготовить прототип эксплоита, который позволяет повысить свои привилегии в системе. При тестировании в виртуальном машине VirtualBox эксплоит срабатывает в 100% случаев, но при запуске в обычном окружении, работающим поверх оборудования, вероятность срабатывания снижается до примерно 50%. Уязвимость также может быть использована для компрометации ядер, загружаемых в режиме UEFI Secure Boot.

// cc-by opennet.ru
// converted with crypt’s opennet autoreposter <<<

  • deep-purple
    link
    fedilink
    arrow-up
    0
    ·
    3 years ago

    Получится ли зафорсить сей обвиняющий факт?

    • cryptOP
      link
      fedilink
      arrow-up
      0
      ·
      3 years ago

      судя по толерантной новости на опеннете, я первый, кто посмотрел авторство кода

      • Sahas
        link
        fedilink
        arrow-up
        0
        ·
        3 years ago

        получается, это была не бага, а фича…