CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-65842

CVE-2026-65842: Server-Side Request Forgery with Response Disclosure in @platejs/docx-io

Alon Barad
Alon Barad
Software Engineer

Sep 3, 2026·6 min read·3 visits

Executive Summary (TL;DR)

An SSRF flaw in @platejs/docx-io prior to 53.3.2 allows unauthenticated remote attackers to trigger outbound requests to internal resources and extract the full response content from the generated DOCX file.

CVE-2026-65842 is a high-severity Server-Side Request Forgery (SSRF) vulnerability with response disclosure in the @platejs/docx-io package of the Plate rich-text editor ecosystem. Prior to version 53.3.2, the library parsed HTML image tags and unconditionally fetched remote URL resources. Because the server-side response is subsequently encoded and compiled into the generated DOCX file, an attacker can extract sensitive internal data such as local API endpoints, private network configurations, or cloud instance metadata (IMDS) from the downloaded document structure.

Vulnerability Overview

The @platejs/docx-io package, developed by udecode, is a server-side and client-side utility in the Plate rich-text editor ecosystem designed to convert HTML input into Microsoft Word (.docx) documents. In many application architectures, this process is run on the server to handle document exports or reports. To support images embedded within the rich text, the generator processes HTML <img> elements and attempts to resolve their target media resources for embedding.

Prior to version 53.3.2, the library automatically evaluated the src attribute of any <img> element. If the parsed attribute pointed to a valid remote URL, the server-side environment would perform an outbound HTTP GET request to download the image. This logic operated unconditionally, creating an unauthenticated attack surface that accepted untrusted URLs as inputs to the document parsing process.

The vulnerability is classified under CWE-918 (Server-Side Request Forgery). Unlike simple or blind SSRF vulnerabilities, this flaw results in complete response disclosure because the retrieved raw byte streams are compiled into the generated DOCX document structure. Attackers can leverage this behavior to bypass firewalls, probe internal subnets, and extract private data from cloud services or local loopback interfaces.

Root Cause Analysis

The root cause of this vulnerability lies in the unrestricted usage of the outbound image resolution parser inside the HTML-to-DOCX compilation workflow. When the htmlToDocxBlob() function is executed, it parses the input HTML markup and initiates the building of the document XML schemas. Two core helper modules manage this process: render-document-file.ts and xml-builder.ts.

Inside these helper modules, functions such as buildImage and buildParagraph analyze the HTML nodes. When the parser matches an <img> tag, it checks if the source matches a valid external address via an internal isValidUrl validator. If this check returns true, the application invokes the imageToBase64() function, which issues an HTTP request using the global runtime environment's standard fetch client.

The outbound HTTP client does not evaluate or sanitize the target address before execution. It does not verify whether the IP address points to local addresses (RFC 1918), loopback interfaces (e.g., 127.0.0.1), or link-local cloud instances (e.g., 169.254.169.254). Any response bytes retrieved are written directly into the document container structure without format verification.

Code Analysis and Patch Diff Analysis

To resolve the security risk, the maintainers implemented configuration checks in pull request #5053, introducing the allowRemoteImages parameter. This parameter is configured to default to false. By disabling remote image fetching, the library prevents unexpected outbound HTTP requests from occurring during document processing.

The following code snippet highlights the critical structural modifications introduced in the patch commit 21aa59926f4bbd421027354823cca09c6700ed73 inside packages/docx-io/src/lib/internal/helpers/render-document-file.ts:

