Skip to main content

Apache Johnzon CVE-2026-71253

| EUVDEUVD-2026-104193 CRITICAL
Use of Externally-Controlled Input to Select Classes or Code ('Unsafe Reflection') (CWE-470)
2026-10-19 apache GHSA-66gj-8qvf-qvfh
9.8
CVSS 3.1 · Vendor: apache
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Submit crafted JSON to Johnzon deserialization endpoint
  2. Exploit
    ClassConverter resolves attacker-named class from input
  3. Execution
    Class loads and static initializer executes
  4. Impact
    Trigger code execution or side effect via classpath gadget

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V15 - Secure Coding and Architecture Reflection safety, class allowlisting
Exploitation Conditions

Exploitation requires that the host application use Johnzon to deserialize attacker-controlled JSON into a type routed through ClassConverter (i.e., a java.lang.Class-typed target field), AND that a class whose loading or static initialization causes a harmful side effect be present on the application classpath. Limiting factors: the app must actually expose such a deserialization path to untrusted input (no exploitation against Johnzon in isolation), realized impact is bounded by available classpath gadgets, and only Johnzon 1.0.0 to <1.3.1 (javax) and 2.0.0 to <2.2.0 (jakarta) are affected. No authentication is required per CVSS PR:N where the deserialization endpoint is unauthenticated.

Impact

Signals conflict sharply and should be weighed together rather than reading the 9.8 at face value. The NVD CVSS vector (AV:N/AC:L/PR:N/UI:N, C:H/I:H/A:H) and SSVC (Automatable: yes, Technical Impact: total) describe a worst-case unauthenticated network path with full impact, consistent with unsafe reflection (CWE-470) that loads and static-initializes an attacker-named class. Against that, EPSS is low (0.36%, 28th percentile), the vulnerability is NOT in CISA KEV, SSVC Exploitation is 'none', and no public exploit was identified - so there is no evidence of real-world exploitation yet. The 9.8 also assumes conditions the description implies but does not guarantee: the application must actually route untrusted JSON through Johnzon's ClassConverter (i.e., deserialize into a java.lang.Class-typed field), and a class whose mere loading/static-initialization causes harm must exist on the classpath. That makes this a genuinely serious library-level flaw worth prioritizing for teams that embed Johnzon and deserialize untrusted JSON, but the CVSS 9.8 likely overstates typical real-world risk; realized impact is gadget- and integration-dependent. Note the EPSS-vs-CVSS gap (low probability despite critical score) suggests latent rather than active risk. Patch and affected ranges are vendor-confirmed, so remediation is straightforward.

Exploit ScenarioDerived

An application uses Apache Johnzon to deserialize untrusted JSON (e.g., a JAX-RS request body) into an object whose field is resolved through ClassConverter. The attacker supplies a class name in that JSON field; Johnzon loads and static-initializes the attacker-chosen class, running its static initializer and triggering side effects (potential code execution or resource abuse) bounded by what gadget classes exist on the classpath. No public exploit code was identified at time of analysis.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 20, 2026

Unsafe reflection in Apache Johnzon's ClassConverter can cause the library to load and statically initialize an attacker-named class from untrusted JSON, potentially producing code execution or other harmful side effects when a suitable classpath gadget and an exposed deserialization path exist. Signals conflict sharply and should be weighed together rather than reading the 9.8 at face value: the public CVSS is 9.8 and SSVC technical impact is total, but the assessed vector uses AC:H, EPSS is 0.36% (28th percentile), no CISA KEV entry was present, and no public exploit identified at time of analysis. The issue affects Johnzon 1.0.0 to before 1.3.1 in the javax namespace and 2.0.0 to before 2.2.0 in the jakarta namespace, with fixed releases 1.3.1 and 2.2.0.

RemediationAI

