这家名为微软的公司运营着这个名为 NuGet 的软件包管理器,他们托管了一个 cURL 软件包……,…… 这个软件包一直在欺骗用户下载它,它已经过时、陈旧、满是漏洞,应该被移除,但我无法反馈此事或让他们对此采取什么行动。
这是 cURL 作者 Daniel Stenberg 近日发布的推文节选,直指微软不作为。
抱歉讲太快,现在让我们倒带 <<<<<<<<< 重新梳理一下故事的来龙去脉。
cURL 项目的作者 Daniel Stenberg 对项目的维护非常积极,经常使用 cURL 的用户应该也清楚它的大致更新周期。cURL 差不多每两个月就会发布一个版本更新,目前 cURL 的最新版本为今年二月中旬发布的 7.88。
但你可以想象到目前 NuGet 包管理器当中的 cURL 版本到底有多旧吗?5、4、3、2、1,答案是 cURL 7.30,最后一次更新时间还停留在 2013 年 6 月。
版本太老旧也不是 Daniel Stenberg 发布推文抨击微软的主要原因,最主要的原因在于 Daniel Stenberg 向 NuGet 反馈后,NuGet 一直没有帮助他解决这个问题。
Daniel Stenberg 表示,当他向 NuGet 报告了这个问题后,NuGet 以为 Daniel Stenberg 是在寻求支持,所以表示他们不对个别软件包提供支持,让 Daniel Stenberg 使用详细信息页面上的 “联系” 链接直接联系软件包的所有者(上传这个包的用户,NuGet 上的软件包是由志愿者构建和提供的,Daniel Stenberg 无法亲自提供更新或 “接管” 此软件包)。
NuGet 上的 cURL 的所有者叫 coapp,Daniel Stenberg 在尝试联系后,并没有得到任何回应。因此 Daniel Stenberg 就想着能不能以存在漏洞为由报告这个问题(由于版本太老,很多漏洞都是公开可查询到的),让他们从 NuGet 上删除这个包呢。但 NuGet 表示他们只接受微软产品的这种报告,对于其他非微软的软件包都需要联系软件包的所有者。
NuGet 不帮忙处理,所有者也联系不上,那么这件事情就陷入了死胡同,无奈之下 Daniel Stenberg 就发布了多条推文,公开了此事。
网友的力量还是强大的,在网友的帮助下经过几次 @,微软的开发者,也是领导 nuget.org 工程团队的负责人 Joel Verhagen 看到并回复了 Daniel Stenberg。
原来在 Daniel Stenberg 上报这个问题后,NuGet 团队就注意到了这个特殊情况,并与这个软件包的所有者取得了联系,目前这个所有者已经参与进来了。只不过 NuGet 在这个过程中都没有通知 Daniel Stenberg,并承认这是他们的失误,后续他们将通过电子邮件进行联系。
目前 NuGet 已经暂时撤下了 cURL,用户无法再搜索到 cURL,即便你知道项目详细的链接,现在访问 cURL 的页面也会展示明显的警告,让用户暂时不要使用 cURL。
暂时还不清楚他们是否会更新 cURL,也不清楚会在何时重新上架 NuGet。不过 cURL 并非个例,NuGet 中还有许多其他软件包也面临着类似的情况,NuGet 也需要改变现有的机制,总不能让每个软件包的真正作者都来 Twitter 上抱怨吧。