GitHub Advisoryadvisory · Go
GHSA-f5p9-j34q-pwcc emp3r0r Affected by Concurrent Map Access DoS (panic/crash)
HIGH
Official page ↗
- Aliases
- CVE-2026-26201
- Ecosystem
- Go
- Packages
- github.com/jm33-m0/emp3r0r/core
- Severity
- High
- CVSS vector
- CVSS:4.0/AV:N/AC:H/AT:P/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
- Weaknesses
- CWE-362, CWE-663
- Reviewed
- 2026-02-17
Affected packages
• Go github.com/jm33-m0/emp3r0r/core: < 0.0.0-20260212232424-ea4d074f081d → fixed in 0.0.0-20260212232424-ea4d074f081d
Description
Summary
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).
Vulnerable Component(with code examples)
Operator relay map had mixed access patterns (iteration and mutation without a single lock policy):
```go
// 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:
```go
// 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:
```go
// vulnerable pattern (FTP stream map)
for token, stream := range FTPStreams { // iteration path
...
}
FTPStreams[token] = stream // write path
delete(FTPStreams, token) // delete path
```
Attack Vector
1. Attacker (or stress traffic in authenticated flows) triggers high concurrency in normal control paths.
2. Operator sessions connect/disconnect while message forwarding and file-transfer workflows are active.
3. Concurrent read/write hits shared maps.
4. Go runtime panics with concurrent map read/write error.
5. C2 component exits, producing denial of service.
Proof of Concept
1. Start C2 server with active operator session(s) in a lab environment.
2. Generate rapid operator session churn (connect/disconnect loops).
3. Simultaneously drive agent message tunnel traffic and/or file transfer activity.
4. Observe crash signature in logs: `fatal error: concurrent map read and map write`.
5. Optional: run with race detector in dev build to confirm race locations.
Impact
• C2 service interruption due to process panic/crash.
• Operational instability under load or deliberate churn.
• Repeated crash-restart cycles can degrade command reliability and incident response workflows.
Related
Alias · CVE (1)
- CVE-2026-26201 emp3r0r is a C2 designed by Linux users for Linux environments. vulnerability
References
- https://github.com/jm33-m0/emp3r0r/security/advisories/GHSA-f5p9-j34q-pwcc web
- https://nvd.nist.gov/vuln/detail/CVE-2026-26201 advisory
- https://github.com/jm33-m0/emp3r0r/commit/ea4d074f081dac6293f3aec38f01def5f08d5af5 web
- https://github.com/jm33-m0/emp3r0r package
- https://github.com/jm33-m0/emp3r0r/releases/tag/v3.21.2 web