VDB
KO
MEDIUM 6.5

GHSA-3pjw-73gf-8qr5

jackson-databind: @JsonIgnore on a Record property is bypassed with a PropertyNamingStrategy

Quick fix

GHSA-3pjw-73gf-8qr5 — com.fasterxml.jackson.core:jackson-databind: upgrade to the fixed version with the command below.

# pom.xml: bump <version>2.18.8</version> for com.fasterxml.jackson.core:jackson-databind

Details

## Summary For Java Records, `POJOPropertiesCollector._removeUnwantedIgnorals()` records a `@JsonIgnore`-annotated component under its original implicit name before `_renameUsing()` applies the `PropertyNamingStrategy`. After the rename, `_ignoredPropertyNames` still holds only the pre-rename name, so `_ignorableProps` is built from the stale key. The renamed JSON key passes `IgnorePropertiesUtil.shouldIgnore()` and is assigned to the Record's constructor parameter, defeating the `@JsonIgnore`.

## Impact A Record using a naming strategy that relies on `@JsonIgnore` to keep an internal/privileged component out of deserialization can have that component set from the wire via its renamed key (e.g. a role/flag controlled by an untrusted client).

## Affected / Patched (verified via `git tag --contains`) - 2.15-2.18 line: `>= 2.15.0, < 2.18.8` -> fixed in **2.18.8** (backport `c7c6783`) - 2.19-2.21 line: `>= 2.19.0, < 2.21.4` -> fixed in **2.21.4** - 3.x line: `>= 3.0.0, < 3.1.4` -> fixed in **3.1.4** (#5974, `baa2cdf`)

## Severity / CWE Maintainer: minor. Reporter: Moderate. CWE-915; related CWE-345.

## 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.15.0 Fixed in: 2.18.8
Fix # pom.xml: bump <version>2.18.8</version> for com.fasterxml.jackson.core:jackson-databind
Maven / com.fasterxml.jackson.core:jackson-databind
Introduced in: 2.19.0 Fixed in: 2.21.4
Fix # pom.xml: bump <version>2.21.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