CVE-2025-49128
Jackson-core Vulnerable to Memory Disclosure via Source Snippet in JsonLocation
Jackson-core contains core low-level incremental ("streaming") parser and generator abstractions used by Jackson Data Processor. Starting in version 2.0.0 and prior to version 2.13.0, a flaw in jackson-core's JsonLocation._appendSourceDesc method allows up to 500 bytes of unintended memory content to be included in exception messages. When parsing JSON from a byte array with an offset and length, the exception message incorrectly reads from the beginning of the array instead of the logical payload start. This results in possible information disclosure in systems using pooled or reused buffers, like Netty or Vert.x. This issue was silently fixed in jackson-core version 2.13.0, released on September 30, 2021, via PR #652. All users should upgrade to version 2.13.0 or later. If upgrading is not immediately possible, applications can mitigate the issue by disabling exception message exposure to clients to avoid returning parsing exception messages in HTTP responses and/or disabling source inclusion in exceptions to prevent Jackson from embedding any source content in exception messages, avoiding leakage.
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- Low
- Integrity
- None
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
4.0
Jackson-core Vulnerable to Memory Disclosure via Source Snippet in JsonLocation
Jackson-core contains core low-level incremental ("streaming") parser and generator abstractions used by Jackson Data Processor. Starting in version 2.0.0 and prior to version 2.13.0, a flaw in jackson-core's JsonLocation._appendSourceDesc method allows up to 500 bytes of unintended memory content to be included in exception messages. When parsing JSON from a byte array with an offset and length, the exception message incorrectly reads from the beginning of the array instead of the logical payload start. This results in possible information disclosure in systems using pooled or reused buffers, like Netty or Vert.x. This issue was silently fixed in jackson-core version 2.13.0, released on September 30, 2021, via PR #652. All users should upgrade to version 2.13.0 or later. If upgrading is not immediately possible, applications can mitigate the issue by disabling exception message exposure to clients to avoid returning parsing exception messages in HTTP responses and/or disabling source inclusion in exceptions to prevent Jackson from embedding any source content in exception messages, avoiding leakage.
- Record
CVE-2025-49128- CVSS 3.1
- 4.0 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N - Weakness
- CWE-209
- Updated
- 2026-11-02
EUVDEUVD-2025-17366
4.0
Jackson-core contains core low-level incremental ("streaming") parser and generator abstractions used by Jackson Data Processor. Starting in version 2.0.0 and prior to version 2.13.0, a flaw in jackson-core's JsonLocation._appendSourceDesc method allows up to 500 bytes of unintended memory content to be included in exception messages. When parsing JSON from a byte array with an offset and length, the exception message incorrectly reads from the beginning of the array instead of the logical payload start. This results in possible information disclosure in systems using pooled or reused buffers, like Netty or Vert.x. This issue was silently fixed in jackson-core version 2.13.0, released on September 30, 2021, via PR #652. All users should upgrade to version 2.13.0 or later. If upgrading is not immediately possible, applications can mitigate the issue by disabling exception message exposure to clients to avoid returning parsing exception messages in HTTP responses and/or disabling source inclusion in exceptions to prevent Jackson from embedding any source content in exception messages, avoiding leakage.
- Record
EUVD-2025-17366- CVSS 3.1
- 4.0 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-wf8f-6423-gfxg
4.0
Jackson-core Vulnerable to Memory Disclosure via Source Snippet in JsonLocation
Overview
A flaw in Jackson-core's JsonLocation._appendSourceDesc method allows up to 500 bytes of unintended memory content to be included in exception messages. When parsing JSON from a byte array with an offset and length, the exception message incorrectly reads from the beginning of the array instead of the logical payload start. This results in possible information disclosure in systems using pooled or reused buffers, like Netty or Vert.x.
Details
The vulnerability affects the creation of exception messages like:
JsonParseException: Unexpected character ... at [Source: (byte[])...]
When JsonFactory.createParser(byte[] data, int offset, int len) is used, and an error occurs while parsing, the exception message should include a snippet from the specified logical payload. However, the method _appendSourceDesc ignores the offset, and always starts reading from index 0.
If the buffer contains residual sensitive data from a previous request, such as credentials or document contents, that data may be exposed if the exception is propagated to the client.
The issue particularly impacts server applications using:
- Pooled byte buffers (e.g., Netty)
- Frameworks that surface parse errors in HTTP responses
- Default Jackson settings (i.e.,
INCLUDE_SOURCE_IN_LOCATIONis enabled)
A documented real-world example is CVE-2021-22145 in Elasticsearch, which stemmed from the same root cause.
Attack Scenario
An attacker sends malformed JSON to a service using Jackson and pooled byte buffers (e.g., Netty-based HTTP servers). If the server reuses a buffer and includes the parser’s exception in its HTTP 400 response, the attacker may receive residual data from previous requests.
Proof of Concept
byte[] buffer = new byte[1000];
System.arraycopy("SECRET".getBytes(), 0, buffer, 0, 6);
System.arraycopy("{ \"bad\": }".getBytes(), 0, buffer, 700, 10);
JsonFactory factory = new JsonFactory();
JsonParser parser = factory.createParser(buffer, 700, 20);
parser.nextToken(); // throws exception
// Exception message will include "SECRET"
Patches
This issue was silently fixed in jackson-core version 2.13.0, released on September 30, 2021, via PR #652.
All users should upgrade to version 2.13.0 or later.
Workarounds
If upgrading is not immediately possible, applications can mitigate the issue by:
-
Disabling exception message exposure to clients — avoid returning parsing exception messages in HTTP responses.
-
Disabling source inclusion in exceptions by setting:
jsonFactory.disable(JsonFactory.Feature.INCLUDE_SOURCE_IN_LOCATION);This prevents Jackson from embedding any source content in exception messages, avoiding leakage.
References
- Record
GHSA-wf8f-6423-gfxg- CVSS 3.1
- 4.0 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N - Weakness
- CWE-209
- Updated
- 2026-11-02
NVD
4.0
Jackson-core contains core low-level incremental ("streaming") parser and generator abstractions used by Jackson Data Processor. Starting in version 2.0.0 and prior to version 2.13.0, a flaw in jackson-core's JsonLocation._appendSourceDesc method allows up to 500 bytes of unintended memory content to be included in exception messages. When parsing JSON from a byte array with an offset and length, the exception message incorrectly reads from the beginning of the array instead of the logical payload start. This results in possible information disclosure in systems using pooled or reused buffers, like Netty or Vert.x. This issue was silently fixed in jackson-core version 2.13.0, released on September 30, 2021, via PR #652. All users should upgrade to version 2.13.0 or later. If upgrading is not immediately possible, applications can mitigate the issue by disabling exception message exposure to clients to avoid returning parsing exception messages in HTTP responses and/or disabling source inclusion in exceptions to prevent Jackson from embedding any source content in exception messages, avoiding leakage.
- Record
CVE-2025-49128- CVSS 3.1
- 4.0 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N - Weakness
- CWE-209
- Updated
- 2026-11-02
OSV
4.0
Jackson-core Vulnerable to Memory Disclosure via Source Snippet in JsonLocation
Jackson-core contains core low-level incremental ("streaming") parser and generator abstractions used by Jackson Data Processor. Starting in version 2.0.0 and prior to version 2.13.0, a flaw in jackson-core's JsonLocation._appendSourceDesc method allows up to 500 bytes of unintended memory content to be included in exception messages. When parsing JSON from a byte array with an offset and length, the exception message incorrectly reads from the beginning of the array instead of the logical payload start. This results in possible information disclosure in systems using pooled or reused buffers, like Netty or Vert.x. This issue was silently fixed in jackson-core version 2.13.0, released on September 30, 2021, via PR #652. All users should upgrade to version 2.13.0 or later. If upgrading is not immediately possible, applications can mitigate the issue by disabling exception message exposure to clients to avoid returning parsing exception messages in HTTP responses and/or disabling source inclusion in exceptions to prevent Jackson from embedding any source content in exception messages, avoiding leakage.
- Record
CVE-2025-49128- CVSS 3.1
- 4.0 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N - Weakness
- CWE-209
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2025-49128
4.0
Jackson-core contains core low-level incremental ("streaming") parser and generator abstractions used by Jackson Data Processor. Starting in version 2.0.0 and prior to version 2.13.0, a flaw in jackson-core's JsonLocation._appendSourceDesc method allows up to 500 bytes of unintended memory content to be included in exception messages. When parsing JSON from a byte array with an offset and length, the exception message incorrectly reads from the beginning of the array instead of the logical payload start. This results in possible information disclosure in systems using pooled or reused buffers, like Netty or Vert.x. This issue was silently fixed in jackson-core version 2.13.0, released on September 30, 2021, via PR #652. All users should upgrade to version 2.13.0 or later. If upgrading is not immediately possible, applications can mitigate the issue by disabling exception message exposure to clients to avoid returning parsing exception messages in HTTP responses and/or disabling source inclusion in exceptions to prevent Jackson from embedding any source content in exception messages, avoiding leakage.
- Record
DEBIAN-CVE-2025-49128- CVSS 3.1
- 4.0 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N - Updated
- 2026-11-02
Show 5 moreShow less
OSVGHSA-wf8f-6423-gfxg
4.0
Jackson-core Vulnerable to Memory Disclosure via Source Snippet in JsonLocation
Overview
A flaw in Jackson-core's JsonLocation._appendSourceDesc method allows up to 500 bytes of unintended memory content to be included in exception messages. When parsing JSON from a byte array with an offset and length, the exception message incorrectly reads from the beginning of the array instead of the logical payload start. This results in possible information disclosure in systems using pooled or reused buffers, like Netty or Vert.x.
Details
The vulnerability affects the creation of exception messages like:
JsonParseException: Unexpected character ... at [Source: (byte[])...]
When JsonFactory.createParser(byte[] data, int offset, int len) is used, and an error occurs while parsing, the exception message should include a snippet from the specified logical payload. However, the method _appendSourceDesc ignores the offset, and always starts reading from index 0.
If the buffer contains residual sensitive data from a previous request, such as credentials or document contents, that data may be exposed if the exception is propagated to the client.
The issue particularly impacts server applications using:
- Pooled byte buffers (e.g., Netty)
- Frameworks that surface parse errors in HTTP responses
- Default Jackson settings (i.e.,
INCLUDE_SOURCE_IN_LOCATIONis enabled)
A documented real-world example is CVE-2021-22145 in Elasticsearch, which stemmed from the same root cause.
Attack Scenario
An attacker sends malformed JSON to a service using Jackson and pooled byte buffers (e.g., Netty-based HTTP servers). If the server reuses a buffer and includes the parser’s exception in its HTTP 400 response, the attacker may receive residual data from previous requests.
Proof of Concept
byte[] buffer = new byte[1000];
System.arraycopy("SECRET".getBytes(), 0, buffer, 0, 6);
System.arraycopy("{ \"bad\": }".getBytes(), 0, buffer, 700, 10);
JsonFactory factory = new JsonFactory();
JsonParser parser = factory.createParser(buffer, 700, 20);
parser.nextToken(); // throws exception
// Exception message will include "SECRET"
Patches
This issue was silently fixed in jackson-core version 2.13.0, released on September 30, 2021, via PR #652.
All users should upgrade to version 2.13.0 or later.
Workarounds
If upgrading is not immediately possible, applications can mitigate the issue by:
-
Disabling exception message exposure to clients — avoid returning parsing exception messages in HTTP responses.
-
Disabling source inclusion in exceptions by setting:
jsonFactory.disable(JsonFactory.Feature.INCLUDE_SOURCE_IN_LOCATION);This prevents Jackson from embedding any source content in exception messages, avoiding leakage.
References
- Record
GHSA-wf8f-6423-gfxg- CVSS 3.1
- 4.0 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N - Weakness
- CWE-209
- Updated
- 2026-11-02
OSVRHLW-2026-bdf75f90d46c1da0
4.0
Lightwell Security Advisory: jackson-core 2.11.3.rhlw-00002
Red Hat Lightwell has released com.fasterxml.jackson.core:jackson-core 2.11.3.rhlw-00002 with a backported security fix.
CVE-2025-49128: Jackson-core Vulnerable to Memory Disclosure via Source Snippet in JsonLocation
This patched artifact is a drop-in replacement for com.fasterxml.jackson.core:jackson-core 2.11.3 from Maven Central.
- Record
RHLW-2026-bdf75f90d46c1da0- CVSS 3.1
- 4.0 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N - Updated
- 2026-11-02
OSVROOT-APP-MAVEN-CVE-2025-49128
4.0
CVE-2025-49128 in com.fasterxml.jackson.core:jackson-core - Patched by Root
Root has patched CVE-2025-49128 in the com.fasterxml.jackson.core:jackson-core package for Root:Maven. Multiple fixed versions available.
- Record
ROOT-APP-MAVEN-CVE-2025-49128- CVSS 3.1
- 4.0 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N - Updated
- 2026-11-02
OSVUBUNTU-CVE-2025-49128
4.0
Jackson-core contains core low-level incremental ("streaming") parser and generator abstractions used by Jackson Data Processor. Starting in version 2.0.0 and prior to version 2.13.0, a flaw in jackson-core's JsonLocation._appendSourceDesc method allows up to 500 bytes of unintended memory content to be included in exception messages. When parsing JSON from a byte array with an offset and length, the exception message incorrectly reads from the beginning of the array instead of the logical payload start. This results in possible information disclosure in systems using pooled or reused buffers, like Netty or Vert.x. This issue was silently fixed in jackson-core version 2.13.0, released on September 30, 2021, via PR #652. All users should upgrade to version 2.13.0 or later. If upgrading is not immediately possible, applications can mitigate the issue by disabling exception message exposure to clients to avoid returning parsing exception messages in HTTP responses and/or disabling source inclusion in exceptions to prevent Jackson from embedding any source content in exception messages, avoiding leakage.
- Record
UBUNTU-CVE-2025-49128- CVSS 3.1
- 4.0 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N - Updated
- 2026-11-02
OSVCLSA-2026-1776386157 No score
TuxCare security update for com.fasterxml.jackson.core:jackson-core (3 CVEs)
TuxCare rebuilt com.fasterxml.jackson.core:jackson-core to address 3 CVEs. Fixed in 2.12.1-tuxcare.1.
- Record
CLSA-2026-1776386157- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
com.fasterxml.jackson.core:jackson-coreMaven |
2.0.0 up to 2.13.0 | 2.13.0 |
com.fasterxml.jackson.core:jackson-coreTuxCare:Maven From an advisory covering 2 CVEs |
2.12.1 up to 2.12.1-tuxcare.1 | 2.12.1-tuxcare.1 |
jackson-coreDebian:12 |
before 2.13.0-1 | 2.13.0-1 |
jackson-coreDebian:13 |
before 2.13.0-1 | 2.13.0-1 |
jackson-coreDebian:14 |
before 2.13.0-1 | 2.13.0-1 |
com.fasterxml.jackson.core:jackson-coreMaven |
2.0.0 up to 2.13.0, plus listed versions 2.0.12.0.22.0.42.0.52.0.6 Show 45 moreShow less2.1.02.1.12.1.22.1.32.1.42.1.52.10.02.10.0.pr12.10.0.pr22.10.0.pr32.10.12.10.22.10.32.10.42.10.52.11.02.11.0.rc12.11.12.11.22.11.32.11.42.12.02.12.0-rc12.12.0-rc22.12.12.12.22.12.32.12.42.12.52.12.62.12.72.13.0-rc12.13.0-rc22.2.02.2.0-rc12.2.12.2.22.2.32.2.42.3.02.3.0-rc12.3.12.3.22.3.32.3.4 |
2.13.0 |
com.fasterxml.jackson.core:jackson-coreRed Hat Lightwell:Maven |
before 2.11.3.rhlw-00002, plus listed versions 2.0.02.0.0-RC12.0.0-RC22.0.0-RC32.0.1 Show 45 moreShow less2.0.22.0.42.0.52.0.62.1.02.1.12.1.22.1.32.1.42.1.52.10.02.10.0.pr12.10.0.pr22.10.0.pr32.10.12.10.22.10.32.10.42.10.52.11.02.11.0.rc12.11.12.11.22.11.32.2.02.2.0-rc12.2.12.2.22.2.32.2.42.3.02.3.0-rc12.3.12.3.22.3.32.3.42.3.52.4.02.4.0-rc12.4.0-rc22.4.0-rc32.4.12.4.1.12.4.22.4.3 |
2.11.3.rhlw-00002 |
com.fasterxml.jackson.core:jackson-coreRoot:Maven |
before 2.12.4-aikido.2 | 2.12.4-aikido.22.12.5-aikido.22.10.1-aikido.22.12.3-aikido.22.12.3-aikido.32.12.4-aikido.32.12.5-aikido.32.10.1-aikido.32.13.0-aikido.12.13.0-aikido.2 |
io.root.com.fasterxml.jackson.core:jackson-coreRoot:Maven |
before 2.12.4-root.io.2 | 2.12.4-root.io.22.12.5-root.io.22.10.1-root.io.22.12.3-root.io.22.12.3-root.io.32.12.4-root.io.32.12.5-root.io.32.10.1-root.io.32.13.0-root.io.12.13.0-root.io.2 |
jackson-coreUbuntu:16.04:LTS |
All versions, plus listed versions 2.4.2-2 |
None known |
jackson-coreUbuntu:18.04:LTS |
All versions, plus listed versions 2.8.6-12.9.1-12.9.4-12.9.8-3~18.04 |
None known |
jackson-coreUbuntu:20.04:LTS |
All versions, plus listed versions 2.9.8-32.10.0-12.10.1-1 |
None known |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected | ||
| facts | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2025-49128 is a medium vulnerability (CVSS 4.0) in Fasterxml Jackson-core, published June 6, 2025. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.41%, the 35th percentile. Fixed in com.fasterxml.jackson.core:jackson-core 2.13.0.
References
github.com/FasterXML/jackson-core/security/advisories/GHSA-wf8f-6423-gfxg
github.com/FasterXML/jackson-core/pull/652
github.com/FasterXML/jackson-core/commit/a6c297682737dde13337cb7c3020f299518609a8
nvd.nist.gov/vuln/detail/CVE-2021-22145
nvd.nist.gov/vuln/detail/CVE-2025-49128
github.com/advisories/GHSA-wf8f-6423-gfxg
Left out here: 137 versions. The JSON record has them.