Skip to content

Update patched Jackson dependencies - #460

Closed
ryanduguid wants to merge 2 commits into
XeroAPI:masterfrom
ryanduguid:agent/update-jackson
Closed

Update patched Jackson dependencies#460
ryanduguid wants to merge 2 commits into
XeroAPI:masterfrom
ryanduguid:agent/update-jackson

Conversation

@ryanduguid

Copy link
Copy Markdown

Summary

  • update jackson-core and jackson-annotations from 2.18.0 to 2.18.8
  • update jackson-databind from 2.18.0 to 2.18.9
  • clear all nine current Dependabot advisories on the fork default once merged

Validation

  • Java 11 / Maven 3.9.16 package build succeeded
  • resolved dependency tree: core/annotations 2.18.8, databind 2.18.9
  • focused non-mock XeroExceptionsTest: 13 tests, 0 failures/errors
  • the full suite compiled and ran; 289 integration cases reported connection errors because the required Prism services were not running, while 17 local cases passed and 7 skipped
  • git diff --check

The PR remains draft pending exact-head hosted validation with the repository's normal mock-service setup.

@ryanduguid
ryanduguid marked this pull request as ready for review August 18, 2026 15:06
jackson-databind 2.18.9 is not the current patched 2.18.x release.
2.18.10 (15-Aug-2026) adds the fixes for CVE-2026-68497 (databind#6127,
StreamReadConstraints number-length limits for XMLGregorianCalendar and
Duration), CVE-2026-19032 (databind#6129, URL scheme allowlist for
java.nio.file.Path deserialization) and GHSA-gx83-3vf8-gh7j (databind#6156,
java.lang.Comparable added to the unsafe polymorphic base types).

jackson-core was left at 2.18.8, which omits two 2.18.10 fixes:
GHSA-2c4j-63jj-9fqr (core#1642, maxDocumentLength bypass in the async parser
single-feedInput() case) and CVE-2026-68498 (core#1643, maxNameLength now
enforced incrementally in ReaderBasedJsonParser). ApiClient
.createDefaultObjectMapper() does not configure StreamReadConstraints, so it
relies on StreamReadConstraints.DEFAULT_MAX_NAME_LEN (50_000). Before
core#1643 that limit was only checked after the name buffer had been
accumulated, so an oversized property name in an API response was buffered
in full rather than raising StreamConstraintsException.

The two properties also sat at different patch levels, so jackson-databind
2.18.9 requested jackson-core and jackson-annotations at 2.18.9 (jackson-bom
2.18.9 sets jackson.version.core and jackson.version.annotations to
${jackson.version}) while this POM pinned them at 2.18.8. A downstream build
running maven-enforcer-plugin requireUpperBoundDeps failed on that, because
the transitive request was higher than the resolved version. All three
artifacts now resolve to 2.18.10.

jackson-datatype-threetenbp is moved 2.15.2 -> 2.18.2, the newest published
release of that artifact, so ThreeTenModule is no longer a 2.15.2 build
registered into a 2.18.x databind. Its only use here is the no-arg
constructor, unchanged between the two versions.
@ryanduguid

Copy link
Copy Markdown
Author

Closing this as part of cleaning up an unsolicited batch I opened across several Xero repositories. I will not reopen unless a maintainer asks for a single focused change.

@ryanduguid ryanduguid closed this Aug 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant