CVE-2026-33904
Description
Ella Core is a 5G core designed for private networks. Prior to version 1.7.0, a deadlock in the AMF's SCTP notification handler causes the entire AMF control plane to hang until the process is restarted. An attacker with access to the N2 interface can cause Ella Core to hang, resulting in a denial of service for all subscribers. Version 1.7.0 adds deferred Radio cleanup in serveConn SCTP server so that every connection exit path removes the radio. Remove the stale-entry scan from SCTP Notification handling.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
github.com/ellanetworks/coreGo | < 1.7.0 | 1.7.0 |
Affected products
1Patches
1999f606c5caefix: radio cleanup on SCTP notification (#1141)
2 files changed · +8 −13
internal/amf/ngap/dispatcher.go+0 −13 modified@@ -9,7 +9,6 @@ package ngap import ( "context" - "reflect" amfContext "github.com/ellanetworks/core/internal/amf/context" "github.com/ellanetworks/core/internal/amf/sctp" @@ -232,18 +231,6 @@ func HandleSCTPNotification(conn *sctp.SCTPConn, notification sctp.Notification) return } - amf.Mutex.Lock() - - for _, amfRan := range amf.Radios { - errorConn := sctp.NewSCTPConn(-1, nil) - if reflect.DeepEqual(amfRan.Conn, errorConn) { - amf.RemoveRadio(ran) - ran.Log.Info("removed stale entry in AmfRan pool") - } - } - - amf.Mutex.Unlock() - switch notification.Type() { case sctp.SCTPAssocChange: ran.Log.Info("SCTPAssocChange notification")
internal/amf/ngap/service/service.go+8 −0 modified@@ -15,6 +15,7 @@ import ( "sync" "syscall" + amfContext "github.com/ellanetworks/core/internal/amf/context" "github.com/ellanetworks/core/internal/amf/ngap" "github.com/ellanetworks/core/internal/amf/sctp" "github.com/ellanetworks/core/internal/logger" @@ -105,6 +106,13 @@ func (s *Server) serveConn(ctx context.Context, conn *sctp.SCTPConn) { defer s.wg.Done() defer s.conns.Delete(fd) + defer func() { + amf := amfContext.AMFSelf() + if ran, ok := amf.FindRadioByConn(conn); ok { + amf.RemoveRadio(ran) + logger.AmfLog.Info("removed radio on connection close", zap.Int("fd", fd)) + } + }() defer func() { if err := conn.Close(); err != nil && err != syscall.EBADF { logger.AmfLog.Error("close connection error", zap.Error(err))
Vulnerability mechanics
Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
5- github.com/ellanetworks/core/commit/999f606c5cae261471d9e3f063d7ecd1bd754076nvdPatchWEB
- github.com/advisories/GHSA-9h59-p45g-445hghsaADVISORY
- github.com/ellanetworks/core/security/advisories/GHSA-9h59-p45g-445hnvdVendor AdvisoryWEB
- nvd.nist.gov/vuln/detail/CVE-2026-33904ghsaADVISORY
- github.com/ellanetworks/core/releases/tag/v1.7.0nvdRelease NotesWEB
News mentions
0No linked articles in our index yet.