[SECURITY] Update dependency tools.jackson.core:jackson-core to v3.1.1#112
Open
specmatic-builder wants to merge 1 commit into
Open
[SECURITY] Update dependency tools.jackson.core:jackson-core to v3.1.1#112specmatic-builder wants to merge 1 commit into
specmatic-builder wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
3.1.0→3.1.1Jackson Core: Document length constraint bypass in blocking, async, and DataInput parsers
GHSA-2m67-wjpj-xhg9
More information
Details
Summary
Jackson Core 3.x does not consistently enforce
StreamReadConstraints.maxDocumentLength. Oversized JSON documents can be accepted without aStreamConstraintsExceptionin multiple parser entry points, which allows configured size limits to be bypassed and weakens denial-of-service protections.Details
Three code paths where
maxDocumentLengthis not fully enforced:1. Blocking parsers skip validation of the final in-memory buffer
Blocking parsers validate only previously processed buffers, not the final in-memory buffer:
ReaderBasedJsonParser.java:255UTF8StreamJsonParser.java:208Relevant code:
This means the check occurs only when a completed buffer is rolled over. If an oversized document is fully contained in the final buffer, parsing can complete without any document-length exception.
2. Async parsers skip validation of the final chunk on end-of-input
Async parsers validate previously processed chunks, but do not validate the final chunk on end-of-input:
NonBlockingByteArrayJsonParser.java:49NonBlockingByteBufferJsonParser.java:57NonBlockingUtf8JsonParserBase.java:75Relevant code:
endOfInput()marks EOF but does not perform a finalvalidateDocumentLength(...)call, so an oversized last chunk is accepted.3. DataInput parser path does not enforce
maxDocumentLengthat allJsonFactory.java:457Relevant construction path:
UTF8DataInputJsonParserdoes not callStreamReadConstraints.validateDocumentLength(...), somaxDocumentLengthis effectively disabled forcreateParser(..., DataInput)users.PoC
Async path reproducer
Blocking path reproducer
Impact
Applications that rely on
maxDocumentLengthas a safety control for untrusted JSON can accept oversized inputs without error. In network-facing services this weakens an explicit denial-of-service protection and can increase CPU and memory consumption by allowing larger-than-configured request bodies to be processed.Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Jackson Core: Document length constraint bypass in blocking, async, and DataInput parsers
GHSA-2m67-wjpj-xhg9
More information
Details
Summary
Jackson Core 3.x does not consistently enforce
StreamReadConstraints.maxDocumentLength. Oversized JSON documents can be accepted without aStreamConstraintsExceptionin multiple parser entry points, which allows configured size limits to be bypassed and weakens denial-of-service protections.Details
Three code paths where
maxDocumentLengthis not fully enforced:1. Blocking parsers skip validation of the final in-memory buffer
Blocking parsers validate only previously processed buffers, not the final in-memory buffer:
ReaderBasedJsonParser.java:255UTF8StreamJsonParser.java:208Relevant code:
This means the check occurs only when a completed buffer is rolled over. If an oversized document is fully contained in the final buffer, parsing can complete without any document-length exception.
2. Async parsers skip validation of the final chunk on end-of-input
Async parsers validate previously processed chunks, but do not validate the final chunk on end-of-input:
NonBlockingByteArrayJsonParser.java:49NonBlockingByteBufferJsonParser.java:57NonBlockingUtf8JsonParserBase.java:75Relevant code:
endOfInput()marks EOF but does not perform a finalvalidateDocumentLength(...)call, so an oversized last chunk is accepted.3. DataInput parser path does not enforce
maxDocumentLengthat allJsonFactory.java:457Relevant construction path:
UTF8DataInputJsonParserdoes not callStreamReadConstraints.validateDocumentLength(...), somaxDocumentLengthis effectively disabled forcreateParser(..., DataInput)users.PoC
Async path reproducer
Blocking path reproducer
Impact
Applications that rely on
maxDocumentLengthas a safety control for untrusted JSON can accept oversized inputs without error. In network-facing services this weakens an explicit denial-of-service protection and can increase CPU and memory consumption by allowing larger-than-configured request bodies to be processed.Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot. Specmatic specific configuration is managed here.