Skip to content

Jackson Release 2.21.7

Tatu Saloranta edited this page Sep 21, 2026 · 25 revisions

Patch version of 2.21, released on September 21, 2026.

Following fixes are included in this patch release.

Changes, core

  • #1649: Optimize NumberInput.looksLikeValidNumber [CVE-2026-89407]
  • #1668: WriterBasedJsonGenerator throws ArrayIndexOutOfBoundsException when a zero-length custom escape ends exactly at the output buffer boundary
  • #1698: Honor maxErrorTokenLength in UTF8DataInputJsonParser [CVE-2026-89425]
  • #1713: UTF32Reader corrupts or drops the low surrogate when a supplementary character splits across a read() boundary
  • #6185: Unresolved IPv6 InetSocketAddress serialized without brackets, losing port on round-trip
  • #6203: Prevent unbounded growth of type id cache in TypeDeserializer [CVE-2026-91776]
  • #6204: Avoid quadratic forward-reference resolution in Collection/Map deserializers [CVE-2026-91777]
  • #6205: Avoid quadratic forward-reference resolution in ObjectArrayDeserializer

Changes, dataformats

Avro

  • #785: Support StreamReadConstraints.maxDocumentLength and maxTokenCount in Avro parser

Ion

  • #803: Support StreamReadConstraints.maxNestingDepth in Ion parser
  • #805: Support StreamReadConstraints.maxDocumentLength in Ion parser

Properties

  • #738: Support StreamReadConstraints.maxDocumentLength() in Properties parser

Protobuf

  • #776: Fix writeString(char[],int,int) writing enum values twice
  • #783: Support StreamReadConstraints.maxDocumentLength in ProtobufParser

Smile

  • #761: Async Smile parser misses #312 NUL-padding: short property name collides with NUL-prefixed longer one
  • #770: Fix async parser decoding of short ASCII values split across input feeds

TOML

  • #723: Fix TomlGenerator.writeNumber(short) writing an extra empty line
  • #736: Support StreamReadConstraints maxNameLength/maxDocumentLength in TOML parser

YAML

  • #737: Support StreamReadConstraints maxNameLength/maxDocumentLength in YAML parser

Clone this wiki locally