CVE-2026-42223Nginx UI在2.3.8版本之前存在敏感信息泄露漏洞。GetSettings API接口在读取配置时未正确过滤标记为protected的字段,导致经过身份验证的低权限用户可以获取包括JwtSecret、NodeSecret、OIDC ClientSecret等在内的40多个敏感配置信息。攻击者利用这些secret可伪造令牌、接管账户或冒充集群节点,造成严重安全风险。
该漏洞源于Nginx UI的`api/settings/settings.go`文件中GetSettings处理程序的逻辑缺陷。虽然代码中的敏感结构体字段(如JwtSecret)被标记了`protected:"true"`标签,但该标签仅在写入操作(SaveSettings中的ProtectedFill方法)时生效。然而,在读取操作时,程序直接将整个结构体序列化为JSON返回给用户,忽略了`protected`标签的过滤作用。这导致任何拥有低权限账户的攻击者,只需调用API获取设置,即可读取服务器核心密钥。获取JwtSecret后,攻击者可伪造有效的JWT Token提升至管理员权限;获取OIDC ClientSecret可结合OAuth流程接管用户账户。