Impact
The defect in oRPC’s @orpc/zod ZodSmartCoercionPlugin allows a malicious client to inject a __proto__ key into an object or record input. When supplied, the plugin replaces the prototype of the internal request object, allowing inherited properties such as constructor, toString, and __proto__ itself to be interpreted as Zod schemas. This coerces the validation framework into processing attacker‑controlled values, which results in an unhandled TypeError before the data is validated. The vulnerability does not modify global Object.prototype, nor does it create persistent changes; the effect is confined to the crafted request and does not influence other users or requests.
Affected Systems
The issue affects any installation of the middleapi:orpc library that includes the @orpc/zod ZodSmartCoercionPlugin or experimental_ZodSmartCoercionPlugin and is running a version earlier than 1.14.10. Applications exposing procedures that accept unsanitized object or record inputs are susceptible until the plugin is updated or removed.
Risk and Exploitability
The reported CVSS score of 6.5 indicates a moderate severity. EPSS data is not available, making it difficult to estimate the likelihood of exploitation, and the vulnerability is not listed in CISA’s KEV catalog. The attack vector is remote: a client that can invoke the affected procedure can send the malicious __proto__ property, leading to a runtime failure. Because the impact is limited to the single request and does not persist across the application state, the risk is contained but still noticeable, especially if unhandled exceptions propagate to external users or logs.
OpenCVE Enrichment
Github GHSA