CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-61554

CVE-2026-61554: Uncontrolled Resource Consumption in emp3r0r C2 http_poll Transport

Amit Schendel
Amit Schendel
Senior Security Researcher

Sep 16, 2026·6 min read·55 visits

Executive Summary (TL;DR)

Unauthenticated pre-authentication resource allocation in the http_poll transport allows remote attackers to cause a Denial of Service (DoS) in the emp3r0r C2 server by sending floods of arbitrary HTTP requests.

CVE-2026-61554 is a high-severity uncontrolled resource consumption vulnerability in the http_poll transport component of the emp3r0r Command and Control (C2) framework. In affected versions prior to 4.2.5, the C2 server allocates session tracking resources, spawns execution routines, and routes incoming unauthenticated request bodies into the core dispatch engine before verifying the client's cryptographic authentication token. This logical ordering flaw allows unauthenticated remote attackers to exhaust critical host system resources and trigger a sustained denial of service.

Vulnerability Overview

The emp3r0r Command and Control (C2) framework is designed for post-exploitation management of compromised endpoints, with a primary focus on Linux environments. To evade egress detection and circumvent perimeter firewalls, the framework supports multiple modular transport layers. Among these, the HTTP polling transport (http_poll) operates as a stateless, unidirectional beaconing receiver that periodically handles inbound connections from deployed agents.

In a standard C2 lifecycle, security depends entirely on robust cryptography and cryptographic isolation. Agents must authenticate using a unique, signature-based identity scheme before the server performs operations or executes commands. However, the connection-handling sequence of the http_poll listener contains an architectural flow control vulnerability.

Prior to version 4.2.5, the server is designed to process and route raw HTTP request data before executing the gatekeeping authentication checks. This structure exposes a broad attack surface, enabling unauthenticated remote actors to interact directly with internal processing queues and exhaust central system resources.

Root Cause Analysis

The vulnerability stems from a logical ordering flaw during connection intake. When a remote client initiates an HTTP POST request to the server's polling route, the server is expected to validate the agent's identity. This validation uses a Concise Binary Object Representation (CBOR) payload containing a MsgAuth structure, which carries the agent's cryptographic signature.

Instead of verifying this cryptographic signature at the edge of the transport layer, the vulnerable server executes several resource-intensive operations first. The handler instantiates a session tracking context, allocates memory buffers, and spawns a dedicated Go goroutine to handle the incoming data stream. Following this allocation, the server extracts the raw request body and routes it directly into the core dispatch and routing queues.

Because resource allocation occurs before verifying the sender's cryptographic credentials, the server performs expensive data transport and parsing operations on untrusted data. A remote adversary can continuously send arbitrary payloads without a valid signature. This forces the server into an infinite processing state, resulting in a classic uncontrolled resource consumption condition.

Code Analysis and Execution Flow

The original code architecture routes incoming requests directly into the core dispatch engine prior to validating client identities. This sequence is illustrated in the diagram below:

Because step 5 occurs late in the pipeline, an attacker can trigger steps 1 through 4 repeatedly without possessing a valid cryptographic key. This creates massive overhead on the Go runtime. The remediation implemented in version 4.2.5 restructures this sequence to validate identity tokens before spawning handlers or allocating session data, blockading the resource exhaustion vector.

// Vulnerable logic flow (conceptual representation)
func handlePollRequest(w http.ResponseWriter, r *http.Request) {
    // Allocates session tracking and spawns worker before validation
    session := NewSessionContext(r.RemoteAddr)
    go func() {
        body, _ := io.ReadAll(r.Body)
        // Raw routing happens first
        coreEngine.Dispatch(session, body)
    }()
}
 
// Patched logic flow in version 4.2.5
func handlePollRequestPatched(w http.ResponseWriter, r *http.Request) {
    // Extract and validate token immediately at the boundary
    authHeader := r.Header.Get("Authorization")
    if !validateCryptographicToken(authHeader) {
        w.WriteHeader(http.StatusUnauthorized)
        return // Early return blocks resource exhaustion
    }
    session := NewSessionContext(r.RemoteAddr)
    // Proceed to allocate and dispatch
}

