NIST deprecates RSA-2048 from 2030. Find every one of them before attackers do.
☕
☕ Maven
Not in CISA KEV
CRITICAL severity

CVE-2026-25526 — jinjava

CRITICALFix: HubSpot/jinjava@3d02e50

CVE-2026-25526 is a critical-severity (CVSS 9.8) CWE-1336 vulnerability in com.hubspot.jinjava:jinjava. A fix is available for com.hubspot.jinjava:jinjava — see the affected versions and patch details below.

JinJava Bypass through ForTag leads to Arbitrary Java Execution

Also known asGHSA-gjx9-j8f8-7j74
Published
Updated
Affected
2 pkgs
Patched
2 / 2
Exploits
None indexed
Exploitation data as of Nov 6, 2026 · OSV.dev, NVD, FIRST.org (EPSS)

Exploitation Status

No confirmed exploitation observed yet

  • CISA assesses this as automatable — exploitation doesn’t require manual, per-target effort, which raises the odds of mass scanning and opportunistic attacks.
  • A successful exploit gives an attacker total control of the affected component, not partial access.
  • CISA’s own triage has not observed active exploitation or public proof-of-concept code for this CVE as of its last assessment.

Exploitation and automatability from CISA’s SSVC triage for CVE-2026-25526.

EPSS Exploitation Probability

via FIRST.org ↗
1.0%probability of exploitation in next 30 days
Lower Risk0.00%
Lower risk than most CVEs62th percentile — riskier than 62% of all scored CVEsHighest risk
0.00%0.49%0.98%1.47%0.0%1.0%May 26Sep 26Nov 26

Probability of exploitation in the next 30 days, from FIRST.org EPSS.

How urgent is this, really

Where this sits among everything scored

Real-World Exposure

2 pkgs affected
☕com.hubspot.jinjava:jinjava☕com.hubspot.jinjava:jinjava

Real-time download stats are indexed for npm and PyPI packages. This vulnerability affects Maven packages — download data is not available via public APIs for these ecosystems.

Description

Impact

Vulnerability Type: Sandbox Bypass / Remote Code Execution

Affected Component: Jinjava

Affected Users:

  • Organizations using HubSpot's Jinjava template rendering engine for user-provided template content
  • Any system that renders untrusted Jinja templates using HubSpot's Jinjava implementation
  • Users with the ability to create or edit custom code templates

Severity: Critical - allows arbitrary Java class instantiation and file access bypassing built-in sandbox restrictions

Root Cause: Multiple security bypass vulnerabilities in Jinjava's sandbox mechanism:

  1. ForTag Property Access Bypass: The ForTag class does not enforce JinjavaBeanELResolver restrictions when iterating over object properties using Introspector.getBeanInfo() and invoking getter methods via PropertyDescriptor.getReadMethod()

  2. Restricted Class Instantiation: The sandbox's type allowlist can be bypassed by using ObjectMapper to instantiate classes through JSON deserialization, including creating new JinjavaELContext and JinjavaConfig instances

Attack Vector: An attacker with the ability to create or edit Jinja templates can:

  • Access arbitrary getter methods on objects in the template context
  • Instantiate ObjectMapper to enable default typing
  • Create arbitrary Java classes by bypassing type allowlists
  • Read files from the server filesystem (demonstrated with /etc/passwd)
  • Potentially execute arbitrary code

Patches

Status: Patched - CVE-2026-25526

Users should upgrade to one of the following versions which contain fixes for this vulnerability:

  • JinJava 2.8.3 or later
  • JinJava 2.7.6 or later

Fix Components:

  1. ForTag Security Hardening

    • Added security checks to ForTag.renderForCollection() to enforce JinjavaBeanELResolver restrictions
    • Implemented property access validation against restricted properties/methods before invoking getter methods
    • Added checks for restricted class types before introspection
  2. Enhanced Type Validation

    • Improved validation in JinjavaBeanELResolver.isRestrictedClass() to prevent instantiation of sensitive types
    • Added additional restricted types to the denylist
    • Implemented deeper validation for types created via ObjectMapper deserialization
  3. Configuration Protection

    • Added checks to prevent creation of new JinjavaConfig or JinjavaELContext instances via ObjectMapper
    • Prevented modification of readOnlyResolver configuration from untrusted templates
    • Implemented additional safeguards around ELResolver configuration
  4. Collection Type Validation

    • Implemented proper type validation in HubLELResolver to prevent collection type wrapping bypasses
    • Added checks for wrapped types in collection deserialization
    • Implemented validation for all types within collections against allowlists
  5. ObjectMapper Restrictions

    • Added additional restrictions on ObjectMapper.enableDefaultTyping() to prevent enabling via less restrictive ELResolver
    • Ensured default typing cannot be enabled without proper authorization

Information for Users: Upgrade to version 2.8.3 or 2.7.6 or later to address this vulnerability.

References

Project Resources

Security Standards & Classifications

  • CWE-502: Deserialization of Untrusted Data
  • CWE-913: Improper Control of Dynamically-Managed Code Resources
  • CWE-94: Improper Control of Generation of Code ('Code Injection')
  • CVSS v3.1: Common Vulnerability Scoring System

Additional Resources

Affected Packages

2 total 2 fixed
EcosystemPackageVulnerable rangeFix
☕Mavencom.hubspot.jinjava:jinjava≥ 2.8.0&&< 2.8.32.8.3com.hubspot.jinjava:jinjava:2.8.3
☕Mavencom.hubspot.jinjava:jinjavaall versions2.7.6com.hubspot.jinjava:jinjava:2.7.6

Affected Products

1 product · 2 configurations
Application
jinjavahubspot
≥ 2.8.0 && < 2.8.3
range

Detection & mitigation playbook

Open-source dependency
  1. Detect

    Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for com.hubspot.jinjava:jinjava, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.

  2. Fix

    Update com.hubspot.jinjava:jinjava to 2.8.3 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms CVE-2026-25526 is resolved across your whole dependency graph.

  3. Workarounds

    Stop passing untrusted input into the interpreter or shell: call the affected binary with an argument array rather than a composed command string, reject anything outside a strict allowlist of expected values, and run the component under an account that cannot reach beyond the work it legitimately does.

Frequently Asked Questions

## Impact **Vulnerability Type**: Sandbox Bypass / Remote Code Execution **Affected Component**: Jinjava **Affected Users**: - Organizations using HubSpot's Jinjava template rendering engine for user-provided template content - Any system that renders untrusted Jinja templates using HubSpot's Jinjava implementation - Users with the ability to create or edit custom code templates **Severity**: **Critical** - allows arbitrary Java class instantiation and file access bypassing built-in sandbox restrictions **Root Cause**: Multiple security bypass vulnerabilities in Jinjava's sandbox mechanis
O3 Security · Impact-Aware SCA

Is CVE-2026-25526 in your dependencies?

Find it across Maven, including transitive dependencies.

CVE-2026-25526: jinjava RCE — Fixed in 2.8.3