此前我们报导了 Unicode 算法漏洞“Trojan Source”几乎影响所有编程语言,利用 Unicode 的控制字符,可对程序的源代码进行重新排序,从而在编译时产生另一种结果。但即将发布的 GCC 12 编译器版本有一个新的警告,可以帮助指出源代码中可能存在的 Trojan Source 攻击。
GCC 12 添加了 -Wbidi-chars 警告标志,用于检测涉及 Unicode 控制字符的 Trojan Source 攻击。此外还有一个新的默认开启的标志,用于 GCC 诊断以转义非 ASCII 字符,以帮助指示控制字符问题。新的 -Wbidi-chars 选项已准备好用于 GCC 12,应该会在 4 月左右以 GCC 12.1 的形式稳定发布。
此外,红帽技术人员 David Malcolm (曾参与 GCC 编译器对抗 Trojan Source 攻击的技术开发),在上周写了一篇博客,详细介绍了 Unicode 算法漏洞“Trojan Source” 的实现原理,以及 GCC 12 这个新的预防警告 -Wbidi-chars 如何生效。
发表评论