Exploitation and Attack Methodology

Exploiting this vulnerability does not require complex configurations, valid encryption keys, or active session handles. The attacker only needs network visibility to the port hosting the http_poll interface of the emp3r0r server. This simplicity of access heightens the operational risk to the C2 infrastructure.

To initiate the attack, an adversary sends a high-concurrency flood of HTTP POST requests targeting the polling handler. Because the server parses the body of every request pre-authentication, sending large, syntactically complex, or intentionally malformed binary data streams amplifies CPU and memory consumption. This puts the Go runtime garbage collector under extreme pressure.

Within a short duration, the server depletes its pool of available file descriptors and exceeds maximum thread limits. Legitimate agents attempting to check in or retrieve commands will experience connection timeouts. The overall command and control infrastructure becomes entirely unresponsive, severing the operator's control over the active agent mesh network.

Impact Assessment

The CVSS v3.1 score is evaluated at 7.5 (High), reflecting a high impact on availability. While the vulnerability does not lead to direct data exposure, privilege escalation, or arbitrary code execution on the C2 host, it presents a substantial operational risk to the resilience of the deployment.

In a typical operational scenario, a Denial of Service against the central C2 server disrupts communication across the entire implant network. The self-healing Gossip Mesh network utilized by emp3r0r relies on stable exit points to coordinate operations. By rendering the central server unresponsive, the entire coordination capability of the mesh is neutralized.

Additionally, recovery from this state may require manual administrator intervention to restart services or rotate host configurations. If the server is deployed in a dynamic environment without persistent state storage, a forced restart could result in the loss of operational metadata and historical agent session logs.

Remediation and Mitigation Guidance

The definitive remediation for this vulnerability is upgrading the emp3r0r installation to version 4.2.5 or later. The update restructures the connection handler to parse and validate the CBOR MsgAuth payload synchronously at the absolute edge of the incoming request handling routine. This ensures that unauthorized requests are immediately dropped with a 401 Unauthorized status, saving processor cycles and memory.

In scenarios where immediate patching is unfeasible, administrators must deploy network-level compensating controls. Placing the C2 endpoint behind a reverse proxy, such as Nginx or HAProxy, allows for the configuration of strict rate-limiting rules. This setup restricts the number of concurrent connections and request rates acceptable from a single IP address.

Additionally, implementing firewall policies or a Virtual Private Network (VPN) to restrict access to the polling port exclusively to known, trusted egress IP addresses of target networks is highly recommended. Restricting the network footprint minimizes the exposure of the raw socket and mitigates the risk of external discovery and scanning.

Technical Appendix

CVSS Score
7.5/ 10
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Affected Systems

emp3r0r Command and Control (C2) Server (versions prior to 4.2.5)

Affected Versions Detail

Product
Affected Versions
Fixed Version
emp3r0r
jm33-m0
< 4.2.54.2.5
AttributeDetail
CWE IDCWE-400
Attack VectorNetwork
CVSS v3.1 Score7.5 (High)
ImpactDenial of Service (DoS)
Exploit StatusNone/Unproven
CISA KEV StatusNot Listed

MITRE ATT&CK Mapping

T1499Endpoint Denial of Service
Impact
CWE-400
Uncontrolled Resource Consumption

The software does not properly control the allocation and maintenance of a limited resource, enabling an actor to influence resource consumption and trigger exhaustion.

Vulnerability Timeline

Developer jm33-m0 patches the issue and releases emp3r0r v4.2.5.
2026-05-31
GitHub Security Advisory GHSA-4595-rvpx-4q34 is published and CVE-2026-61554 is assigned.
2026-09-15

References & Sources

  • [1]Official GitHub Security Advisory
  • [2]Vulnerable Repository Releases
  • [3]CVE Authority Record

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•about 1 hour ago•CVE-2026-119282
7.3

CVE-2026-119282: OS Command Injection via Plugin Options in Nx (@nx/maven and @nx/gradle)

