## 漏洞关键信息 ### 漏洞描述 - **问题**: UDM 在 Nudm_SDM 的 GET 请求中,如果缺少单个 `single-nssai` 参数,则错误地返回 500 Internal Server Error。 - **原因**: 处理器尝试将空字符串作为 JSON 进行反序列化,而没有检查参数是否存在。 ### 触发步骤 1. 使用 Docker Compose 启动 free5gC。 2. 查找 UDM 组件的 IP 和端口。 3. 如果启用了 OAuth,获取 NudmSDM 服务的有效 Authorization Token。 4. 运行以下命令: ``` curl -v -X GET "http://UDM_IP:UDM_POST/nudm-sdm/v2/fuzzstring/sm-data" -H "Accept: application/json" -H "Authorization: Bearer " ``` ### 预期行为 - 如果参数不存在,服务应正常处理请求而无需单个 `single-nssai` 过滤。 - 如果参数存在但格式错误,应返回 400 Bad Request 状态码。 - 如果参数存在且有效,应适当应用过滤处理请求。 ### 环境 - free5gC 版本: v4.0.0 - 操作系统: Ubuntu 24.04 Server ### 修复方案 - 实现对 `single-nssai` 查询参数的健壮参数验证,添加检查以验证参数是否存在或有效,避免进行 json.Unmarshal 操作。 ### 其他信息 - 存在相关配置文件、PCAP 文件和日志文件供进一步分析。 - 此问题在 free5gC v4.0.0 中观察到,但在最新版本中仍然存在。 - 已通过 pull request #66 解决此问题,并确认修复了 CVE-2025-60633。