Skip to main content

libevent CVE-2026-63380

| EUVDEUVD-2026-63506 MEDIUM
Use After Free (CWE-416)
2026-08-20 GitHub_M
5.7
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Gain local low-privilege access
  2. Delivery
    Send valid WebSocket upgrade request
  3. Exploit
    Engineer allocation or locking resource exhaustion
  4. Execution
    Force bufferevent_enable_locking_ failure after evhttp_start_ws_ succeeds
  5. Persist
    Trigger invalid TAILQ_REMOVE on uninserted session
  6. Impact
    Process crash (denial of service)

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Memory lifecycle management
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The attacker must have local, low-privilege access to the target system (AV:L, PR:L per CVSS 4.0 vector). The application must be using libevent's WebSocket API - specifically, evws_new_session must be reachable in the code path. The attacker must induce a specific partial-failure sequence: evhttp_start_ws_ must succeed (completing the WebSocket HTTP upgrade) while the subsequent bufferevent_enable_locking_ call fails, which requires either a race condition or resource-exhaustion condition affecting threading primitives (AT:P). Multi-threaded applications using BEV_OPT_THREADSAFE bufferevents, as shown in the regression test's ws_threadsafe_bevcb callback, are the specific deployment scenario. Exploitation is strictly limited to denial of service via process crash; no memory disclosure or code execution is possible from this primitive. Deployments that do not use libevent's WebSocket layer are entirely unaffected.

Impact

The CVSS 4.0 vector (AV:L/AC:H/AT:P/PR:L/UI:N/VA:H) accurately reflects a constrained local denial-of-service with no code execution potential. Attack complexity is high because exploitation requires engineering a race condition or resource exhaustion event that causes bufferevent_enable_locking_ to fail at precisely the right moment in the WebSocket handshake sequence - a difficult prerequisite in practice. No EPSS data was supplied in the input, so probability of exploitation cannot be quantified; however, the absence of a KEV listing and any public proof-of-concept, combined with the local-only attack vector and impact limited to a process crash, places this firmly in the lower-priority tier for most organizations. The impact ceiling is availability loss - confidentiality and integrity are unaffected. The vulnerability is only reachable when the application actively uses libevent's WebSocket API (evws_new_session), which further reduces the realistic attack surface beyond what the CPE scope alone implies. Overall this is a legitimate defect warranting patching on normal maintenance cycles rather than emergency response.

Exploit ScenarioDerived

A local attacker with low-privilege access on a host running a libevent-based WebSocket server sends a valid WebSocket upgrade request while simultaneously exhausting system threading or memory resources, causing bufferevent_enable_locking_ to fail immediately after evhttp_start_ws_ has already freed the connection and request objects. The invalid TAILQ_REMOVE call in evws_connection_free then dereferences an uninitialized list pointer, crashing the server process. The regression test added in the fix (http_ws_early_free_test in regress_ws.c) demonstrates the exact triggering sequence and illustrates how it can be replicated.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 20, 2026

Use-after-free in libevent's WebSocket session initialization (ws.c) before version 2.2.2-alpha allows a local low-privileged caller to crash the hosting process by inducing a locking failure. When evhttp_start_ws_ succeeds but bufferevent_enable_locking_ subsequently fails, the cleanup function evws_connection_free calls TAILQ_REMOVE on a list the session was never inserted into, dereferencing an invalid pointer. No public exploit code or CISA KEV listing exists at time of analysis; a vendor-released patch is available in 2.2.2-alpha.

RemediationAI

Upgrade to libevent 2.2.2-alpha, available at https://github.com/libevent/libevent/releases/tag/release-2.2.2-alpha, which contains the fix in commit 825c18bd99f556b59d61200523237f264d5cc734. If an immediate upgrade is not feasible, the most effective compensating control is to disable or refrain from calling evws_new_session in application code, as the vulnerable path is only reachable through WebSocket session initialization - HTTP-only libevent deployments are not affected. Additionally, restricting local user access to processes that serve WebSocket connections limits exposure given the local attack vector (AV:L). No configuration-only workaround exists that preserves WebSocket functionality while eliminating the flaw. The upstream patch carries no observable side effects based on diff analysis.

Affected VersionsENISA

libevent < 2.2.2-alpha

Affected Packages