Upgrade to the vendor-fixed releases: Apache Johnzon 1.3.1 for the javax namespace or 2.2.0 for the jakarta namespace, as stated in the vendor advisory https://lists.apache.org/thread.html/3vgm1yo2sn9yhkvvs9lc4ro01vl3zt68; the cited patch commits are https://github.com/apache/johnzon/commit/dd3d00634c746a2173a2518e882e85e8a151bf30 and https://github.com/apache/johnzon/commit/91e7b0d21d08d138944e2570691939739422a3d6. If upgrading immediately is not possible, do not deserialize untrusted JSON into java.lang.Class-typed fields or any type that routes through ClassConverter, and replace ClassConverter with a strict allowlist of expected class names, accepting that legitimate dynamic class resolution may break and must be regression-tested. Reduce the application classpath to only required libraries to limit available static-initializer gadgets, with the trade-off of possible functional impact, and require authentication or network restrictions on JSON deserialization endpoints that accept untrusted input as a compensating control. No public exploit was identified at time of analysis, so prioritize remediation based on whether an untrusted JSON-to-Class deserialization path is actually exposed.

Affected VersionsENISA

Apache Johnzon 2.0.0 <2.2.0
Apache Johnzon 1.0.0 <1.3.1

Affected Packages

euvd apache_johnzon fix: 1.3.1, 2.2.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Apache Johnzon is a Java JSON-P/JSON-B implementation, and its ClassConverter maps JSON string values to java.lang.Class objects, which requires resolving a class name through the application classloader and may trigger that class's static initializer. CWE-470 describes this unsafe reflection pattern: when the class name is externally controlled, an attacker can select any class present on the classpath rather than a fixed, intended type. The result is not automatic code execution in every deployment; realized impact depends on whether the host application deserializes untrusted JSON into a Class-typed field or a type routed through ClassConverter, and on whether a class with a dangerous static initializer or gadget behavior is available. The CVSS vector's PR:N means no authentication is required where the vulnerable path is exposed, but the application must actually expose that path, which is why the assessed vector raises attack complexity to AC:H. The affected namespace split matters: 1.0.0 to <1.3.1 uses javax, while 2.0.0 to <2.2.0 uses jakarta, and the referenced fix commits are cited by the vendor as patch references; the supplied diff excerpt mainly shows version bumps and JSON Schema validator changes, so the exact ClassConverter hardening is not fully visible in the excerpt.

Know when Apache Johnzon gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (apache) PRIMARY 9.8 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 8.1 HIGH

Network, unauthenticated untrusted JSON (AV:N/PR:N/UI:N), but AC:H because success depends on the app mapping input to a Class field and a suitable classpath gadget; impact potentially total.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (apache).

CVSS VectorVendor: apache

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

3
CVSS changed
Oct 20, 2026 - 20:22 NVD
9.8 (None) 9.8 (CRITICAL)
CVE Published
Oct 19, 2026 - 10:36 cve.org
CRITICAL 9.8
CVE Published
Oct 19, 2026 - 10:36 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

Use of Externally-Controlled Input to Select Classes or Code ('Unsafe Reflection') vulnerability in Apache Johnzon.

ClassConverter loads & static-initializes an attacker-named class from untrusted JSON.

This issue affects Apache Johnzon: from 1.0.0 before 2.2.0.

Users are recommended to upgrade to version 1.3.1 (javax namespace) or 2.2.0 (jakarta specification namespace), which fixes the issue.

Executive ViewAI

Why It Matters

Apache Johnzon, a Java JSON library, contains a critical unsafe-reflection flaw that could allow untrusted JSON to trigger code execution in applications that expose deserialization paths and have a suitable classpath gadget. Leadership should care because teams running vulnerable javax versions 1.0.0 through 1.3.0 or jakarta versions 2.0.0 through 2.1.x may have affected services, though no public exploit identified at time of analysis and assessed exploitation likelihood is low. Vendor-released patch: 1.3.1 (javax) and 2.2.0 (jakarta).

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.4%
Top 72% exploitable
Prevalence
Low
niche Apache JSON-P/JSON-B library, limited adoption versus Jackson/Gson
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
Medium
Technical Impact
Total

Priority Score

49
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +49
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy