{"id":"CVE-2026-126998","kind":"vulnerability","aliases":["CVE-2026-126998"],"related":[],"title":"JeecgBoot: authentication filter flaw lets remote users trigger server-side requests","description":"A security flaw has been discovered in JeecgBoot up to 3.9.5. This vulnerability affects the function OpenApiController.call of the file /openapi/call of the component Authentication Filter. The manipulation results in server-side request forgery. The attack can be executed remotely. The exploit has been released to the public and may be used for attacks. The vendor was contacted early about this disclosure but did not respond in any way.","summary":"JeecgBoot up to version 3.9.5 has a server-side request forgery flaw in its OpenAPI call endpoint (/openapi/call). A remote attacker can make the server send requests to addresses of the attacker's choosing, which can reach internal services.","severity":"high","cvss":7.5,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"jeecg-boot","fixed":[],"affected":"<= 3.9.5","ecosystem":"maven"}],"ecosystems":[],"tags":["java","jeecgboot","other","self-hosted","ssrf"],"not_affected_if":["endpoint-blocked","internal-only","newer-version"],"how_to_check":"- Check the JeecgBoot version: 3.9.5 or earlier is in range per NVD; 3.9.6 is the latest release but is not confirmed as the fix for this CVE.\n- /openapi/call/{path} is not behind the normal login token (issue #9705 describes it as publicly accessible, with only an AK header check), so test whether it is reachable from the internet or untrusted networks.\n- Review stored OpenAPI entries (originUrl) for internal addresses (127.0.0.1, 169.254.169.254, RFC1918).\n- Stopgap: block /openapi/call at the proxy if you do not use OpenAPI integrations, and block egress from the app to metadata and internal ranges.","fix":"No fix is named for this CVE. The vendor did not respond to the reporter (per NVD). JeecgBoot v3.9.6 (2026-11-05) is the latest release and a security release (67 fixes, SSRF hardening) but its notes do not name this CVE or /openapi/call. Upgrade to 3.9.6 and retest; also see the 3.9.6 upgrade notes about the cleared demo AK/SK.","status":"open","published_at":"2026-11-12T15:17:49+00:00","first_seen_at":"2026-11-12T15:41:57+00:00","triaged_at":"2026-11-12T15:43:45+00:00","updated_at":"2026-11-12T15:45:13+00:00","category":"other","confidence":0.55,"triage":{"at":"2026-11-12T15:43:45Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"internet","title":"JeecgBoot: authentication filter flaw lets remote users trigger server-side requests","impact":"medium","summary":"JeecgBoot up to version 3.9.5 has a server-side request forgery flaw in its OpenAPI call endpoint (/openapi/call). A remote attacker can make the server send requests to addresses of the attacker's choosing, which can reach internal services.","audience":"businesses","category":"other","nicknames":[],"who_cares":["jeecgboot","self-hosted","java"],"confidence":0.6,"fix_status":"unknown","needs_auth":"unknown","worst_case":"server makes attacker-chosen requests to internal services","analyst_note":"Find the fixed JeecgBoot version and whether /openapi/call requires authentication; check the vendor advisory or the project's GitHub.","how_to_check":"- Confirm whether the JeecgBoot version in use is `3.9.5` or earlier\n- Check whether `/openapi/call` is reachable from the internet","plain_action":"","product_name":"","needs_analyst":true,"not_affected_if":["newer-version"],"who_is_affected":"JeecgBoot deployments at version 3.9.5 or earlier that expose the OpenAPI call endpoint are the likely targets. The sources do not say whether authentication is required or whether the endpoint is on by default. Teams on newer versions or without this endpoint exposed can likely skip it.","user_interaction":"no","product_ecosystem":"","needs_special_setup":"unknown","severity_if_unknown":"high"},"cost_usd":0.000732,"input_tokens":4575,"output_tokens":548,"severity_before":"high"},"analyst_status":"done","analyst_note":"Find the fixed JeecgBoot version and whether /openapi/call requires authentication; check the vendor advisory or the project's GitHub.","search":"'-126998':15A,18A '-2026':14A,17A '/openapi/call':47B,89C '3.9.5':33B,79C 'address':58B 'affect':82C 'attack':50B,61B,105C,123C 'authent':2A,93C 'boot':21A 'call':45B 'choos':63B 'compon':92C 'contact':127C 'cve':13A,16A 'disclosur':131C 'discov':74C 'earli':128C 'endpoint':46B 'execut':108C 'exploit':111C 'file':88C 'filter':3A,94C 'flaw':4A,41B,71C 'forgeri':40B,103C 'function':84C 'host':27B 'intern':67B 'java':22B 'jeecg':20A 'jeecg-boot':19A 'jeecgboot':1A,23B,29B,76C 'let':5A 'make':52B 'manipul':96C 'may':119C 'openapi':44B 'openapicontroller.call':85C 'public':117C 'reach':66B 'releas':114C 'remot':6A,49B,109C 'request':12A,39B,56B,102C 'respond':135C 'result':97C 'secur':70C 'self':26B 'self-host':25B 'send':55B 'server':10A,37B,54B,100C 'server-sid':9A,36B,99C 'servic':68B 'side':11A,38B,101C 'ssrf':28B 'trigger':8A 'use':121C 'user':7A 'vendor':125C 'version':32B 'vulner':81C 'way':138C","nicknames":[],"mitigations":[],"who_affected":"Self-hosted JeecgBoot deployments at 3.9.5 or earlier that expose the OpenAPI module's /openapi/call endpoint. Earlier public issues show the endpoint skips the normal login filter and forwards requests to a stored URL, so a server reachable from the internet can be made to call internal hosts such as cloud metadata. Teams on managed or private-only deployments with the endpoint blocked can mostly skip it.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"unknown","audience":"businesses","plain_action":null,"pkeys":["jeecgboot"],"ptokens":["boot","jeecg"],"labels":["high","java","jeecgboot","other","selfhosted","ssrf"],"campaign_type":null,"search_a":"'-126998':15A,18A '-2026':14A,17A 'authent':2A 'boot':21A 'cve':13A,16A 'filter':3A 'flaw':4A 'jeecg':20A 'jeecg-boot':19A 'jeecgboot':1A 'let':5A 'remot':6A 'request':12A 'server':10A 'server-sid':9A 'side':11A 'trigger':8A 'user':7A","search_b":"'/openapi/call':47B '3.9.5':33B 'address':58B 'attack':50B,61B 'call':45B 'choos':63B 'endpoint':46B 'flaw':41B 'forgeri':40B 'host':27B 'intern':67B 'java':22B 'jeecgboot':23B,29B 'make':52B 'openapi':44B 'reach':66B 'remot':49B 'request':39B,56B 'self':26B 'self-host':25B 'send':55B 'server':37B,54B 'server-sid':36B 'servic':68B 'side':38B 'ssrf':28B 'version':32B","search_c":"'/openapi/call':89C '3.9.5':79C 'affect':82C 'attack':105C,123C 'authent':93C 'compon':92C 'contact':127C 'disclosur':131C 'discov':74C 'earli':128C 'execut':108C 'exploit':111C 'file':88C 'filter':94C 'flaw':71C 'forgeri':103C 'function':84C 'jeecgboot':76C 'manipul':96C 'may':119C 'openapicontroller.call':85C 'public':117C 'releas':114C 'remot':109C 'request':102C 'respond':135C 'result':97C 'secur':70C 'server':100C 'server-sid':99C 'side':101C 'use':121C 'vendor':125C 'vulner':81C 'way':138C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-11-12T15:17:49+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"cna@vuldb.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-126998","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-126998","severity":null,"published_at":"2026-11-12T15:17:49+00:00","modified_at":"2026-11-12T15:17:49+00:00","first_seen_at":"2026-11-12T15:41:57+00:00","fetched_at":"2026-11-12T15:41:57+00:00","note":null},{"source":"analyst","external_id":"CVE-2026-126998:3749","url":"https://github.com/jeecgboot/JeecgBoot/releases/tag/v3.9.6","severity":null,"published_at":"2026-11-12T15:45:13+00:00","modified_at":"2026-11-12T15:45:13+00:00","first_seen_at":"2026-11-12T15:45:13+00:00","fetched_at":"2026-11-12T15:45:13+00:00","note":"NVD/VulDB only; vendor silent per NVD, no advisory for this CVE id found. Related older OpenAPI SSRFs (CVE-2026-7604, issues 9432/9554/9695/9726/9705) are fixed in part across 3.9.x; v3.9.6 notes list 67 fixes incl. SSRF but do not name this CVE, so fix not verified and nothing marked verified. No public PoC link found; X not checked. Possible duplicate/sibling of CVE-2026-7604 and GHSA-fvq7-vj2h-wmm9.","cites":["https://github.com/jeecgboot/JeecgBoot/releases/tag/v3.9.6","https://github.com/jeecgboot/JeecgBoot/issues/9705","https://github.com/jeecgboot/JeecgBoot/issues/9726"]}],"documents":[{"id":136120,"url":"https://github.com/jeecgboot/JeecgBoot/releases/tag/v3.9.6","title":"JeecgBoot v3.9.6 release notes (67 security fixes)","kind":"release","source":"analyst","publisher":null,"text":null,"published_at":null,"relation":"fix","confidence":null,"note":null},{"id":136122,"url":"https://github.com/jeecgboot/JeecgBoot/issues/9705","title":"JeecgBoot #9705: /openapi/call publicly accessible, AK-only check","kind":"issue","source":"analyst","publisher":null,"text":null,"published_at":null,"relation":"describes","confidence":null,"note":null},{"id":136124,"url":"https://github.com/jeecgboot/JeecgBoot/issues/9726","title":"JeecgBoot #9726: stored SSRF via OpenAPI originUrl (v3.9.2)","kind":"issue","source":"analyst","publisher":null,"text":null,"published_at":null,"relation":"mentions","confidence":null,"note":null}],"disclosures":[],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}