本周,OpenSSL发布了一个影响开源项目的高严重性拒绝服务(DoS)漏洞的修复程序。

  U.S. DHS 网络安全局和基础设施安全局已经警告他们的网络安全管理人员立即升级他们的安全设施。




  由SSL证书名称验证中的空指针引起


  CVE-2020-1971跟踪的高严重性漏洞源于空指针取消引用问题。

  正如X.509标准所指定的,SSL证书在不同的地方使用GeneralName类型来表示不同类型的名称。

  GeneralName对象可以是IP地址、DNS名称、URL标识符,甚至可以是“EDIPartyName”

  在验证X.509ssl证书时,OpenSSL使用GENERAL_NAME_cmp函数来比较两个GeneralName字段。

  但是,如果要比较的两个字段都包含EDIPartyName,则OpenSSL可能会由于空指针取消引用错误而崩溃。

  例如,OpenSSL advisory指出,当OpenSSL验证证书的CRL(证书吊销列表)分发点字段时,使用GENERAL_NAME_cmp函数的一个地方。

  大多数SSL证书本身都包含所谓的CRL分发点字段。

  此字段指定证书颁发者发布可由客户端检查的已吊销证书列表(如web浏览器)的位置。

  回想一下,GenericName不必是URL,也可以指定为IP地址或EDIPartyName。

  如果攻击者能够创建一个包含EDIPartyName字段的SSL证书来指定CRL详细信息,以及恶意CRL本身,则在比较这两个字段时,GENERAL_NAME_cmp函数可能会触发应用程序崩溃并导致拒绝服务(DoS)情况。

  但是,这只是利用此漏洞的方法之一。

  OpenSSL中使用GENERAL_NAME_cmp函数的另一个地方是将时间戳响应令牌签名者与时间戳授权名称进行比较。


  CISA敦促管理员升级


  Google的David Benjamin于2020年11月9日报告说,此漏洞会影响OpenSSL 1.0.2和1.1.1(1.1.1i之前)的所有版本。

  在对错误进行分析之后,OpenSSL的Matt Caswell在1.1.1i版本中部署了一个修复程序。

  2014年,OpenSSL中严重的心血漏洞在野外猖獗的攻击之后成为头条新闻。

  这也许就是为什么CISA发布了CVE-2020-1971的安全建议,促使服务器管理员立即升级他们的OpenSSL实例。

  OpenSSL 1.1.1的用户可以升级到1.1.1i版本。对openssl1.0.2及更早版本的产品支持已经过时,因此只有高级用户才可以获得补丁的1.0.2x版本。一般用户应升级到1.1.1i版本。


  【参考来源:bleepingcomputer】