An OS command injection and argument injection vulnerability exists in the Nx build system and its official Maven (@nx/maven) and Gradle (@nx/gradle) plugins. When constructing the project dependency graph, the plugins invoke underlying Java build wrappers via subshells while interpolating unsanitized plugin options directly from nx.json into the command arguments. An attacker who supplies a crafted nx.json file via a repository or pull request can execute arbitrary shell commands with the privileges of the user or CI/CD runner invoking any Nx command that computes the project graph.

Amit Schendel
Amit Schendel
4 views•10 min read
•about 2 hours ago•CVE-2026-59978
7.5

CVE-2026-59978: Persistent Denial of Service via Array Injection in AdminNeo

AdminNeo versions 4.6.2 through 5.4.1 contain an improper input validation vulnerability (CWE-20) in the version verification endpoint (?script=version). An unauthenticated remote attacker can submit a crafted HTTP POST request containing an array parameter for 'version', which is serialized into a shared server-side temporary cache file without type checking or authentication. On subsequent requests, the application deserializes this cached array and passes it to cookie() and rawurlencode(), triggering an uncaught fatal TypeError in PHP 8.x environments and causing a persistent 24-hour Denial of Service (DoS) for all users.

Amit Schendel
Amit Schendel
4 views•8 min read
•about 3 hours ago•GHSA-FGXM-5HVV-X4VH
5.3

GHSA-fgxm-5hvv-x4vh: Private Repository Enumeration via Go Module Discovery and HTTP Response Discrepancies in Soft Serve

Charmbracelet Soft Serve versions 0.5.0 through 0.12.2 contain an authorization bypass and observable response discrepancy vulnerability in the HTTP Git server. Remote attackers can determine the existence, exact names, and clone URLs of private repositories by issuing crafted Go remote import path discovery requests (?go-get=1) or by observing differential HTTP status codes across Git Smart HTTP, Dumb HTTP, and Git LFS endpoints.

Alon Barad
Alon Barad
5 views•12 min read
•about 4 hours ago•GHSA-F3FJ-9625-RV3M
5.9

GHSA-f3fj-9625-rv3m: Race Condition in Soft Serve Repository Cache Invalidation

A Time-of-Check to Time-of-Use (TOCTOU) race condition in Charmbracelet Soft Serve versions 0.6.0 through 0.12.2 allows unauthenticated users to retain read access to repositories after their visibility is changed from public to private. The flaw stems from premature cache invalidation in the SetPrivate method prior to committing the visibility update to the underlying database. Concurrent read requests arriving during the database transaction window repopulate the non-expiring in-memory LRU cache with stale public metadata, bypassing access controls across HTTP, SSH, and Git protocols until the server process is restarted.

Alon Barad
Alon Barad
4 views•10 min read
•about 5 hours ago•CVE-2026-119283
7.5

CVE-2026-119283: Unbounded JWE Recipients Array Causes CPU Exhaustion in Authlib joserfc

A resource consumption vulnerability exists in the Authlib joserfc Python library prior to version 1.7.5. When processing JSON Web Encryption (JWE) objects formatted using General JSON Serialization, the library fails to enforce an upper bound on the number of elements within the recipients array. An unauthenticated attacker can supply a JWE containing thousands of recipient entries targeting an RSA key management algorithm, forcing the server to perform an equivalent number of computationally expensive RSA private-key decryption operations per request and exhausting available CPU resources.

Alon Barad
Alon Barad
4 views•9 min read
•about 6 hours ago•CVE-2026-119284
6.9

CVE-2026-119284: Uncontrolled Resource Consumption in joserfc Compact Deserialization

CVE-2026-119284 (GHSA-9pg5-8c7x-5hfx) is an uncontrolled resource consumption vulnerability (CWE-400) in the compact serialization deserialization routines of joserfc prior to version 1.7.6. The library enforced individual segment size limits only after invoking Python's bytes.split(b'.') on untrusted input tokens. By sending oversized compact JWS or JWE tokens, an unauthenticated remote attacker can force the Python interpreter to duplicate and allocate memory for every segment before size validation executes, resulting in memory exhaustion and an Endpoint Denial of Service (DoS).

Amit Schendel
Amit Schendel
8 views•10 min read