ata-validator
1.61.3 · 29 Oct 2026MIT21.8k / weekRepositoryHomepagenpmAtom feed
1.61.3 is the newest release of 1.x.
In short
1 security2 fixed
- security
Security patch.
Release note
Security patch. Update if you use useDefaults (on by default) with schemas you did not write.
Fixed
A schema declaring a property named
__proto__with nested defaults wrote those defaults ontoObject.prototype, for every object in the process, on both engines, regardless of the input. The defaults machinery is now prototype-safe end to end: a default fills a property that is an own key or absent (Object.hasOwn, notin, so a property namedconstructoralso receives its default now), the nested applier refuses to walk a parent the instance does not carry as an own key, and fills of a property named__proto__go throughObject.defineProperty, because plain assignment of that name rewrites the object's prototype instead of creating a property. Type coercion skips that name for the same reason; the raw value still goes through validation. Reported with the initial fixThe AOT
parse()emitter received the same hardening (computed keys,Object.hasOwnpresence checks,definePropertyfor the one dangerous name), and its record loop, whose keys come from the input, now keeps a JSON-parsed own__proto__key as an own key in the output instead of silently rewriting the output's prototype.