【问题标题】:Where can I get a Windows executable for GNU Bison 3.5.4+?我在哪里可以获得 GNU Bison 3.5.4+ 的 Windows 可执行文件?
【发布时间】:2020-07-23 07:02:22
【问题描述】:

在 3.5.4 之前的版本中发现了 bison 中的 CVE

3.5.4 之前的 GNU Bison 允许攻击者造成拒绝服务 (应用程序崩溃)。

是否有适用于 Windows 的 3.5.4+ 可执行文件?

另外,如何使用source code 使windows 可执行?

【问题讨论】:

  • 我真的没有收到那个漏洞通知。 Bison 有一个错误,导致它在某些错误输入时崩溃。 GCC 也有这样的错误。 AFAIK,没有人说过 GCC 中的那些错误是 DoS 漏洞,因为您不允许攻击者在您的机器上运行构建工具。 (如果他们能做到这一点,他们就已经利用了漏洞。)如果构建工具崩溃,那就是一个错误。仅此而已,也没有什么可太激动的了。只是我的 2 美分。
  • 据我了解,该漏洞被引入使用 Bison 编译的二进制文件中。这可能吗?
  • 没有。只有在运行 Bison 时才会出现问题。 (如果它确实影响了 Bison 生成的程序,那么升级 Bison 也无济于事。您的硬盘驱动器中充满了 Bison 生成的程序;更改 Bison 不会改变任何事情。您甚至不需要安装 Bison 来运行这些程序程序。)
  • Anubhav:你用 boson 构建的解析器是安全的。 (除非您自己的代码中存在错误。)构建解析器也是安全的,因为您不会试图利用自己。可能发生的最坏情况是,bison 可能会崩溃而不是构建解析器,但这种情况极不可能发生,即使发生这种情况,所发生的只是 0rogram 在您的一台开发机器上崩溃。
  • 无论如何,如果您的程序员不知道如何从源代码构建野牛,您可以在 linux/unix 机器上运行 bison 9n。将生成完全相同的 C(或 C++)代码。在解析器生成中没有任何平台依赖。

标签: parsing gnu bison flex-lexer yacc


【解决方案1】:

截至今天,有两个关于 Bison 的 CVE,它们都关于 bison 本身(生成器),而不是关于生成的解析器。所以(典型的)用户不必担心这些 CVE。

我已经写信给 MITRE 和 they agreed to clarify the CVEs 以避免混淆。他们现在的内容如下:

CVE-2020-14150

3.5.4 之前的 GNU Bison 允许攻击者造成拒绝服务 (应用程序崩溃)。注意:只有在 Bison 与不受信任的情况下使用时才有风险 输入,并且观察到的错误恰好会导致特定的不安全行为 编译器/架构。错误报告旨在表明崩溃可能 发生在 Bison 本身中,而不是在生成的代码中可能发生崩溃 野牛。

CVE-2020-24240

3.7.1 之前的 GNU Bison 在 lib/obstack.c 的 _obstack_free 中有一个 use-after-free (从 gram_lex 调用)当遇到 '\0' 字节时。注意:存在风险 仅当 Bison 与不受信任的输入一起使用时,并且观察到的错误恰好发生在 导致特定编译器/架构的不安全行为。错误报告是 旨在表明 Bison 本身可能发生崩溃,而不是崩溃可能 发生在 Bison 生成的代码中。

感谢@rici 在这方面的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-21
    • 2011-11-19
    • 2015-08-03
    • 1970-01-01
    • 2011-05-20
    • 1970-01-01
    • 2017-07-03
    相关资源
    最近更新 更多