Entry № 842
空指针解引用
空指针解引用 是什么?
空指针解引用程序通过空(或无效)指针进行读写,通常导致进程崩溃,某些情况下还可被用于实际利用。
空指针解引用(CWE-476)发生在代码访问了从未初始化、释放后被置 NULL,或调用失败却未检查返回值的指针。在多数现代系统上会触发段错误使进程崩溃,从而形成拒绝服务问题。在某些受限环境中(早期 Linux 内核中零地址可被映射、嵌入式无 MMU 系统、部分 JIT 编译器)空指针解引用可以被转化为内存破坏原语。防御措施包括严格的空值检查、语言层面的特性(Optional/Maybe、不可空引用)、静态分析、基于 Sanitizer 的测试,以及操作系统控制(如 mmap_min_addr,禁止映射低地址)。
● 示例
- 01
因缺失可选请求头而崩溃的 Web 服务器。
- 02
mmap_min_addr 为 0 时,Linux 内核中可被利用的历史空指针解引用漏洞。
● 常见问题
空指针解引用 是什么?
程序通过空(或无效)指针进行读写,通常导致进程崩溃,某些情况下还可被用于实际利用。 它属于网络安全的 漏洞 分类。
空指针解引用 是什么意思?
程序通过空(或无效)指针进行读写,通常导致进程崩溃,某些情况下还可被用于实际利用。
如何防御 空指针解引用?
针对 空指针解引用 的防御通常结合技术控制与运营实践,详见上方完整定义。
空指针解引用 还有哪些其他名称?
常见的别称包括: 空解引用。