我们将在 curl 8.17.0 中停止支持此功能。确切地说,是 Kerberos 5 FTP。这是我们为 FTP 提供的最后一个 Kerberos 支持。
坏处
2025 年 9 月 16 日,我们收到一份安全报告,该报告准确地指出了 Kerberos FTP 代码中可能存在基于堆栈的缓冲区溢出,这可能允许恶意 FTP 服务器对 curl 造成破坏。
哎呀。真糟糕。
但是等等,它还发现了第二个问题。在引入潜在安全漏洞的同一个提交中(而且还是我自己的提交),我还注入了第二个 bug!
金丝雀错误
第二个漏洞彻底破坏了该功能,导致 Kerberos FTP 无法运行。所以,实际上没有用户会受到第一个漏洞的影响,因为它根本无法正常工作,也没有用户会利用这个漏洞攻击恶意服务器!
当我合并提交时,第二个 bug 没有被检测到,因为我们显然没有测试和持续集成来测试这部分代码。承认这一点让我很痛苦,但 curl 中确实还剩下一些地方没有被测试覆盖,或者测试不够。
我在 2024 年 5 月合并了这段糟糕的代码,从那时起我们已经发布了一年多的版本,由于没有人报告过这个漏洞,我们可以将其作为矿井中的金丝雀,并安全地得出结论,这段时间内没有人使用过这个功能(最近安装了 curl 的情况下)。如果他们用过,他们也没有告诉我们,我不认为这种情况会发生。
没有用户:没有代码
由于这次用户无意/巧妙的检查,我们决定不去修复代码,而是彻底删除。显然,我们不应该支持这段代码,因为 A) 它没有被使用;B) 它没有在测试套件中测试过。或许还有 C) 它是一段奇怪的代码。
再见,Kerberos5 FTP 支持。我们早在2007 年 7 月就引入了它。
我们在 2000 年 9 月至 2013 年 8 月期间为 FTP 提供了 Kerberos4 支持。
作为后续措施,我们还删除了代码库中最后一部分受“Kungliga Tekniska Högskolan”版权保护且遵循BSD-3 许可证的代码。这是唯一一个遵循 BSD-3 许可证的代码。少了一个需要关注的许可证!
致谢
上图是《刻耳柏洛斯与赫拉克勒斯》的裁剪版。蚀刻版画作者是安东尼奥·坦佩斯塔(Antonio Tempesta,意大利佛罗伦萨,1555-1630 年)。
原文: https://daniel.haxx.se/blog/2025/09/19/bye-bye-kerberos-ftp/