剖析cURL中过程式剔除机制的安全隐患与理论漏洞

本文探讨了cURL项目中过程式剔除机制可能引发的安全风险,分析了随机数据流中重复剔除的理论漏洞及其潜在影响,尽管被标记为不适用,但仍值得深入思考。

报告 #3262848 - 关于允许过程式剔除的影响

时间线

lyb_unaffiliated 向 curl 提交了一份报告。
12天前

菜单 菜单

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

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

我的源代码审查只是粗略的。我跟进了一些项目,但很少能够复现。我发现的绝大部分内容都不值得一提。然而,有某个特定的东西引起了我的注意。一个“漏洞”,如果您允许我使用引号的话。很少有人会这么称呼它,而且您自己最近无疑对这个词也变得怀疑。当我们开始怀疑我们曾经依赖的语言时,某些事情已经变得非常错误。

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

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

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

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

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

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

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

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

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

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

影响

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

-LYB

bagder curl staff 发表了一条评论。
12天前

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

jimfuller2024 curl staff 发表了一条评论。
12天前

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

bagder curl staff 关闭了报告并将状态更改为不适用。
12天前

菜单 菜单
不是安全问题

bagder curl staff 请求披露此报告。
12天前

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

bagder curl staff 披露了此报告。
12天前

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

报告者
lyb_unaffiliated

报告至
curl

参与者
报告 ID #3262848

不适用

严重性
低 (0.1 ~ 3.9)

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

弱点
使用不足够随机的值

CVE ID

奖金

账户详情

看起来您的 JavaScript 被禁用了。要使用 HackerOne,请在浏览器中启用 JavaScript 并刷新此页面。

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