# BSF crash on POST /nsbf-management/v1/pcfBindings with invalid ipv4Addr #4400 ## 漏洞概述 BSF 在处理 POST 请求 `/nsbf-management/v1/pcfBindings` 时,如果请求体中包含无效的 `ipv4Addr` 字符串,会导致 BSF 崩溃。 ## 影响范围 - **OpenSGS Release, Revision, or Tag**: v2.7.7 ## 修复方案 BSF 应该拒绝无效的 `ipv4Addr` 输入,并返回正常的 HTTP 响应,而不是崩溃。 ## 复现步骤 ```bash curl --http1.1 --http2-prior-knowledge -m 5 -sS -i \ -X POST http://10.10.33.5/nsbf-management/v1/pcfBindings \ -H 'content-type: application/json' \ -d '{"ipv4Addr":"not-an-ipv4","dom":"internet","snsnal":{"sat":1,"ud":"000001"},"pcfFqdn":"pcf.example.org"}' ``` 然后检查: ```bash docker inspect -f '{{.State.Status}} {{.State.ExitCode}} {{.State.FinishedAt}}' bsf docker logs --since 2020-04-10T17:01:02Z bsf ``` ## 日志 ``` 04/10 17:05:15.235: [core] ERROR: Invalid IPv4 string = not-an-ipv4 04/10 17:05:15.235: [bsf] ERROR: bsf_sess_set_ipv4addr[not-an-ipv4] failed 04/10 17:05:15.235: [bsf] FATAL: bsf_state_operational: Assertion 'sess' failed. [/src/bsf/bsf-sm.c:157] ``` ## 预期行为 BSF 应该拒绝无效的 `ipv4Addr` 输入,并返回正常的 HTTP 响应,而不是崩溃。 ## 实际行为 连接被重置,BSF 进程以代码 139 退出。 ## eNodeB/gNodeB 不需要。 ## UE 型号和版本 不需要。