CVE-2026-0622Open5GS是一个开源的5G核心网络实现,其WebUI组件存在严重的安全漏洞。该漏洞源于开发过程中使用了硬编码的JWT签名密钥"change-me",当环境变量JWT_SECRET_KEY未设置时,WebUI会默认使用这个弱密钥对用户令牌进行签名。JWT(JSON Web Token)是一种常用的身份认证机制,攻击者如果获取了签名密钥,就可以伪造任意用户的身份令牌,从而绕过身份认证系统。此漏洞无需任何特殊权限即可利用,攻击者只需通过分析开源代码或发送测试请求即可获取硬编码密钥。成功利用此漏洞后,攻击者可以获取WebUI的管理员权限,进而可能控制整个5G核心网络的配置和运行状态。由于Open5GS广泛应用于5G网络测试环境、研究项目和部分生产环境,此漏洞可能影响大量使用该组件的组织和个人。
Open5GS WebUI使用Express.js框架构建,默认配置下使用硬编码字符串"change-me"作为JWT_SECRET_KEY的值。当应用程序启动时,如果检测到JWT_SECRET_KEY环境变量未设置或为空,就会回退到使用这个默认密钥。JWT的工作原理是通过签名验证消息发送者的身份,接收方使用共享密钥验证签名是否有效。在正常情况下,密钥应该是随机生成的强密码,只有服务器端知道。然而,Open5GS的硬编码密钥使得任何人都可以通过以下步骤伪造令牌:1)从开源代码或运行时环境获取密钥"change-me";2)使用HS256算法创建新的JWT,设置任意的用户名和权限声明;3)将伪造的令牌发送给WebUI服务器。由于服务器使用相同的硬编码密钥验证签名,伪造令牌会被接受。攻击者可以设置admin角色声明获取管理权限,或设置其他用户身份冒充他人。此漏洞属于OWASP Top 10中的"A02:2021-Cryptographic Failures"类别,与不安全的密钥管理直接相关。