Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-10239

CVE-2026-10239: JeecgBoot SSRF Vulnerability

CVE-2026-10239 is a server-side request forgery flaw in JeecgBoot up to version 3.9.2 affecting the WordUtil.addImage function. This remotely exploitable vulnerability allows attackers to manipulate server requests.

Published:

CVE-2026-10239 Overview

CVE-2026-10239 is a Server-Side Request Forgery (SSRF) vulnerability in JeecgBoot versions up to 3.9.2. The flaw resides in the WordUtil.addImage function reachable through the /airag/word/edit endpoint. An authenticated remote attacker can manipulate input to coerce the server into issuing arbitrary outbound HTTP requests. The exploit details have been publicly disclosed, increasing the likelihood of opportunistic abuse. The vendor has indicated that a fix is planned for an upcoming release. The weakness is tracked under CWE-918.

Critical Impact

Authenticated attackers can abuse the /airag/word/edit endpoint to make the JeecgBoot server send crafted HTTP requests to internal or external hosts, enabling internal network reconnaissance and access to otherwise unreachable services.

Affected Products

  • JeecgBoot versions up to and including 3.9.2
  • The WordUtil.addImage function in the /airag/word/edit handler
  • Deployments exposing the AIRAG word editing feature to authenticated users

Discovery Timeline

  • 2026-06-01 - CVE-2026-10239 published to the National Vulnerability Database
  • 2026-06-01 - Public disclosure referenced in GitHub Issue #9610 and VulDB entry #367517
  • 2026-06-01 - Last updated in the NVD database

Technical Details for CVE-2026-10239

Vulnerability Analysis

JeecgBoot is a low-code development platform widely used for building enterprise web applications in Java. The /airag/word/edit endpoint accepts user-supplied data that flows into WordUtil.addImage, a helper that fetches an image resource to embed into a generated Word document. The function performs an outbound HTTP request using a URL controlled by the requester without enforcing strict allow-list validation on the destination host, scheme, or port. An attacker with valid credentials can submit a request whose image URL points at an internal address such as a cloud metadata service, an intranet web application, or a non-HTTP port. The server then performs the request on the attacker's behalf and may return response data, error content, or timing differences that disclose information about the internal environment.

Root Cause

The root cause is missing validation of a user-controlled URL parameter in WordUtil.addImage before it is dereferenced by the HTTP client. The function trusts caller-supplied input rather than restricting requests to a vetted set of external hosts, which maps directly to CWE-918: Server-Side Request Forgery.

Attack Vector

Exploitation is performed over the network against the /airag/word/edit endpoint. The attacker must hold a low-privilege authenticated session on the JeecgBoot instance. By supplying a crafted image URL parameter, the attacker forces the backend to issue HTTP requests to arbitrary destinations, including loopback addresses, RFC1918 ranges, and cloud instance metadata endpoints.

// Conceptual exploitation pattern (no verified PoC code is published)
// Authenticated request to the vulnerable endpoint:
// POST /airag/word/edit
// { ..., "imageUrl": "http://169.254.169.254/latest/meta-data/" }
// The server-side WordUtil.addImage method retrieves the supplied URL
// and may surface response content or error data to the caller.

Detection Methods for CVE-2026-10239

Indicators of Compromise

  • Authenticated HTTP requests to /airag/word/edit containing URL parameters that reference internal IP ranges, localhost, 127.0.0.1, or cloud metadata addresses such as 169.254.169.254
  • Outbound connections originating from the JeecgBoot application server to unexpected internal hosts or non-standard ports shortly after calls to the word editor
  • Application log entries from WordUtil.addImage referencing non-image schemes such as file://, gopher://, or ftp://

Detection Strategies

  • Inspect web access logs for POST or PUT calls to /airag/word/edit and parse any URL fields for non-public destinations before the request reaches the application
  • Correlate JeecgBoot application logs with egress firewall logs to identify outbound traffic that does not match expected image-hosting CDNs
  • Add web application firewall rules that flag image URL parameters resolving to private address space or link-local ranges

Monitoring Recommendations

  • Monitor for anomalous spikes in outbound connections from the JeecgBoot host to internal subnets, including TCP ports unrelated to image retrieval such as 22, 3306, 6379, or 8500
  • Alert on any access to cloud metadata endpoints from the application server, since legitimate document generation should never touch them
  • Track authentication events for low-privilege accounts that subsequently invoke /airag/word/edit at high volume

How to Mitigate CVE-2026-10239

Immediate Actions Required

  • Restrict access to the /airag/word/edit endpoint to trusted internal users until a patched JeecgBoot release is available
  • Place the JeecgBoot application server behind an egress proxy that denies traffic to RFC1918, loopback, and link-local destinations
  • Audit existing accounts and revoke credentials that no longer require access to the AIRAG word features

Patch Information

The JeecgBoot maintainers have indicated that a fix is planned for an upcoming release. No patched version is available at the time of publication. Track the JeecgBoot GitHub repository and GitHub Issue #9610 for release notes and apply the fixed version as soon as it is published.

Workarounds

  • Implement a network-level allow-list that limits outbound HTTP traffic from the JeecgBoot server to required image and CDN hosts only
  • Configure a reverse proxy or WAF rule to reject requests to /airag/word/edit whose URL parameters do not match an approved scheme and domain pattern
  • Disable the AIRAG word editing feature in deployments that do not require it, or block the route entirely at the ingress layer
bash
# Example: block outbound traffic to internal and metadata ranges from the JeecgBoot host
iptables -A OUTPUT -d 169.254.169.254 -j REJECT
iptables -A OUTPUT -d 127.0.0.0/8 -j REJECT
iptables -A OUTPUT -d 10.0.0.0/8 -j REJECT
iptables -A OUTPUT -d 172.16.0.0/12 -j REJECT
iptables -A OUTPUT -d 192.168.0.0/16 -j REJECT

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.