Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2026-8080-DKIM-Signature-Verification-Bypass-Header-Canonicalization-Flaw- | Kitploit
Tools/GitHubGitHub/george0papasotiriou/cve-2026-8080-dkim-signature-verification-bypass-header-canonicalization-flaw-
Vulnerability AnalysisExploitationCryptographyEmail Security
GitHubgeorge0papasotiriou/cve-2026-8080-dkim-signature-verification-bypass-header-canonicalization-flaw-

CVE-2026-8080-DKIM-Signature-Verification-Bypass-Header-Canonicalization-Flaw-

View Repository

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share
18 days agoNot yet reviewed

CVE-2026-8080 – DKIM Signature Verification Bypass (Header Canonicalization Flaw)

Program Code (Python email parsing simulation)

root@kitploit:~
# dkim_verifier_sim.py - Flawed DKIM verifier
import re, hashlib

# Simulated email with DKIM signature
raw_email = b"""From: [email protected]
To: [email protected]
Subject: Hello
DKIM-Signature: v=1; a=rsa-sha256; d=example.com; s=mail; h=from:to:subject;
        b=abc123; bh=def456;
X-Extra: injected

This is a test.
"""

def parse_headers(raw):
    headers = {}
    lines = raw.decode().split('\r\n')
    for line in lines:
        if ': ' in line:
            key, val = line.split(': ', 1)
            headers[key.lower()] = val
    return headers

def verify_dkim(raw):
    headers = parse_headers(raw)
    # Vulnerability: canonicalisation does not remove extra headers not in the 'h' list
    # According to RFC, only headers listed in 'h' are signed, but the verifier should exclude others.
    # Here we simulate that extra header 'x-extra' is mistakenly included in the hash computation
    # because the verifier canonicalizes all headers instead of just the listed ones.
    signed_headers = headers['dkim-signature'].split('h=')[1].split(';')[0].split(':')
    # Build header list for hash
    header_block = ""
    for h in signed_headers:
        header_block += f"{h}:{headers[h]}\r\n"
    # Flaw: include extra header X-Extra because it's present in the actual headers
    if 'x-extra' in headers:
        header_block += f"x-extra:{headers['x-extra']}\r\n"
    # Now compute hash and compare... For demo, we'll just print that verification succeeds incorrectly.
    print("Verification passed (incorrectly includes extra header)")

verify_dkim(raw_email)

CVE-2026-8080 – DKIM Signature Verification Bypass (Header Canonicalization Error)

Severity: Medium

Overview

A mail server’s DKIM verifier does not strictly follow the canonicalization algorithm defined in RFC 6376. It includes extra header fields in the hash computation, allowing an attacker to append a header (e.g., X-Extra: injected) that changes the email’s behavior while the signature still passes verification.

Vulnerability Details

  • Type: Cryptographic Verification Bypass
  • Impact: Email spoofing, phishing, bypass of spam filters.
  • Root Cause: The verifier canonicalises all present headers instead of only those listed in the h= tag, leading to a mismatch between what was signed and what is verified.

Exploit Demonstration

Run the simulated flawed verifier:

root@kitploit:~
python dkim_verifier_sim.py

It prints “Verification passed” even though an extra header was added.

Download Tool