安全客 2024年12月17日
CVE-2024-45337:Golang 密码库存在漏洞,存在授权绕过的风险
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

Golang密码学库中发现一严重安全漏洞CVE-2024-45337,源于对ServerConfig.PublicKeyCallback函数的滥用,可能导致授权绕过。该函数本应验证客户端公钥,但文档表明其不保证实际验证密钥。攻击者可提交多个公钥误导服务器,或使用不同方法验证,造成授权错位。修复方案包括升级至golang.org/x/crypto v0.31.0及更高版本,正确使用权限字段,并审查第三方库。

⚠️ **漏洞根源:** `PublicKeyCallback`函数不保证实际验证密钥,应用程序若依赖此函数中密钥顺序或内容做授权决策,则易受攻击。

🔑 **攻击方式:** 攻击者可提交多个公钥误导服务器,或在验证公钥后使用其他方式验证,导致授权错位。

🛡️ **缓解措施:** 升级至`golang.org/x/crypto v0.31.0`或更高版本,强制使用最后提交的公钥验证;正确使用权限字段存储验证相关数据;审查第三方库避免滥用`PublicKeyCallback`。

🧐 **第三方库审查:** 使用与`golang.org/x/crypto`交互的第三方库,需仔细审查其文档和实现,以避免`PublicKeyCallback`的滥用。

在 Golang 密码学库中发现了一个严重的安全漏洞,被追踪为 CVE-2024-45337 (CVSS 9.1)。该漏洞源于对 ServerConfig.PublicKeyCallback 函数的滥用,可能导致应用程序和库中的授权绕过。问题根源:PublicKeyCallback 函数旨在允许服务器在 SSH 连接期间验证客户端提供的公钥的真实性。然而,文档明确指出,该回调函数并不保证用于身份验证的实际密钥。当应用程序错误地依赖于提交给 PublicKeyCallback 的密钥顺序或内容来做出授权决定时,就会产生该漏洞。攻击者可以通过以下方式利用这一漏洞:提交多个公钥: 攻击者可以发送一系列公钥,意图误导服务器。使用不同的密钥进行验证: 即使服务器验证了特定的公钥,攻击者也可以使用完全不同的方法(如密码、键盘交互式)进行验证。所提供的密钥与实际验证方法之间的这种错位可能会诱使易受攻击的应用程序授予未经授权的访问权限。缓解措施:升级至 golang.org/x/crypto v0.31.0 或更高版本: 该版本包含一个关键修复,可在成功的公钥身份验证过程中强制使用传递给 PublicKeyCallback 的最后一个密钥。正确利用权限: 应用程序应利用身份验证回调中的权限字段来存储和检索与身份验证尝试相关的数据。避免根据外部状态或提交给 PublicKeyCallback 的密钥顺序做出授权决定。审查第三方库: 如果使用与 golang.org/x/crypto 交互的第三方库,请仔细查看其文档和实现,以了解是否存在滥用 PublicKeyCallback 和权限字段的可能性。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Golang 密码学 安全漏洞 CVE-2024-45337 PublicKeyCallback
相关文章