In BeanDeserializer._deserializeUsingPropertyBased, the active-view (@JsonView) filter was applied only to creator properties; the regular property-buffering branch performed no prop.visibleInView(activeView) check. A change making SetterlessProperty.isMerging() return true routed setterless Collection/Map properties through this unguarded path, so a setterless collection annotated with a restricted @JsonView is populated from attacker JSON even when the active view excludes it.
View-restricted (e.g. admin-only) setterless collection/map properties can be written from untrusted JSON despite @JsonView gating — an access-control / mass-assignment bypass. No RCE or DoS.
git tag --contains)>= 2.21.0, < 2.21.4 -> fixed in 2.21.4 (backport 94c5d21, #5970)>= 3.0.0, < 3.1.4 -> fixed in 3.1.4 (#5969, 5bf23ed)Maintainer: minor. Reporter: HIGH. CWE-863 (Incorrect Authorization); related CWE-1220.
Omkhar Arasaratnam (@omkhar) - finder.
{
"github_reviewed_at": "2026-06-23T21:24:50Z",
"severity": "MODERATE",
"cwe_ids": [
"CWE-863"
],
"nvd_published_at": null,
"github_reviewed": true
}