Severity by source
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Network delivery via HTTP form body, but high complexity due to non-default dot:true config and unsafe merge precondition both required; no authentication or user interaction needed; limited C and I impact, no availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2Blast Radius
ecosystem impact- 78 npm packages depend on hono (64 direct, 14 indirect)
Ecosystem-wide dependent count for version 4.12.7.
DescriptionCVE.org
Hono before 4.12.7 allows __proto__ key in parseBody with dot option enabled, permitting specially crafted form field names to create objects with __proto__ properties. When parsed results are merged into regular JavaScript objects using unsafe merge patterns, attackers can exploit this to achieve prototype pollution and modify object behavior.
AnalysisAI
Prototype pollution in Hono before 4.12.7 enables unauthenticated remote attackers to inject properties into JavaScript's Object.prototype by submitting crafted form field names containing '__proto__' keys when the 'dot' option is enabled in parseBody. Exploitation is conditional - it further requires that application code merges parsed body output into plain JavaScript objects using unsafe merge patterns - but when both conditions are present, attackers can silently alter inherited object behavior across the entire runtime, potentially bypassing authorization checks or leaking sensitive data. No public exploit code or CISA KEV listing exists at time of analysis; the CVSS 4.0 score of 6.3 reflects limited impact and the attack prerequisite of the non-default dot option being enabled.
Technical ContextAI
Hono (CPE: cpe:2.3:a:hono:hono:*:*:*:*:*:*:*:*) is a fast, lightweight web framework targeting JavaScript runtimes including Cloudflare Workers, Deno, Bun, and Node.js. The root cause is CWE-1321 (Improperly Controlled Modification of Object Prototype Attributes), located in the parseBody utility function. When the 'dot' option is enabled, Hono interprets dot-notation form field keys (e.g., 'a.b.c') as nested object paths. Because the parser does not block '__proto__' as a reserved key, a crafted field name such as '__proto__[isAdmin]=true' or '__proto__.polluted=1' passes through deserialization unfiltered. If the resulting parsed object is then merged into an application-managed plain object using an unsafe operation - recursive Object.assign, lodash _.merge, or custom deep-merge - the injected '__proto__' properties propagate up the JavaScript prototype chain and become globally inherited by all plain objects in the process. This is the classic prototype pollution sink pattern described in CWE-1321.
RemediationAI
Upgrade Hono to version 4.12.7 or later, which patches '__proto__' key handling in the parseBody function per the vendor advisory at https://github.com/honojs/hono/security/advisories/GHSA-v8w9-8mx6-g223. If an immediate upgrade is not feasible, disable the 'dot' option in all parseBody invocations - omit it entirely or explicitly pass { dot: false }, since false is the default; note this will change how nested form fields are interpreted and may require application logic adjustments. As a complementary control, audit all code paths that merge parseBody output into plain objects and replace unsafe merge patterns (recursive Object.assign, lodash _.merge) with prototype-safe alternatives such as sanitizing keys against a blocklist including '__proto__', 'constructor', and 'prototype' before merging, or using JSON.parse(JSON.stringify(obj)) to strip non-enumerable prototype keys prior to any merge operation.
More in Prototype Pollution
View allPrototype pollution in Adobe Acrobat Reader versions 24.001.30356, 26.001.21367 and earlier enables arbitrary code execu
Prototype pollution in the farinspace Partners WordPress plugin (versions up to and including 0.2.0) enables remote unau
Prototype pollution vulnerability in 'deephas' versions 1.0.0 through 1.0.5 allows attacker to cause a denial of service
A Prototype Pollution issue in Cronvel Tree-kit v.0.7.4 and before allows a remote attacker to execute arbitrary code vi
A Prototype Pollution issue in Aliconnect /sdk v.0.0.6 allows an attacker to execute arbitrary code via the aim function
All versions of the package safe-eval are vulnerable to Prototype Pollution via the safeEval function, due to improper s
This affects the package vm2 before 3.9.4 via a Prototype Pollution attack vector, which can lead to execution of arbitr
Prototype Pollution in chargeover redoc v2.0.9-rc.69 allows attackers to execute arbitrary code or cause a Denial of Ser
alizeait unflatto <= 1.0.2 was discovered to contain a prototype pollution via the method exports.unflatto at /dist/inde
A vulnerability exists in the 'dagre-d3-es' Node.js package version 7.0.9, specifically within the 'bk' module's addConf
A Prototype Pollution vulnerability in the util-deps.addFileDepend function of magix-combine-ex versions thru 1.2.10 all
Chartist 1.x through 1.3.0 allows Prototype Pollution via the extend function. Rated critical severity (CVSS 9.8), this
Same technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-43173
GHSA-3wcj-gjvf-fvch