pam_usb обеспечивает аппаратную аутентификацию для Linux с использованием обычных съемных носителей. До 0.9.1 src/conf.c выделяет кучу памя…
pam_usb обеспечивает аппаратную аутентификацию для Linux с использованием обычных съемных носителей. До 0.9.1 src/conf.c выделяет кучу памяти, пропорциональную n_devices, подсчет, полученный из оценки libxml2 XPath файла конфигурирования, без предварительного обеспечения верхней границы. На 32-битных мишенях (armv7l, i686 - оба перечислены в проекте Makefile) умножение n_devices * sizeof(t_pusb_device) обертывается вокруг size_t, в результате чего xmalloc() получает очень маленький размер. Поскольку xmalloc() вызывает только abort() при возврате NULL, принимается небольшое, но не-NULL распределение, и последующий массив записывает переполнение кучки. Эта уязвимость зафиксирована в 0.9.1.
Переполнение кучи — это условие переполнения буфера, при котором перезаписываемый буфер выделен в области кучи памяти, что, как правило, означает выделение буфера с помощью функции наподобие malloc().
https://cwe.mitre.org/data/definitions/122.html →Открыть в коллекции CWE →Данная атака приводит к выходу целочисленной переменной за допустимый диапазон значений. Целочисленная переменная нередко используется в качестве смещения, например при выделении памяти и т. п. Злоумышленник, как правило, контролирует значение такой переменной и стремится вывести его за допустимые границы. Например, если рассматриваемое целое число инкрементируется сверх максимально допустимого значения, оно может обернуться в очень маленькое или отрицательное число, что повлечёт некорректное поведение. В худшем случае злоумышленник может выполнить произвольный код.
https://capec.mitre.org/data/definitions/92.html →Открыть в коллекции CAPEC →