OpenPrinting CUPS — это система печати с открытым исходным кодом для Linux и других Unix-подобных операционных систем. В версиях 2.4.16 и более ранних в планировщике CUPS (cupsd) существует уязвимость использования после освобождения, когда временные принтеры автоматически удаляются. cupsdDeleteTemporaryPrinters() в Scheduler/printers.c вызывает cupsdDeletePrinter() без предварительного истечения срока действия подписок, которые ссылаются на принтер, оставляя cupsd_subscription_t.dest в качестве висячего указателя на освобожденную память кучи. Висячий указатель впоследствии разыменовывается на нескольких участках кода, что приводит к сбою (отказу в обслуживании) демона cupsd.
Благодаря очистке кучи это можно использовать для выполнения кода.
Показать оригинальное описание (EN)
OpenPrinting CUPS is an open source printing system for Linux and other Unix-like operating systems. In versions 2.4.16 and prior, a use-after-free vulnerability exists in the CUPS scheduler (cupsd) when temporary printers are automatically deleted. cupsdDeleteTemporaryPrinters() in scheduler/printers.c calls cupsdDeletePrinter() without first expiring subscriptions that reference the printer, leaving cupsd_subscription_t.dest as a dangling pointer to freed heap memory. The dangling pointer is subsequently dereferenced at multiple code sites, causing a crash (denial of service) of the cupsd daemon. With heap grooming, this can be leveraged for code execution.
Характеристики атаки
Последствия
Строка CVSS v3.1