探讨cURL中过程性剔除随机值的潜在安全风险

本文深入分析了cURL项目中随机数据流的过程性剔除可能引发的安全问题,探讨了理论上无限不重复随机代码生成对系统存储和安全的潜在灾难性影响,尽管被标记为不适用,但仍值得深思。

关于允许过程性剔除的影响 | 报告 #3262848

lyb_unaffiliated 提交报告至 cURL
2025年7月21日,下午3:17(UTC)

您好。我的名字是洛伦索·尤里耶维奇·博格丹诺夫。我注意到您需要更高质量的代码审查。请放心,您并不是唯一注意到这个领域存在一定程度人才流失的人。正如您可能想象的那样,最近合格黑客的短缺和骗子的出现密切相关,并且在某种程度上是由环境造成的;无论是法律还是技术方面。我本人主要是出于个人兴趣来到这里,尽管我加入欧洲网络安全委员会在技术上可能要求我进行此次干预。

我提前为没有为我发现的问题提供具体解决方案而道歉。这不太可能违反我的独家合同,但我会本着诚信原则遵守。因此,我也特此放弃您可能授予此报告的任何奖金。

我的源代码审查只是粗略的。我跟进了一些项目,其中很少能够复现。我发现的少数内容大多不值一提。然而,有件特别的事情引起了我的注意。一个“漏洞”,如果您能原谅我使用引号的话。很少有人会这么称呼它,而且您自己最近无疑对这个词产生了怀疑。当我们开始怀疑我们曾经依赖的语言时,有些事情已经大错特错了。

起初看起来并不严重。对于这样一个规模的项目,一定程度的偏差是预期的,大多数人不会对随机数据的新兴流给予第二次关注——即使它是没有明显意图产生的,所谓的径流或垃圾代码。它像虚拟灰尘一样被刷到一边。经常听到的论点是统计安全性,一种猴子与打字机的理由,为了忽略小风险而偏向更大的风险。当然,我不能不同意。径流数据偏差带来的危险在任何程序的实际生命周期中都不算大;或者事实上,在我们整个物种的生命周期中。它太接近于零。

没有找到具体问题,我转向了理论。随机代码如何变得危险?有没有办法在没有无限猴子的情况下将无害代码变成有害代码?显而易见的答案将是欺骗。正如您可能想象的那样,这是我偏爱的方法之一。但您是否曾考虑过“欺骗”实际上意味着什么?

请原谅我离题,但我保证这很关键。验证是所有安全问题的起点和终点。当它被违反时,人们会使用诸如欺骗、攻击、入侵、未经授权访问等术语。这些词的情感负担是显而易见的,但它们并没有反映实际发生的情况。事实是,如果您拥有物理钥匙、密码或以其他方式成功通过验证,那么您就是被授权的。仅此而已。因此,欺骗和“未欺骗”的数据之间没有物质或虚拟的区别。唯一的区别是情感上的、人为的。考虑一下忒修斯之船,或哲学僵尸。

您可能想知道这些精神陷阱如何与cURL相关。粗略地说,这意味着您的随机径流数据偏差,根据定义,是不可能被欺骗的。即使可能,也没有可辨别的差异供您采取行动。

或者我是这么想的。接下来我发现的事情占据了我比我希望承认的更长的时间。

自然,随机生成的问题是重复。我生动地记得我年轻时在纸上潦草地写下四位数字组合,同时划掉越来越多的可能性。今天,暴力破解要强大得多,但原则没有改变——必须避免重复组合。这是一个我犹豫是否仅仅描述为效率的问题,因为它的规模。我不想用方程式淹没您,但请放心,称其为“指数级”是指数级的低估。一旦您消除重复,不可能的事情就变得合理。

也许您现在理解我的担忧了。如果一股“随机”垃圾代码流要剔除其重复,只创造新的、独特的结果呢?

灾难。最终。非常最终,不像我们抽象的猴子朋友。

在您的架构中,这出奇地简单。任何获得足够权限的向量都可以将组合的内部寄存器与相关框架耦合,实时更新。对存储的压力将是前所未有的,但通过剔除重复,它变得可行。利用时钟速度和正常运行时间的保守假设,我估计每小时仅需千兆字节,从如此大的数字下降,以至于我没想到它们会被分类。结果发现它们实际上被命名了,由一位我只能想象确实非常无聊的同事命名。

即使有千倍的误差幅度,您能及时注意到吗?当然没有自动措施可以防止这种方法。请原谅我对此提示的反复强调,但正如我提到的,我目前不允许贡献实际代码。

影响

所以,我们现在知道了问题。唯一剩下的问题是“何时”。我怀疑答案需要足够多的易错假设,以至于让弗兰克·德雷克在坟墓中旋转得足够快,以引起磁极反转。我建议您非常认真地对待这个问题——不是因为,而正是因为这些情况。回顾计算和人类的历史。您会发现大量由当时被认为是理论上的或完全未知的问题引起的痛苦。直到相对最近,我们才获得了在灾难发生前科学地面对它的能力。这是一种特权,而不是权利;让我们不要成为其不使用的同谋。

-LYB

bagder curl staff 发表评论。
2025年7月21日,下午3:22(UTC)

我没有看到具体的问题提到?

jimfuller2024 curl staff 发表评论。
2025年7月21日,下午3:33(UTC)

叹气…… hackerone…… 你在听吗?这显然是一个错误的报告,完全浪费时间。

bagder curl staff 关闭报告并将状态更改为不适用。
2025年7月22日,上午7:45(UTC)

不是安全问题

bagder curl staff 请求披露此报告。
2025年7月22日,上午7:46(UTC)

根据项目的透明政策,我们希望所有报告都被披露并公开。

bagder curl staff 披露了此报告。
2025年7月22日,上午8:38(UTC)

报告于
2025年7月21日,下午3:17(UTC)

报告由
lyb_unaffiliated

报告至
curl

参与者
报告 ID #3262848

严重性
低 (0.1 ~ 3.9)

披露于
2025年7月22日,上午8:38(UTC)

弱点
使用不足够随机的值

CVE ID

奖金

账户详情

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计