4 days ago
- 在32位i386架构的OpenBSD 6.3系统中,用户进程可利用一个允许访问I/O端口的安全漏洞导致操作系统崩溃。
- 该问题可追溯至Intel 80386处理器后期开发阶段添加的I/O权限位图(IOPB)设计缺陷。
- IOPB本意是实现基于任务的I/O端口访问控制,但因文档不完善和实现缺陷未能达到预期效果。
- OpenBSD与NetBSD在任务状态段(TSS)处理中存在漏洞,导致非预期的I/O端口访问。
- OpenBSD在2000年的修复方案意外扩大了IOPB范围,使得更多端口可被访问。
- 2016年OpenBSD移除了IOPB相关API,但遗留关键漏洞,用户进程仍可访问大量I/O端口。
- 该漏洞最终在OpenBSD 6.2和6.3版本中通过正确设置TSS界限(排除IOPB区域)得到修复。
- Windows和OS/2等其他操作系统采用不同IOPB处理策略,通常将IOPB偏移量设置在TSS界限之外。
- 这一系列事件凸显了文档缺失、硬件设计复杂性和编程细微错误可能引发的连锁风险。