Критические уязвимости в Netatalk, приводящие к удалённому выполнению кода

В Netatalk, стеке с реализацией сетевых протоколов AppleTalk и Apple Filing Protocol (AFP), выявлено шесть удалённо эксплуатируемых уязвимостей, позволяющих организовать выполнение своего кода с правами root через отправку специально оформленных пакетов. Netatalk используется многими производителями устройств хранения данных (NAS) для обеспечения обмена файлами и организации доступа к принтерам c компьютеров Apple, например, применялся в устройствах Western Digital (проблема решена удалением Netatalk из прошивок WD). Netatalk также входит в состав многих дистрибутивов, включая OpenWRT (удалён, начиная с ветки OpenWrt 22.03), Debian, Ubuntu, SUSE, Fedora и FreeBSD, но не используется по умолчанию. Проблемы устранены в выпуске Netatalk 3.1.13.

Выявленные проблемы:

  • CVE-2022-0194 – отсутствие корректной проверки размера внешних данных в функции ad_addcomment(), перед копированием в фиксированный буфер. Уязвимость позволяет удалённому атакующему без прохождения аутентификации добиться выполнения своего кода с правами root.
  • CVE-2022-23121 – некорректная обработка ошибок в функции parse_entries(), возникающих при разборе записей AppleDouble. Уязвимость позволяет удалённому атакующему без прохождения аутентификации добиться выполнения своего кода с правами root.
  • CVE-2022-23122 – отсутствие в функции setfilparams() корректной проверки размера внешних данных, перед их копированием в фиксированный буфер. Уязвимость позволяет удалённому атакующему без прохождения аутентификации добиться выполнения своего кода с правами root.
  • CVE-2022-23124 – отсутствие корректной проверки входных данных в методе get_finderinfo(), приводящее к чтению из области за пределами выделенного буфера. Уязвимость позволяет удалённому атакующему без прохождения аутентификации добиться утечки сведений из памяти процесса. В сочетании с другими уязвимостями ошибка также может быть использована для выполнения кода с правами root.
  • CVE-2022-23125 – отсутствие проверки размера при разборе элемента “len” в функции copyapplfile(), перед копированием данных в фиксированный буфер. Уязвимость позволяет удалённому атакующему без прохождения аутентификации добиться выполнения своего кода с правами root.
  • CVE-2022-23123 – отсутствие проверки поступающих извне данных в методе getdirparams(), приводящее к чтению из области за пределами выделенного буфера. Уязвимость позволяет удалённому атакующему без прохождения аутентификации добиться утечки сведений из памяти процесса.
Release. Ссылка here.