export const buildImage = async (
  // ... parameters
) => {
  // ... initialization
 
-   if (imageSource && isValidUrl(imageSource)) {
+   if (
+     docxDocumentInstance.allowRemoteImages &&
+     imageSource &&
+     isValidUrl(imageSource)
+   ) {
      const base64String = (await imageToBase64(imageSource).catch(() => {})) as
        | string
        | undefined;
 
        // ... base64 encoding code
-   } else if (imageSource) {
+   } else if (imageSource?.startsWith('data:')) {
      base64Uri = decodeURIComponent(imageSource);
    }

Additionally, similar sanitization changes were implemented in packages/docx-io/src/lib/internal/helpers/xml-builder.ts to block standard URLs from initiating network fetches. The revised engine now restricts alternative image types to data-based inline URIs (e.g., data:image/png;base64,...). The parser strictly processes local base64 strings, avoiding network interaction entirely when allowRemoteImages is false.

Exploitation Methodology

An attacker can exploit this vulnerability by submitting an HTML payload containing a crafted <img> element to any application endpoint that converts user-provided rich text to the DOCX format. Since there is no input verification or network proxy isolating the request, the application server acts as a proxy, fetching the targeted resources within the server's network context.

The following HTTP payload example illustrates a request designed to query an internal API and extract local information:

<p>Document Header</p>
<!-- Targeted at AWS EC2 Instance Metadata Service (IMDSv1) -->
<img src="http://169.254.169.254/latest/meta-data/iam/security-credentials/" />
<!-- Targeted at internal administrative microservices -->
<img src="http://127.0.0.1:8080/admin/health" />

Upon generating the target file, the backend saves the retrieved text content as an image stream. To extract the disclosed information, the attacker downloads the generated .docx file and treats it as a standard .zip archive. Executing unzip document.docx exposes the file structure. The attacker then reads the raw content of the leaked responses by opening the compiled binary objects stored in /word/media/image1.png or /word/media/image2.png.

Impact Assessment

The impact of this vulnerability is significant, as it leads to full response disclosure. Typical blind SSRF vulnerabilities only permit an attacker to probe ports or trigger outbound requests. In this case, because the server encodes the response and returns it within the file, the attacker gains direct visibility into internal systems.

In cloud environments such as Amazon Web Services (AWS), Google Cloud Platform (GCP), or Microsoft Azure, this flaw allows attackers to access Metadata Services (IMDS). For example, querying http://169.254.169.254/ can reveal instance credentials, access tokens, and private configuration variables, which may lead to complete infrastructure compromise.

The CVSS v3.1 base score is 8.2 (High), with a High Confidentiality impact (C:H). The vulnerability requires no user interaction, zero privileges, and has low exploitation complexity, making it a viable target for unauthorized lateral movement once an attacker maps the application's document export features.

Remediation and Mitigation

Remediation requires upgrading @platejs/docx-io to version 53.3.2 or later, which disables remote image loading by default. Developers must verify that their package management configurations are correctly updated and lock file declarations are regenerated to ensure older transitive dependencies are evicted.

# Upgrade dependency to fixed version
npm install @platejs/docx-io@53.3.2

If you must enable allowRemoteImages: true to support remote images, you must implement strong security controls. These include validating all URLs before passing them to the generator and blocking private IP space (such as 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 127.0.0.0/8, and 169.254.169.254).

Additionally, apply egress network policies at the firewall or container runtime level. This ensures that the system components executing the document generation process are network-isolated and cannot communicate with internal endpoints or sensitive metadata services.

Official Patches

udecodePull request containing implementation details and tests for the allowRemoteImages option

Fix Analysis (1)

Technical Appendix

CVSS Score
8.2/ 10
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:L
EPSS Probability
0.30%
Top 78% most exploited

Affected Systems

@platejs/docx-io (< 53.3.2)Applications utilizing Plate's HTML-to-DOCX export capabilities on the server-side

Affected Versions Detail

Product
Affected Versions
Fixed Version
@platejs/docx-io
udecode
< 53.3.253.3.2
AttributeDetail
CWE IDCWE-918
Attack VectorNetwork (AV:N)
CVSS v3.1 Score8.2 (High)
Confidentiality ImpactHigh (C:H)
Exploit StatusPoC (Proof of Concept)
CISA KEV StatusNot Listed

MITRE ATT&CK Mapping

T1190Exploit Public-Facing Application
Initial Access
T1005Data from Local System
Collection
CWE-918
Server-Side Request Forgery (SSRF)

The web application server-side component receives an untrusted URL from a client, makes a request to that URL, and discloses the retrieved response content back to the client.

Known Exploits & Detection

GitHub Security AdvisoryInformation on the initial discovery and verification process for the server-side request forgery vulnerability.

Vulnerability Timeline

Maintenance update registered during private triage phase.
2026-06-30
Vulnerability triaged by maintainers and patch implemented in PR #5053.
2026-07-03
Fixed version v53.3.2 released on npm registry.
2026-07-03
Security advisory GHSA-4q39-2jhr-7qx8 published to coordinate disclosure.
2026-08-20
NVD analysis completed, classifying CVSS profile and severity characteristics.
2026-08-21

References & Sources

  • [1]GitHub Security Advisory GHSA-4q39-2jhr-7qx8
  • [2]Official Pull Request #5053
  • [3]Fix Commit
  • [4]Release v53.3.2
  • [5]NVD CVE-2026-65842 Detail
  • [6]CVE.org Record

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•17 minutes ago•CVE-2026-63435
5.3

CVE-2026-63435: Parser Interpretation Conflict in Ruby Mail Gem RFC 2047 Decoders

An interpretation conflict (CWE-436) exists in the Ruby 'mail' library's RFC 2047 decoding implementation. Vulnerable versions utilize regular expressions with overly greedy qualifiers and a singular matching strategy. When parsing malformed headers, these design flaws trigger unexpected exception-handling behaviors, outputting raw, unparsed strings. Consequently, intermediate security gateways and downstream Ruby processors interpret email addresses differently, enabling authentication bypasses, phishing, and header spoofing.

Alon Barad
Alon Barad
0 views•5 min read
•about 1 hour ago•CVE-2026-63481
6.9

CVE-2026-63481: Sensitive Information Exposure in Hurl [Cookies] Redirection

Hurl version 8.0.1 and earlier contains a sensitive information exposure vulnerability during cross-origin HTTP redirections. Cookies defined via a dedicated [Cookies] parser block are carried into the redirected request, whereas standard raw Cookie headers are correctly stripped. This allows attackers to capture session credentials by redirecting Hurl clients to untrusted external hosts.

Amit Schendel
Amit Schendel
2 views•6 min read
•about 2 hours ago•CVE-2026-63490
7.5

CVE-2026-63490: Path Traversal and Arbitrary File Disclosure in Handlebars.java

CVE-2026-63490 is a critical path traversal vulnerability in the Spring MVC integration of Handlebars.java. It allows unauthenticated remote attackers to bypass suffix validation and retrieve arbitrary system files via crafted dynamic view names.

Alon Barad
Alon Barad
2 views•5 min read
•about 3 hours ago•CVE-2026-4692
10.0

CVE-2026-4692: Sandbox Escape via Responsive Design Mode in Mozilla Firefox and Thunderbird

CVE-2026-4692 is a critical security vulnerability within the multi-process architecture of Mozilla Firefox, Firefox ESR, and Mozilla Thunderbird. It is classified as a sandbox escape residing in the Responsive Design Mode (RDM) component. Due to a missing authorization check during Inter-Process Communication (IPC) synchronization of BrowsingContext state, a compromised content process can unilaterally declare its top-level browsing context to be rendered in Responsive Design Mode. This state modification relaxes hit-test bounds restrictions, enabling the content process to dispatch synthesized touch events that target and trigger clicks within privileged browser UI (Chrome UI) elements. The exploitation of this vulnerability achieves complete sandbox escape and arbitrary code execution in the context of the parent process.

Amit Schendel
Amit Schendel
3 views•6 min read
•about 3 hours ago•CVE-2026-2763
9.8

CVE-2026-2763: Use-After-Free in SpiderMonkey Generator for-in Loops

A critical use-after-free vulnerability exists in the SpiderMonkey JavaScript engine of Mozilla Firefox and Thunderbird. The flaw occurs when a generator object containing an active for-in loop is garbage-collected before the loop's iterator scope is finalized. This leaves a dangling pointer in the compartment's active enumerators list, allowing attackers to corrupt memory and execute arbitrary code.

Alon Barad
Alon Barad
3 views•6 min read
•about 4 hours ago•CVE-2026-60206
9.9

CVE-2026-60206: Unauthenticated SAML Authentication Bypass in Oracle WebLogic Server

A critical vulnerability (CVE-2026-60206) in Oracle WebLogic Server allows unauthenticated or low-privileged attackers to bypass SAML authentication controls. This flaw stems from improper validation of XML signatures and parsing discrepancies in SAML assertions, allowing arbitrary administrative session creation.

Amit Schendel
Amit Schendel
4 views•5 min read