Skip to main content

JHipster EUVDEUVD-2026-95116

| CVE-2026-107303 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-10-08 GitHub_M GHSA-9ffp-22j7-56r2
7.6
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as low-privileged user
  2. Delivery
    Store malicious Blob + ContentType via REST API
  3. Exploit
    Privileged user opens file via openFile helper
  4. Execution
    Blob executes as same-origin document
  5. Impact
    Script acts in privileged user's session

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires: (1) a generated entity with a Blob field plus its companion <field>ContentType property writable by a normal authenticated user - the generated REST resource omits method-level @PreAuthorize unless an entity authority is explicitly configured, so any authenticated user can write under the global /api/** rule; (2) the attacker storing active content (HTML or SVG) with a matching declared ContentType, since the generated code does not restrict MIME types or validate declared type against the bytes; and (3) a privileged user later clicking the UI link that calls the openFile helper (UI:R). Exploitation is LIMITED by the generated application's Content Security Policy and by target-browser Blob handling - a strict CSP or a browser that downloads rather than inline-renders the Blob neutralizes the payload - and by the requirement that both a write-capable account and a victim interaction exist.

Impact

This is a genuine but conditional stored XSS (CWE-79) in applications generated by generator-jhipster (<9.4.0) and react-jhipster (<=1.0.3), rated CVSS 7.6 with vector AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:L/A:N. The elevated score is driven largely by the scope change (S:C) - active HTML/SVG opened as a same-origin Blob document can act in the privileged victim's authenticated context - and high confidentiality impact. However, several signals temper real-world priority. No EPSS score, no CISA KEV listing, and no public exploit were provided in the input, so exploitation status is 'no public exploit identified at time of analysis.' The CVSS vector asserts AC:L, but both the CVE description and the GHSA advisory explicitly state that exploitability 'depends on the generated application's content security policy and target-browser Blob behavior' - a meaningful external precondition that arguably warrants AC:H and makes blanket exploitation unreliable. Exploitation also requires two human prerequisites: an authenticated attacker with write access to a Blob-bearing entity (PR:L), and a privileged user subsequently clicking to open that file (UI:R). Net assessment: a real defense-in-depth flaw worth patching, but not a drive-by remote-unauthenticated emergency; its practical severity hinges on whether the generated app ships a restrictive CSP and whether the target browser renders the Blob inline rather than downloading it.

Exploit ScenarioDerived

A low-privileged but authenticated user creates or updates an entity that carries a Blob field, uploading active content (e.g. an SVG or HTML payload) and setting the companion ContentType to 'image/svg+xml' or 'text/html' via the generated REST API, which lacks method-level @PreAuthorize under the global /api/** rule. Later an administrator or other privileged user views the entity and clicks the link that invokes the generated openFile helper, which builds a same-origin object URL using the attacker-supplied MIME type and opens it, executing the script under the application origin. No public exploit code was provided in the input, though the GHSA advisory documents the exact vulnerable code path.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 08, 2026

Stored cross-site scripting can occur in applications generated by JHipster before generator-jhipster 9.4.0 and react-jhipster 1.1.0 when an authenticated user stores attacker-controlled Blob content and a companion ContentType in a Blob-bearing entity and a privileged user later opens it through the generated UI. The assessed CVSS is 7.6 with vector CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:L/A:N, reflecting authenticated write access, required victim interaction, and conditional exploitability that depends on the generated application's CSP and target-browser Blob handling. No public exploit identified at time of analysis; vendor-released patches are generator-jhipster 9.4.0 and react-jhipster 1.1.0.

RemediationAI

Upgrade to generator-jhipster 9.4.0 or later and react-jhipster 1.1.0 or later, apply the upstream fix from PR https://github.com/jhipster/generator-jhipster/pull/34807 or commit https://github.com/jhipster/generator-jhipster/commit/efe95edd4dedc3379735094936439410a51ce3d9, and regenerate affected applications so the openFile helper restricts Blob MIME handling and forces non-displayable types to application/octet-stream downloads. For existing generated applications that cannot be regenerated, backport the template changes or modify the generated data-utils helper to ignore attacker-controlled ContentType for active formats and force a safe download behavior. Server-side compensating controls include configuring entity-specific authorities or @PreAuthorize checks on Blob-bearing REST resources instead of relying on the global /api/** rule, validating declared MIME types against uploaded bytes and rejecting text/html, image/svg+xml, and application/xhtml+xml, and serving user-uploaded Blobs with Content-Disposition: attachment or from a separate origin; these may reduce functionality or require infrastructure changes. A strict Content Security Policy that prevents inline script execution and object embedding can reduce exploitability but can also break application features and should be tested. Vendor advisory: https://github.com/jhipster/generator-jhipster/security/advisories/GHSA-9ffp-22j7-56r2.

Affected VersionsENISA

react-jhipster < 1.1.0
generator-jhipster < 9.4.0

Affected Packages

npm generator-jhipster fix: 9.4.0
npm react-jhipster fix: 1.1.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in npm

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

Technical ContextAI · show details

The issue is a CWE-79 trust-boundary failure in JHipster's generated code, tracked by CPE cpe:2.3:a:jhipster:generator-jhipster:*:*:*:*:*:*:*:* and cpe:2.3:a:jhipster:react-jhipster:*:*:*:*:*:*:*:*. Generated server code accepts entity creation/update for Blob-bearing entities; unless an entity-specific authority is configured, the REST resource omits method-level @PreAuthorize and falls under the global /api/** authenticated rule. The generated DTO/domain/mapper flow persists a companion <field>ContentType value as a plain String without MIME allowlisting or validation against the uploaded bytes. The client-side openFile helper in generators/client/generators/common/templates/src/main/webapp/app/shared/jhipster/data-utils.ts.ejs uses that server-returned ContentType as the Blob MIME type, creates an object URL, and opens it in a new same-origin window; active HTML or SVG can therefore render under the application origin if CSP and browser behavior permit. The upstream fix adds a BlobType parameter and forces non-displayable types such as text/html and image/svg+xml to application/octet-stream downloads rather than inline same-origin rendering.

Know when Jhipster 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 (GitHub_M) PRIMARY 7.6 HIGH
AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:L/A:N
vuln.today AI 6.5 MEDIUM

Authenticated write access gives PR:L; victim must open the file (UI:R); CSP/browser dependence justifies AC:H; same-origin execution crosses scope (S:C) with high confidentiality, low integrity, no availability impact.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

2
Patch available
Oct 08, 2026 - 19:18 EUVD
CVE Published
Oct 08, 2026 - 17:23 cve.org
HIGH 7.6

DescriptionCVE.org

JHipster is a development platform to quickly generate, develop, and deploy modern web applications and microservice architectures. Prior to generator-jhipster 9.4.0 and react-jhipster 1.1.0, generated applications can persist attacker-controlled Blob data and companion ContentType values, return them through generated REST endpoints, and pass them to the generated openFile helper in generators/client/generators/common/templates/src/main/webapp/app/shared/jhipster/data-utils.ts.ejs. The helper uses the returned ContentType as the browser Blob MIME type and opens an object URL, so a normal authenticated user with write access to a Blob-bearing entity can store active HTML or SVG content that may execute under the application origin when a privileged user opens it. Exploitability depends on the generated application's content security policy and target-browser Blob behavior. This issue is fixed in generator-jhipster 9.4.0 and react-jhipster 1.1.0.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 112 npm packages depend on generator-jhipster (111 direct, 1 indirect)

Ecosystem-wide dependent count for version 9.4.0.

Technical POC Analysis

Stored cross-site scripting (CWE-79) caused by a trust-boundary failure between generated server and client code, specifically an unrestricted MIME type passed into a same-origin Blob document.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Applications built with the JHipster generator (versions before generator-jhipster 9.4.0 and react-jhipster 1.1.0) can persist attacker-supplied Blob content that executes as stored script when a privileged user opens the affected record in the generated UI. The exposure is limited to authenticated users who already hold write access, and successful abuse depends on victim interaction and the target application's CSP configuration, so exploitation is conditional rather than opportunistic. Leadership should care because the targeted victims are typically administrators or privileged business users, making a single stored payload a potential path to session or account compromise in internally built applications.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 84% exploitable
Prevalence
Medium
popular open-source app generator, but only generated apps using Blob fields affected
Threat Intel
1
1 source
Data Quality
4 sources
Confidence: Medium
EUVD NVD CVE.org EPSS Vulnrichment GHSA GitHub VulDB

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 HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
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
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

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