Multiple shared maps are accessed without consistent synchronization across goroutines. Under concurrent activity, Go runtime can trigger fatal error: concurrent map read and map write, causing C2 process crash (availability loss).
Operator relay map had mixed access patterns (iteration and mutation without a single lock policy):
// vulnerable pattern (operator session map)
for sessionID, op := range OPERATORS { // iteration path
...
}
// concurrent mutation path elsewhere
OPERATORS[operatorSession] = &operator_t{...}
delete(OPERATORS, operatorSession)
Port-forwarding session map had read/write paths guarded inconsistently:
// vulnerable pattern (port forward map)
if sess, ok := PortFwds[id]; ok { // read path
...
}
PortFwds[id] = newSession // write path
delete(PortFwds, id) // delete path
FTP stream map similarly mixed concurrent iteration with mutation:
// vulnerable pattern (FTP stream map)
for token, stream := range FTPStreams { // iteration path
...
}
FTPStreams[token] = stream // write path
delete(FTPStreams, token) // delete path
fatal error: concurrent map read and map write.{
"cwe_ids": [
"CWE-362",
"CWE-663"
],
"github_reviewed": true,
"github_reviewed_at": "2026-02-17T21:27:58Z",
"nvd_published_at": "2026-02-19T20:25:42Z",
"severity": "HIGH"
}