Разыменование нулевого указателя
Что такое Разыменование нулевого указателя?
Разыменование нулевого указателяОшибка, при которой программа читает или пишет через указатель со значением null (или иным образом некорректным), обычно вызывая аварийное завершение и иногда давая возможность эксплуатации.
Разыменование нулевого указателя (CWE-476) происходит, когда код обращается к указателю, который не был инициализирован, был обнулён после free или возвращён функцией, тихо завершившейся ошибкой. В большинстве современных систем это приводит к segmentation fault и падению процесса, то есть к отказу в обслуживании. В отдельных ограниченных средах — старых ядрах, где нулевой адрес можно мапить, встраиваемых системах без MMU, некоторых JIT-компиляторах — разыменование нуля можно превратить в примитив повреждения памяти. Защита: строгая проверка нулей, возможности языков (Optional/Maybe, нестрогие nullable-ссылки), статический анализ, тестирование с санитайзерами и средства ОС вроде mmap_min_addr, запрещающие маппинг младших адресов.
● Примеры
- 01
Веб-сервер, падающий при отсутствии необязательного заголовка.
- 02
Исторические null-deref-уязвимости ядра Linux, эксплуатируемые при mmap_min_addr = 0.
● Частые вопросы
Что такое Разыменование нулевого указателя?
Ошибка, при которой программа читает или пишет через указатель со значением null (или иным образом некорректным), обычно вызывая аварийное завершение и иногда давая возможность эксплуатации. Относится к категории Уязвимости в кибербезопасности.
Что означает Разыменование нулевого указателя?
Ошибка, при которой программа читает или пишет через указатель со значением null (или иным образом некорректным), обычно вызывая аварийное завершение и иногда давая возможность эксплуатации.
Как защититься от Разыменование нулевого указателя?
Защита от Разыменование нулевого указателя обычно сочетает технические меры и операционные практики, как описано в определении выше.
Какие есть другие названия Разыменование нулевого указателя?
Распространённые альтернативные названия: Null deref.