CVE-2026-107303: JHipster generated applications stored XSS via unrestricted Blob content type

CVE-2026-107303 · Severity: high · CVSS 7.6 · Published 2026-10-08

JHipster is a code generator that creates web applications with Angular, React, or Vue frontends and Spring Boot backends. Applications generated by JHipster v9.2.0 allow authenticated users to upload files with attacker-controlled MIME types that are stored and later opened by privileged users in the browser, enabling stored cross-site scripting attacks that can steal authentication tokens and sensitive data or execute unauthorized actions.

Technologies: generator-jhipster (npm). Vendors: JHipster, npm.

Quick answers

Is CVE-2026-107303 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-107303 being exploited in the wild.
How severe is CVE-2026-107303?
High severity, with a CVSS score of 7.6, published 8 October 2026.
Which products and versions are affected?
JHipster Generator-Jhipster 9.2.0; generator-jhipster (npm) < 9.4.0, SEMVER:introduced=0,fixed=9.4.0; react-jhipster (npm) <= 1.0.3, SEMVER:introduced=0,fixed=1.1.0.
Is there a fix for CVE-2026-107303?
Yes. generator-jhipster (npm): upgrade to 9.4.0 or later; react-jhipster (npm): upgrade to 1.1.0 or later. Until then: Restrict Blob entity endpoints with entity-specific @PreAuthorize annotations to trusted roles, or disable the openFile helper and implement server-side file serving instead of client-side Blob opening; validate and allowlist ContentType values to safe types (application/pdf, image/png, image/jpeg) and reject active document formats (text/html, image/svg+xml, application/xml). Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-107303 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-107303?
Check whether you run JHipster Generator-Jhipster, generator-jhipster (npm) or react-jhipster (npm) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • generator-jhipster (npm): upgrade to 9.4.0 or later
    npm install generator-jhipster@9.4.0
  • react-jhipster (npm): upgrade to 1.1.0 or later
    npm install react-jhipster@1.1.0

Restrict Blob entity endpoints with entity-specific @PreAuthorize annotations to trusted roles, or disable the openFile helper and implement server-side file serving instead of client-side Blob opening; validate and allowlist ContentType values to safe types (application/pdf, image/png, image/jpeg) and reject active document formats (text/html, image/svg+xml, application/xml).

Technical details

The vulnerability is a stored XSS in the shared openFile helper function (data-utils.ts), which creates a Blob object from server-returned file data and MIME type, then opens it as a same-origin document via URL.createObjectURL and window.open. The REST API layer fails to validate or restrict the ContentType field for Blob-bearing entities, allowing any authenticated user to persist arbitrary MIME types alongside file content; when a privileged user accesses the entity detail or list page, the UI passes the untrusted ContentType to openFile, where active document formats (text/html, image/svg+xml) can execute script depending on CSP and browser behavior. A fix is available.

Affected products

  • JHipster generator-jhipster 9.2.0

Identifiers

  • CVE-2026-107303
  • GHSA-9ffp-22j7-56r2

Timeline

  • 2026-10-08: disclosed

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.