euvd libevent fix: 2.2.2-alpha

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Libevent is a foundational C event-notification library used by applications such as Tor, Chromium, and memcached. The affected code is in ws.c, which implements WebSocket support layered over libevent's HTTP infrastructure. The root cause is CWE-416 (Use After Free): in evws_new_session, the original code assigned evws->http_server from evcon->http_server before calling evhttp_start_ws_, which frees both the HTTP request (req) and connection (evcon) objects on success. If the subsequent bufferevent_enable_locking_ call then fails, the error path invokes evws_connection_free, which sees a non-null http_server and unconditionally calls TAILQ_REMOVE - operating on a list the session was never actually inserted into, producing an invalid pointer dereference and process crash. The fix in commit 825c18bd defers the assignment of http_server to a local variable until after successful session insertion, and conditionally sends the bad-request reply only when req is still owned by the caller. Affected CPE: cpe:2.3:a:libevent:libevent:*:*:*:*:*:*:*:* for all versions below 2.2.2-alpha.

Know when Libevent gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 5.7 MEDIUM
CVSS:4.0/AV:L/AC:H/AT:P/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 4.7 MEDIUM

Local access and low privileges required to reach the WebSocket error path; scope unchanged as only the vulnerable process crashes; no confidentiality or integrity impact.

3.1 AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H
4.0 AV:L/AC:H/AT:P/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE 4.7 MEDIUM
AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H
Red Hat 4.7 MEDIUM

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Local
Attack Complexity
High
Attack Requirements
Present
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Aug 20, 2026 - 18:03 EUVD
CVE Published
Aug 20, 2026 - 17:52 cve.org
MEDIUM 5.7

DescriptionCVE.org

Libevent is an event notification library. Prior to 2.2.2-alpha, libevent can dereference invalid list pointers in ws.c when evws_new_session enters its error path after evhttp_start_ws_ succeeds but bufferevent_enable_locking_ fails. evws_connection_free sees a non-null http_server and unconditionally calls TAILQ_REMOVE even though the session was never inserted into http_server->ws_sessions. A local caller able to induce this allocation or locking failure can crash the process. This issue is fixed in version 2.2.2-alpha.

Threat Intelligence Overview

EPSS Score
0.1%
Top 98% exploitable
Prevalence
High
widely used C event library in Tor, Chromium, memcached, and many network daemons
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
High

Priority Score

28
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +28
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Use-after-free vulnerabilities occur when a program continues to access memory through a pointer after that memory has been deallocated.

Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

CVE-2016-10195 CRITICAL POC
9.8 Mar 15

The name_parse function in evdns.c in libevent before 2.1.6-beta allows remote attackers to have unspecified impact via

CVE-2016-10197 HIGH POC
7.5 Mar 15

The search_make_new function in evdns.c in libevent before 2.1.6-beta allows attackers to cause a denial of service (out

CVE-2016-10196 HIGH POC
7.5 Mar 15

Stack-based buffer overflow in the evutil_parse_sockaddr_port function in evutil.c in libevent before 2.1.6-beta allows

CVE-2026-63382 CRITICAL
9.2 Aug 20

HTTP request smuggling in the libevent evhttp server (http.c) affects all versions prior to 2.1.13 and the 2.2.x-alpha l

CVE-2026-63384 HIGH
8.7 Aug 20

Integer overflow in Libevent's event tagging subsystem exposes any application using the evtag API to remote denial of s

CVE-2026-63383 HIGH
8.7 Aug 20

Out-of-bounds read in libevent's tagged RPC decoder crashes any application that decodes attacker-controlled tag data us

CVE-2026-63388 HIGH
8.4 Aug 20

Heap out-of-bounds write in libevent's bufferevent_sock.c allows any local peer connecting to an AF_UNIX evhttp listener

CVE-2014-6272 HIGH
7.5 Aug 24

Multiple integer overflows in the evbuffer API in Libevent 1.4.x before 1.4.15, 2.0.x before 2.0.22, and 2.1.x before 2.

CVE-2015-6525 HIGH
7.5 Aug 24

Multiple integer overflows in the evbuffer API in Libevent 2.0.x before 2.0.22 and 2.1.x before 2.1.5-beta allow context

CVE-2026-63495 HIGH
7.5 Aug 20

Memory exhaustion in libevent's WebSocket server (ws.c) allows unauthenticated remote clients to crash affected processe

CVE-2026-63387 HIGH
7.0 Aug 20

Off-by-one stack buffer overflow in Libevent's evdns component (versions prior to 2.1.13-stable and 2.2.2-alpha) enables

CVE-2026-63381 MEDIUM
5.8 Aug 20

Use-after-free memory corruption in libevent's evbuffer_add_buffer_reference (buffer.c) allows a caller that can drive a

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Performance Computing 12 Affected
SUSE Linux Enterprise High Performance Computing 15 SP7 Affected
SUSE Linux Enterprise Micro 5.3 Affected
SUSE Linux Enterprise Micro 5.4 Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy