最后维护者
Geomys是一个由专业开源维护者组成的组织,专注于一系列关键的Go项目组合。例如,我们负责Go标准库密码学模块三分之二的维护工作,我们提供上游Go密码学模块的FIPS 140-3验证,并资助x/crypto/ssh和staticcheck等项目的维护。
我们的保留客户与我们合作既是为了获得我们的专业知识,也是确保他们依赖的关键依赖项得到专业维护。除了我们的项目组合外,当关键的安全相关Go项目无人维护时,我们有时会充当最后维护者的角色。
最近,我们两次担任了这一非正式角色:
- 当维护者选择退出时,我们接管了流行的bluemonday HTML净化器的维护工作;
- 在为原本似乎无人维护的gorilla/csrf库构建替代升级路径时,我们在标准库中引入了一个经过仔细研究的新实现,并创建了一个直接替换的包,因为我们在原始库中发现了一个安全漏洞。
由于我们的保留协议提供了可持续的资金支持,我们能够专业地履行这一职责,包括外包外部帮助。我们的客户从我们的维护工作中受益,并可以直接指出需要帮助的项目。
bluemonday
bluemonday是Go生态中最流行的HTML净化器,被数千个应用程序和库用于在将用户生成的标记包含到网页之前进行清理。不用说,这是一个安全关键的核心组件。
2023年底,唯一的前任维护者宣布,他们的新职业环境与志愿开源工作不兼容,他们正在寻找负责任的方式来结束维护。Geomys提出接管维护工作。
在2024年期间,Geomys与维护者合作,在原位置接管了项目,避免了废弃带来的破坏,并保证了未来安全更新的自然路径。
由于我们日常从事Go和开源工作,对Geomys的边际负担很小,但对社区来说,知道安全报告将由能够适当优先处理的专业人员处理,具有巨大价值。
除了处理安全和关键问题外,我们还在讨论以合同方式聘请领域主题专家,以提高边缘情况下的安全性,并进一步使库面向未来。同样,我们可以这样做是因为我们通过保留协议获得了可持续的资金支持。
这一结果受到了原维护者的欢迎。最后维护者的存在不仅对生态系统的消费者有益,也减轻了志愿维护者的压力,否则他们有时会出于责任感承担不可持续的负担。
gorilla/csrf
gorilla/csrf是一个极其流行的跨站请求伪造保护中间件。
2024年12月,Patrick O’Doherty发现该库意外地容易受到无方案同站跨源请求伪造攻击。这意味着https://admin.example.com可能受到https://blog.example.com的攻击,或者更糟的是http://foo.example.com的攻击。除非使用包含子域的HTTP严格传输安全,否则任何网络攻击者都可以控制后者并发动攻击。这一问题在1月份公开修复,但新版本(v1.7.3)和公告(CVE-2025-24358)直到4月才发布。
受到Patrick发现的警示,我们调查了该库,并发现了另一个问题:如果应用程序使用TrustedOrigins选项,网络攻击者再次可以发动CSRF攻击。我们于2025年4月18日向项目报告了这一问题;然而,项目未予确认,且似乎无人维护。(我们现公开披露此事,因为常规的90天期限已过,且下面列出的所有升级路径自昨天Go 1.25发布起已可用。)
我们尝试通过电子邮件和Slack联系过去的维护者,提出接管项目,但不幸的是从未收到回复。因此,我们开始寻找其他解决方案来填补生态系统中这一关键的CSRF空白。
首先,我们研究了CSRF对策的现状,并咨询了主题专家,包括一些相关Web规范作者。我们发现现代浏览器在请求头中提供了安全元数据,使得可以在没有任何令牌或密钥的情况下拒绝跨源请求,从而带来更好的开发者体验、更好的安全性和更少的误报!该调查结果已公开,供其他可能受益的项目参考。
其次,我们提出并在net/http标准库包中引入了一个新的CrossOriginProtection中间件。它作为Go 1.25的一部分于昨天发布,我们建议所有gorilla/csrf用户考虑切换到它。我们相信标准库解决方案将安全地服务于未来的生态系统。
对于尚未准备好升级到Go 1.25的应用程序,我们在filippo.io/csrf提供了一个几乎相同的中间件作为Go模块。
最后,我们为整个gorilla/csrf API创建了一个直接替换包,使用新的对策:filippo.io/csrf/gorilla。我们试图最小化替换的任何副作用,例如通过返回随机值来代替现在不再使用的令牌,但我们邀请您阅读包文档。
同样,所有这些都是由Geomys保留合同启用并作为其一部分。如果您所在的公司对Go生态系统有关键依赖,请考虑通过hi@geomys.org联系我们。无论如何,您可能还想在Bluesky上关注@filippo.abyssdomain.expert或在Mastodon上关注@filippo@abyssdomain.expert。
图片
既然我们谈到Geomys,这里回顾一下……去年?真的只是去年吗?无论如何,我们赞助了GopherCon US并设立了一个展位,主要是用我收藏的gopher和徽章来装饰它。
Geomys由Smallstep、Ava Labs、Teleport、Tailscale和Sentry资助。以下是其中一些公司的感言!
Teleport — 在过去的五年中,攻击和入侵已从传统的恶意软件和安全漏洞转向通过社会工程、凭据盗窃或网络钓鱼来识别和入侵有效用户账户和凭据。Teleport Identity旨在通过访问监控消除弱访问模式,通过访问请求最小化攻击面,并通过强制访问审查清除未使用的权限。
Ava Labs — 我们Ava Labs作为AvalancheGo(与Avalanche网络交互最广泛使用的客户端)的维护者,认为开源密码协议的可维护和开发对于区块链技术的广泛采用至关重要。我们很自豪通过持续赞助Filippo及其团队来支持这项必要且有影响力的工作。