Уязвимость реализации обработчика ems_pcmcia_remove ядра операционной системы Linux, позволяющая нарушителю вызвать отказ в обслуживании

Уязвимость реализации обработчика ems_pcmcia_remove загружаемого модуля drivers/net/can/sja1000/ems_pcmcia.ko ядра операционной системы Linux связана с разыменованием нулевого указателя. Эксплуатация уязвимости может позволить нарушителю вызвать отказ в обслуживании операционной системы при подключении и отключении устройства EMS CPC-CARD CAN, которое представляется как PCMCIA устройство, при этом выдает EMS CAN сигнатуру отличную от 0xAA55. Это связано с тем, что в функции ems_pcmcia_probe игнорируется ошибка, выдаваемая функцией ems_pcmcia_add_card. При возникновении этой ошибки вызывается функция очищения ресурсов ems_pcmcia_del_card, которая освобождает память и обнуляет указатель pdev->priv. Так как ошибочный код возврата игнорируется в ems_pcmcia_probe и возвращается нуль, при выгрузке драйвера вызывается ems_pcmcia_remove, который повторно вызывает ems_pcmcia_del_card, что приводит к разыменованию нулевого указателя pdev->priv

CVSS v2.0: 4.9