free5GC CHF has Out-of-Bounds Slice Access that Leads to DoS
free5GC is an open source 5G core network. free5GC CHF prior to version 1.2.2 has an out-of-bounds slice access vulnerability in the CHF `nchf-convergedcharging` service. A valid authenticated request to PUT `/nchf-convergedcharging/v3/recharging/:ueId?ratingGroup=...` can trigger a server-side panic in `github.com/free5gc/chf/internal/sbi.(*Server).RechargePut(...)` due to an out-of-range slice access. In the reported runtime, Gin recovery converts the panic into HTTP 500, but the recharge path remains remotely panic-triggerable and can be abused repeatedly to degrade recharge functionality and flood logs. In deployments without equivalent recovery handling, this panic may cause more severe service disruption. free5GC CHF patches the issue. Some workarounds are available: Restrict access to the `nchf-convergedcharging` recharge endpoint to strictly trusted NF callers only; apply rate limiting or network ACLs in front of the CHF SBI interface to reduce repeated panic-trigger attempts; if the recharge API is not required, temporarily disable or block external reachability to this route; and/or ensure panic recovery, monitoring, and alerting are enabled.
References
- https://github.com/free5gc/free5gc/security/advisories/GHSA-6g43-577r-wf4x x_refsource_CONFIRM
- https://github.com/free5gc/free5gc/issues/864 x_refsource_MISC
- https://github.com/free5gc/chf/pull/61 x_refsource_MISC
- https://github.com/free5gc/chf/commit/55af766f321a00afa978e806548c96f8a7d2433e x_refsource_MISC
Affected products
- ==< 1.2.2
Matching in nixpkgs
pkgs.pinchflat
Your next YouTube media manager
pkgs.switchfin
Third-party native Jellyfin client for PC/PS4/PSVita/Nintendo Switch
pkgs.immichframe
Display your photos from Immich as a digital photo frame
pkgs.python312Packages.watchfiles
File watching and code reload
pkgs.python313Packages.watchfiles
File watching and code reload
pkgs.python314Packages.watchfiles
File watching and code reload
pkgs.tests.fetchFromGitHub.rootDir
None
-
nixos-unstable j4dznm1ms6lx
- nixpkgs-unstable j4dznm1ms6lx
- nixos-unstable-small j4dznm1ms6lx
-
nixos-25.11 jgni3ai0f83j
- nixos-25.11-small jgni3ai0f83j
- nixpkgs-25.11-darwin jgni3ai0f83j
pkgs.tests.fetchFromGitHub.fetchTags
None
-
nixos-unstable 9zy1qld2mvpd
- nixpkgs-unstable 9zy1qld2mvpd
- nixos-unstable-small 9zy1qld2mvpd
-
nixos-25.11 p6yjbfaah2rp
- nixos-25.11-small p6yjbfaah2rp
- nixpkgs-25.11-darwin p6yjbfaah2rp
pkgs.tests.hardeningFlags.lchFastEnabledEnv
None
pkgs.tests.hardeningFlags.lchFastStdenvUnsupp
None
Package maintainers
-
@charludo Charlotte Harludo <github@charlotteharludo.com>
-
@fabaff Fabian Affolter <mail@fabian-affolter.ch>
-
@jfly Jeremy Fleischman <jeremyfleischman@gmail.com>
-
@K900 Ilya K. <me@0upti.me>