Summary
A Prototype Pollution vulnerability exists in the formToObj() function within @builder.io/qwik-city middleware. The function processes form field names with dot notation (e.g., user.name) to create nested objects, but fails to sanitize dangerous property names like __proto__, constructor, and prototype. This allows unauthenticated attackers to pollute Object.prototype by sending crafted HTTP POST requests, potentially leading to privilege escalation, authentication bypass, or denial of service.
Impact
An unauthenticated attacker can supply specially crafted form field names that cause formToObj() to write dangerous keys (for example proto, constructor, prototype) into parsed objects. This results in Prototype Pollution of the server process and can cause privilege escalation, auth bypass, denial-of-service, or other global application integrity failures depending on how objects are used.
References
Summary
A Prototype Pollution vulnerability exists in the
formToObj()function within@builder.io/qwik-citymiddleware. The function processes form field names with dot notation (e.g.,user.name) to create nested objects, but fails to sanitize dangerous property names like__proto__,constructor, andprototype. This allows unauthenticated attackers to polluteObject.prototypeby sending crafted HTTP POST requests, potentially leading to privilege escalation, authentication bypass, or denial of service.Impact
An unauthenticated attacker can supply specially crafted form field names that cause formToObj() to write dangerous keys (for example proto, constructor, prototype) into parsed objects. This results in Prototype Pollution of the server process and can cause privilege escalation, auth bypass, denial-of-service, or other global application integrity failures depending on how objects are used.
References