ccs-pykerberos 库中的检查密码不安全问题

问题描述 投票:0回答:1

是否有解决以下问题的解决方法或

kerberos
库的替代方案?

python-kerberos

checkPassword()
方法非常不安全。它执行
kinit
(AS-REQ) 向 KDC 请求给定用户主体的 TGT,并将成功或失败解释为指示密码是否正确:

维护者没有积极响应。

python security kerberos change-password cve
1个回答
0
投票

所以,我们实际上并没有使用该函数,而是使用了该库。当我们扫描项目时,我们会在那里获得 cve,这就是我们想要利用它的原因

那么这是一个完全摆脱 pykerberos 库并将应用程序移植到更现代的东西的好机会,即 python-gssapi 或 pyspnego 模块。

只要不使用 checkPassword 函数,就没有什么害处,但当然,所有这些都确实表明 ccs-pykerberos 库作为一个整体没有维护,可以被替换。

  • 如果您只需要 Kerberos-via-SPNEGO,请使用跨平台的 pyspnego(它在下面使用 sspilib 或 python-gssapi)。

  • 对于更具体的 Kerberos 任务(例如,基于非 SPNEGO 的协议),如果您需要 UNIX GSS-API,python-gssapi 是现代替代方案,而 sspilib 相当于 Windows SSPI。

它们都有不同的界面,所以它不是一个简单的替代品,但通常使用起来更愉快。 (而 pykerberos 基本上是 macOS 中 Objective-C API 的克隆。)

ctx = spnego.client(hostname="foo.example.com",
                    service="HTTP",
                    protocol="negotiate")
token = ctx.step()

最后一个选择是提供您自己的 ccs-pykerberos 副本,然后删除有问题的函数 - pykerberos 此时不会有太大变化。 (毕竟,pykerberos 只是绑定到 libkrb5,所有安全敏感代码都位于外部 libkrb5 库中。)

© www.soinside.com 2019 - 2024. All rights reserved.