VDB
KO
MEDIUM 5.3

GHSA-9fxm-vc8v-hj55

jackson-databind's renamed @JsonIgnore'd setters can deserialize via private fields

Details

## Summary `POJOPropertiesCollector._renameProperties()` allows a property with `@JsonProperty("renamed")` on the getter and `@JsonIgnore` on the setter to be renamed rather than dropped. With `MapperFeature.INFER_PROPERTY_MUTATORS` enabled (default), the private backing field is retained; during deserialization `BeanDeserializerFactory.addBeanProps()` sees `hasField()==true`, builds a `FieldProperty`, and makes the backing field writable. An attacker supplying the renamed JSON key writes the backing field directly, bypassing the `@JsonIgnore` on the setter.

## Impact POJOs combining a renamed getter with an ignored setter (a read-only-over-the-wire pattern) have that field silently set from attacker input (property tampering / mass assignment). Not a general gadget; no RCE.

## Affected / Patched (verified via `git tag --contains`) - 2.21 line: `>= 2.21.0, < 2.21.4` -> fixed in **2.21.4** (backport `c3d56dd`, #5968) - 3.x line: `>= 3.0.0, < 3.1.4` -> fixed in **3.1.4** (#5967, `e88cb17`)

## Severity / CWE Maintainer: minor. Reporter: HIGH. CWE-915.

## Credits Omkhar Arasaratnam (@omkhar) - finder.

Are you affected?

Enter the version of the package you're using.

Affected packages

Maven / com.fasterxml.jackson.core:jackson-databind
Introduced in: 2.21.0 Fixed in: 2.21.4
Fix # pom.xml: bump <version>2.21.4</version> for com.fasterxml.jackson.core:jackson-databind
Maven / com.fasterxml.jackson.core:jackson-databind
Introduced in: 3.0.0 Fixed in: 3.1.4
Fix # pom.xml: bump <version>3.1.4</version> for com.fasterxml.jackson.core:jackson-databind
Maven / tools.jackson.core:jackson-databind
Introduced in: 3.0.0 Fixed in: 3.1.4
Fix # pom.xml: bump <version>3.1.4</version> for tools.jackson.core:jackson-databind

References