В начале марта 2020 года специалисты обнародовали информацию о найденной ранее уязвимости в демоне протокола Point-to-Point Protocol Daemon (PPPD) — в нем не менее семнадцати лет существовала ошибка в коде проверки размера поля rhostname. Используя эту ошибку злоумышленник мог отправить пакет с типом EAPT_MD5CHAP, включающий очень длинное имя хоста, не вмещающийся в выделенный буфер, что давало ему возможность перезаписать данные за пределами буфера в стеке и добиться удаленного выполнения своего кода с правами root.
Данная уязвимость получила номер CVE-2020-8597 и ей подвержены все версии pppd с 2.4.2 по 2.4.8 включительно для Debian, Ubuntu, RHEL, Fedora, SUSE, OpenWRT, Arch, NetBSD. Разработчики Ubuntu определили приоритет для устранения этой уязвимости как средний. В Debian эта уязвимость оценена как высокая, а в Debian 8 «Jessie» эта уязвимость устранена в версии 2.4.6-3.1 + deb8u1. Таже и в Red Hat оценивают ее как высокую. Тем более, что даже если EAP отключен, то все равно можно отправить неаутентифицированный и незатребованный EAP-пакет, чтобы использовать эту уязвимость (в оригинале — if EAP is disabled, an unauthenticated and unsolicited EAP packet can be send to trigger this vulnerability).
В OpenWRT уязвимость CVE-2020-8597 устранена в версиях: OpenWrt master 2020-02-20 reboot-12255-g215598fd0389, OpenWrt 19.07 2020-02-20 v19.07.1-17-g6b7eeb74dbf8 и OpenWrt 18.06 2020-02-20 v18.06.7-6-gcc78f934a946.
Также уязвимость CVE-2020-8597 затрагивает некоторые решения Cisco, например, CallManager, Sierra Wireless, TP-LINK и Synology, например, в DiskStation Manager (DSM), VisualStation VS960HD и Synology Router Manager (SRM), в которых используется pppd.
В настоящее время на GitHub выложен патч для устранения уязвимости CVE-2020-8597. Вдобавок на GitHub выложен прототип эксплойта для проверки системными администраторами наличия в своих системах данной проблемы с pppd.
fougasse
Интересно, статический анализ помог бы? Вроде ж open source, а такие ошибки пролазят и живут десятилетиями.
Psih
Скорее всего, вон PVS-Studio в своих статьях довольно часто их показывают.
fougasse
Почему же сообщество не воспользовалось хотя-бы cppcheck?
Mur81
Все надеяться, что это уже сделал кто-то другой?
fougasse
Ну хоть не как в проприетарщине, такая, наверное, мотивация и аргументация.