csurf NPM包中的CSRF缺陷旨在防止相同的缺陷

寻找低严重性错误的笔测试人员在开源csurf软件中发现了一个更严重的跨站点请求伪造(CSRF)缺陷。当客户要求他们审查渗透测试报告时,英国网络安全公司Fortbridge的研究人员被召来。标记的问题是CSRF cookie缺少安全标记。出于对这一发现的好奇,团队开始挖掘。根据Fortbridge云应用程序安全顾问Adrian Tiron在8月28日发表的一篇博文,该问题最终可追溯到依赖csurf的node.js应用程序。

Csurf是一个旨在允许开发人员通过会话或cookie创建用于CSRF令牌创建和验证的中间件的项目。尽管NPM包的最后一次正式更新是三年前,但它的每周下载量仍约为400000次。

Tiron写道,虽然流行的包旨在防御CSRF,但自上一个版本发布以来,CSRF错误一直潜伏在代码中,影响使用开源包的任何应用程序。

在探索了csurf代码之后,渗透测试人员发现了几个问题。其中包括以明文形式存储在_csrf cookie中的秘密;使用损坏的SHA-1加密算法;默认情况下缺少对cookie的签名检查,以及针对具有不同名称的秘密或GET/POST参数验证标头令牌。

此外,Tiron解释说代码中有一些“奇怪的行为”。例如,该应用程序将接受空的XSRF令牌,并且可以从盐和秘密创建令牌,从而允许攻击者计算自己的CSRF令牌。

通过添加具有相同名称的第二个cookie并通过设置特定的Path属性来强制应用程序使用恶意替代方案,在所谓的cookie抛掷中,团队可以将CSRF令牌标头作为GET传递,从而在此过程中利用软件.

“OSS就像商业软件一样可能存在漏洞,”Tiron说。“依赖OSS的公司应该意识到,它背后的人通常是志愿者,而且通常没有用于安全工具或渗透测试的预算。”

Fortbridge于6月2日向软件包开发人员提交了调查结果。一天后,该问题得到了承认,经过进一步调查,据报道,维护者决定将该软件包标记为已弃用。

“流行的开源库是攻击者的一个很好的目标,因为它们会影响大量包含它的应用程序,”Tiron说。“即使它是开源的,而且据说很多人都在关注它,但事实是,有时缺乏安全技能,或者没有动力去寻找漏洞,因为没有涉及漏洞赏金。”

Tiron总结道:“我们看到,公司在这方面的反应非常激烈(他们只依赖补丁),我们建议他们应该更加主动并进行自己的安全检查。”

发表评论

评论已关闭。

相关文章