CWE-829Weakness · CWE-829

CVE-2025-70974

CRITICAL · 10.0 CVSS v3.1 Published 2026-01-09
Mitigation only
No fix yet — a mitigation exists. There is no fixed release. A documented workaround reduces exposure in the meantime.
See remediation →
100/100
Remediation priority · Urgent
Remotely reachable No privileges Zero-click

Official description Straight from the sourceThe vendor's or NVD's own wording, published unedited. Authoritative, but often terse — it says what broke, rarely what to do.

NVD · unedited
Fastjson before 1.2.48 mishandles autoType because, when an @type key is in a JSON document, and the value of that key is the name of a Java class, there may be calls to certain public methods of that class. Depending on the behavior of those methods, there may be JNDI injection with an attacker-supplied payload located elsewhere in that JSON document. This was exploited in the wild in 2023 through 2025. NOTE: this issue exists because of an incomplete fix for CVE-2017-18349. Also, a later bypass is covered by CVE-2022-25845.

Technical summary Written by usOur analysis, written from the advisory, the CVSS vector and the affected-version data. It adds context the advisory leaves out, and never invents facts that are not in the source.

dbcve analysis · high confidence

Fastjson versions before 1.2.48 have a critical deserialization flaw in the autoType feature. When a JSON document contains an @type key with a Java class name value, Fastjson will instantiate and call public methods on that class, which can be chained to achieve JNDI injection with attacker-supplied payloads located elsewhere in the same JSON document. This vulnerability stems from an incomplete fix for CVE-2017-18349 and was actively exploited in the wild from 2023-2025.

MitigationUpgrade to Fastjson 1.2.48 or later to obtain the complete fix; if immediate upgrade is not feasible, disable autoType support via the ParserConfig.getGlobalInstance().setAutoTypeSupport(false) setting.

Verify against the referenced sources before acting — the references below are authoritative for this CVE, this summary is not.

CVSS breakdown How the score is builtThe industry scoring standard. It rates how the flaw is reached, what it takes to exploit, and what an attacker gains — the score is derived from those, not the other way round.

From the vector
Attack vector
Network
Complexity
Low
Privileges
None
User interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H

Am I affected? How to checkSteps we derive from the advisory and the affected-version data, so you can decide whether this CVE reaches your setup. They are a guide, not a scan — your own configuration is the authority.

dbcve checks

Work through these to decide whether this CVE applies to you.

  1. Identify Fastjson version
    Search for fastjson JAR files in your project dependencies (pom.xml, build.gradle, lib directories) or inspect the MANIFEST.MF inside the fastjson JAR file. Look for the version attribute.
    Affected if The installed Fastjson version is earlier than 1.2.48
  2. Check autoType configuration
    Search configuration files and application code for 'ParserConfig.getGlobalInstance().setAutoTypeSupport(true)' or 'Features.AutoTypeSupport' settings. Also check for 'safeMode' or 'disableAutoType' calls.
    Affected if autoType support is explicitly enabled (setAutoTypeSupport(true)) or has not been explicitly disabled
  3. Verify JSON input handling
    Review code that uses JSON.parse() or JSON.parseObject() to determine if untrusted JSON input containing '@type' keys can reach the Fastjson parser.
    Affected if The application parses JSON from untrusted sources using Fastjson without filtering the @type field
  4. Inspect logging for exploitation attempts
    Review application logs for patterns like 'JNDI', 'ldap', 'rmi', 'dns', or unexpected class loading messages that may indicate exploitation attempts.
    Affected if Logs show suspicious class loading or network lookup patterns associated with JNDI injection attempts

You are affected if Fastjson version is before 1.2.48 AND autoType is enabled (or not explicitly disabled), especially if the application parses untrusted JSON input.

Generated from the published advisory. Verify against your own configuration.

Check your environment

Paste your version and any relevant configuration and it will be compared against the affected criteria above. Do not include secrets or credentials.

AI-assisted, checked against the advisory. Informational, not a guarantee.

Remediation Closing itWhat it takes to close this. Where a vendor fix exists we point at it; where none exists we say so plainly, and can build one. Effort estimates are scoped from the advisory, not from your codebase.

dbcve · scoped
Mitigation available No clean upgrade yet — mitigate in the meantime
Mitigation

Upgrade to Fastjson 1.2.48 or later to obtain the complete fix; if immediate upgrade is not feasible, disable autoType support via the ParserConfig.getGlobalInstance().setAutoTypeSupport(false) setting.

Recommended fix High confidence

Fastjson 2.0.x (latest stable release) or Fastjson 1.2.83+

  1. 1. Upgrade Fastjson to the latest version (2.0.x series recommended, as 1.x is in maintenance mode)
  2. 2. If upgrading to 2.0.x is not immediately feasible, upgrade to at least Fastjson 1.2.83 or later which contains additional security fixes
  3. 3. After upgrading, disable autoType by adding the following configuration: ParserConfig.getGlobalInstance().setAutoTypeSupport(false);
  4. 4. Alternatively, use the SafeMode feature introduced in Fastjson 2.x by setting: JSON.parseObject(jsonString, Object.class,Feature.SafeMode);
  5. 5. Review all JSON parsing code to ensure autoType is not being explicitly enabled inadvertently
  6. 6. Monitor for any suspicious deserialization activity in application logs
  7. 7. If possible, implement allowlist-based parsing using ParserConfig.addAccept() to restrict allowed classes
Caveat Upgrading from Fastjson 1.x to 2.x may require code changes due to API differences; 2.x has different package structure (com.alibaba.fastjson2 vs com.alibaba.fastjson)

Generated from the published advisory — verify against the referenced sources before acting.

Have this fixed Scoped from the published advisory
  • Consultation8.0 h
  • Implementation16.0 h
  • Testing12.0 h
  • Review / QA4.0 h
40.0 hours of engineering $7,000
Get help mitigating

An estimate, not a bill — we confirm scope with you before any work starts. Need it this week? Rush from $11,200.

Scan for this in your stack

Free · runs locally
dbcve dependency scanner

Check whether your project pulls in CVE-2025-70974 — or any other known-vulnerable package — straight from your lock files. Free and open source; it runs locally and uploads nothing.

References Go to the primary sourcePrimary sources — vendor advisories, patches and trackers. Where our summary and a reference disagree, the reference wins.

Primary sources

Practitioner notes

Contributed

Peer-ranked notes from engineers who’ve handled CVE-2025-70974 in production — separate from our analysis above.

No notes yet

Be the first to add a field note for this CVE — a mitigation you’ve verified, a version caveat, or a link to a working fix. Sign in above to contribute.

What this is

A place for practitioners to share what actually worked: a mitigation you’ve tested, a configuration change, a version- or environment-specific caveat, or a link to a verified patch. The most useful notes rise to the top as peers upvote them, so the signal stays high.

What belongs here
  • Verified mitigations, workarounds, and config changes
  • Version or environment caveats, and links to real fixes
  • No weaponised exploit code, or anything meant to cause harm
  • No spam, self-promotion, credentials, or personal data