据悉,该事宜的起因是一家美国《财富》500 强公司因去年 12 月份的 Apache Log4j 漏洞事宜,而发来了一封电子邮件(该公司或其客户可能正在利用 cURL)讯问一系列问题,以理解 cURL 是否依赖于 Log4j,并哀求 cURL 的作者须在收到这封邮件的 24 小时内尽快、免费地回答。
该邮件原文下方,这家财富 500 强公司(以NNNN代表)还列出了一系列有待 cURL 的作者 Daniel Stenberg 回答的问题:
贵公司是否发生过任何经证明的安全事宜?如果有,哪些运用程序、产品、做事和干系版本受到影响?是否有任何 NNNN 的产品和做事受到影响?NNNN 非公开信息或个人信息是否受到影响?如果是,请立即向 NNNN 供应受影响信息的细节。完成补救方法的韶光表是什么?列出这些步骤,并包括每个步骤的日期。须要 NNNN 采纳什么行动来完成这一补救方法?……收到这封邮件之后,cURL 的作者 Daniel Stenberg 感到十分可笑,由于他从未参与过任何 Log4j 的开拓事情,也便是他和这件事情没有一点儿关系。
但既然邮件里哀求他必须尽快回答,因此他也礼貌而“克制”的做了答复:“只要我们签署了支持条约,我就会立即复书”。同时,他也将对该事宜放在了推特上“吐槽”:
“如果你是一家代价数十亿美元的公司,当你关心 Log4j 的时候,为什么不给那些你从未支付过任何用度的 OSS 作者发邮件哀求他们在 24 小时内免费回答大量信息并出示收到的邮件呢?”
cURL 作者“回怼”:邮件里的内容无知程度令人震荡可能是这件事情真的有点太莫名其妙了, Daniel Stenberg 随后还专门写了一篇博文评价这件事情:
“2022 年 1 月 21 日星期五,我收到了这封电子邮件。我在推特上发了这条,然后离开了。
这封邮件来自一家代价数十亿美元的《财富》500强公司,该公司显然可能会利用包含我的代码的产品,或者他们可能有这样的客户。谁知道呢?
我猜他们这样做是出于法规屈服性的缘故原由,他们“忘却”了他们的开源组件不是由“互助伙伴”自动供应的,他们可以大略地哀求供应这些信息。
我很简短地回答了这封邮件,并表示一旦我们签署了支持条约,我很乐意回答详细信息。
我认为这可能是开源金字塔模式的一个很好的例子,高层的人根本不考虑如何掩护底层。不用担心屋子所在的地面就可以盖屋子。”
......
“这封邮件中显示的无知和无能程度令人震荡。虽然他们乃至没有明确解释他们利用的是什么产品,但我所涉及的任何代码或受版权保护的代码都不会利用 log4j,任何新手或更好的工程师都可以轻松地找到。
在电子邮件的图像版本中,我填写了姓名字段,以便更好地匿名发件人,不才面的文本中,我将其更换为 NNNN。(是的,非常奇怪的是,他们现在向log4j发送要求,显然已经很晚了。)”
在 Daniel Stenberg 的推特和博客帖子中,他删除了该 500 强公司的名字,并给出了情由:我可能有权力见告你他们是谁,但我还是不愿意。(尤其是如果我能与他们签订一份有利的商业条约的情形下)。
cURL 作者强调:与 Log4j 事宜“毫无关系”韶光回到去年 12 月 9 日,Apache Log4j 日志库中创造了一个漏洞。该库常日用于 Java/J2EE 运用程序开拓项目,以及基于 Java/J2EE 的现成软件办理方案的发布者。
Log4j 包括一种搜索机制,可以用来通过格式字符串中的分外语法进行查询。例如,它可以用于通过 $Java:version 等要求 Java 环境版本等各种参数。然后,通过在字符串中指定 jndi 键,搜索机制利用 jndi API。默认情形下,所有要求都利用前缀 java:comp/env/;然而,作者已经实现了在键中利用冒号来利用自定义前缀的选项。这便是漏洞所在:如果 jndi:ldap://is 作为密钥,该要求将发送到指定的 LDAP 做事器(也可以利用其他通信协议,如 LDAP、DNS 和 RMI) 。
因此,由攻击者掌握的远程做事器可能会将工具发送回易受攻击的做事器,从而可能导致在系统中实行任意代码或透露机密数据。攻击者只需通过将该字符串写入日志文件的机制发送一个分外字符串,然后由 Log4j 库处理。这可以通过大略的 HTTP 要求完成,如通过 web 表单、数据字段等发送要求,或利用做事器端日志记录的任何其他类型的交互。
这种薄弱性被认为是过去十年中最主要和最严重的。
对此,cURL 的作者提出了质疑:
cURL(client-URL-request-library:URL-request-library for clients 或 see-URL:see-URL)是一个命令行界面,用于检索打算机网络可访问的资源的内容。资源是利用 URL 指定的,并且必须是软件支持的类型。该软件许可用户创建或修正资源(与 wget 不同),因此可以将其用作 REST 客户端。
cURL 程序实现了用户界面,基于用 C 措辞开拓的 libcurl 软件库。因此,希望在程序中具有网络访问功能的开拓职员可以访问该库。接口已经用多种措辞创建(C++、Java、.NET、Perl、PHP、Ruby…)。
La bibliothque 支持文件、FTP、FTPS、Gopher、HTTP、HTTPS、IMAP、IMAPS、LDAP、LDAP、POP3、POP3、RTSP、SCP、SFTP、SMB、SMB、SMTP、SMTPS、Telnet 等 TFTP 协议。
可以看得出,cURL 开源代码与 Log4j 事宜绝不相关。只管如此,这次事宜里,cURL 的作者 Daniel Stenberg 依然在 Log4j 漏洞的背景下被一家《财富》500强公司联系到了。