#undefined-behavior

共收录 1 条相关安全情报。

← 返回所有主题
👥 作者: Jukka Ruohonen, Krzysztof Sierszecki

本文通过实证实验评估了C和C++程序中未定义行为(UB)在典型Linux桌面使用中的实际发生情况。未定义行为是C/C++语言中特有的概念,指程序使用了语言标准未作任何要求的错误构造(如整数溢出)。研究者利用编译器内置的未定义行为消毒剂(UBSan)在运行Debian Linux的桌面环境中进行了系统实验。实验包含59个简单的桌面使用任务(如登录、打开文件、浏览网页等),覆盖了32个用C/C++编写的程序和库。结果共生成近11,000个独特的未定义行为警告,其中绝大部分与Mesa图形库相关,并通过图形用户界面交互触发。仅仅登录GNOME桌面环境就产生了超过500个独特警告。在所有警告中,虚表指针相关的未定义行为占绝大多数,且关联的堆栈跟踪通常较长。此外,实验还观察到不同程序和库之间的UB分布差异,以及某些UB类型(如浮点运算、空指针解引用)的相对频率。本文的贡献在于为C/C++未定义行为的实证文献提供了真实世界桌面使用场景下的量化数据,突显了UB在实际软件中普遍存在的现象,对编译器设计、程序分析和安全加固具有参考价值。

💡 推荐理由: 本文通过真实桌面使用实验揭示了C/C++未定义行为在常用软件中普遍存在,提醒开发者忽视UB可能导致不可预测的安全漏洞,并推动社区重视静态/动态分析工具的应用。

🎯 建议动作: 建议编译器和安全团队关注UB检测工具(如UBSan)的集成,并在CI流程中启用以尽早发现潜在问题。

排序因子: 来自 arXiv 其他板块 (+2) | Community 数据源 (+1) | LLM 评分加成 (+0.4)