DreamFactory CVE-2025-13700
HIGHAttack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with high privileges to DreamFactory
-
DeliveryInvoke saveZipFile package export with crafted password
-
ExploitInject OS command into unescaped shell string
-
ExecutionExecute arbitrary code as service account
-
ImpactPivot or persist on host
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK
2 techniques across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an authenticated, high-privilege session (PR:H) with access to DreamFactory's package export / saveZipFile feature, and the attacker must supply the archive encryption password value - the exact parameter passed unescaped into the shell 'zip -r -P <password>' command built in Package.php. The pre-patch code constructed this command using a command separator (';' on Unix, '&' on Windows) with user-controlled input and no escapeshellarg(), so the injection fires specifically when the password-protected zip export path is triggered. Limiting factors: the attacker needs valid privileged credentials (package management is an administrative capability), the vulnerable shell fallback path executes only when native PHP ZipArchive encryption is unavailable, and impact is bounded to the service account's OS context. No user interaction is required once privileged access is held. |
| Impact | This is a genuine but conditional priority rather than a drop-everything emergency. The provided CVSS 3.0 vector (AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H, base 7.2) describes network-reachable, low-complexity code execution with full C/I/A impact, but PR:H means the attacker must already hold high (effectively administrative/privileged) access, which substantially narrows the realistic threat population. EPSS is modest at 1.58% (75th percentile), consistent with a flaw that is credible but not mass-exploited. The vulnerability is NOT in CISA KEV and there is no public exploit code referenced (only a ZDI advisory and the vendor patch commit), so exploitation status is 'no public exploit identified at time of analysis.' Signals are internally consistent - high technical impact offset by a high privilege barrier - with no contradiction between CVSS, EPSS, and KEV. The main residual risk is privilege escalation/lateral movement: an authenticated administrator (or an attacker who has already compromised such credentials) converting account access into OS-level code execution as the service account. No SSVC decision data was supplied in the input. |
| Exploit ScenarioDerived | An attacker who already holds high-privilege (administrative) access to a DreamFactory instance invokes the package-export/saveZipFile functionality with a crafted password string; because the string is passed into a shell command without proper escaping, the attacker injects additional OS commands that execute as the DreamFactory service account. No public proof-of-concept is referenced, though the ZDI advisory and the patch commit confirm the exploitable code path. Low attack complexity means a valid privileged session is the primary gate to reliable exploitation. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 19, 2026
Authenticated command injection in DreamFactory's package export handler (saveZipFile in src/Components/Package/Package.php) lets a high-privilege user execute arbitrary OS commands as the service account when creating a password-protected ZIP archive. Only administrators with package-management rights are affected, and the vulnerable shell path is reached only when PHP's native ZipArchive encryption is unavailable, making this a genuine but conditional priority rather than a drop-everything emergency. No public exploit code has been identified and EPSS is a modest 1.58% (75th percentile); an upstream fix commit exists but a tagged patched release was not independently confirmed.
RemediationAI
Apply the upstream fix commit 404a1783927f95999c71a0ff8f14130d385087fb (or a DreamFactory release that includes it) - it adds a native ZipArchive-based encryption path that eliminates shell execution and hardens the remaining shell fallback with escapeshellarg() on the extract directory, password, and zip path. Upstream fix available (PR/commit); a released patched version was not independently confirmed, so verify the fix is present in your deployed build and track the ZDI advisory ZDI-25-1024 for vendor guidance. As compensating controls until patched: run DreamFactory on PHP 7.2+ with ZipArchive::setEncryptionName available so the native, shell-free encryption branch is taken; restrict the package export/saveZipFile capability to the smallest possible set of trusted administrators (this is a PR:H prerequisite, and removing it removes the attack surface); and audit export requests for shell metacharacters in password fields. If the shell fallback must remain, manually wrap all interpolated values in escapeshellarg() or disable password-protected ZIP export entirely - trade-off is loss of the feature or a custom patch outside vendor support. Note that network filtering offers little value here because the traffic is authenticated administrative API calls, so identity and role controls are the effective mitigation.
Affected ProductsAI
DreamFactory Platform API (dreamfactorysoftware/df-core), specifically the Package component's saveZipFile()/password-protected ZIP export path in src/Components/Package/Package.php. No CPE strings were supplied, and the input data does not enumerate an exact version range; affected builds are those containing the pre-fix code prior to upstream commit 404a1783927f95999c71a0ff8f14130d385087fb. The flaw is reachable on installations where the shell-based encryption fallback is used, i.e., where native ZipArchive::setEncryptionName is unavailable (PHP older than 7.2). Vendor and researcher advisories are at the ZDI disclosure ZDI-25-1024 (https://www.zerodayinitiative.com/advisories/ZDI-25-1024/) and the fixing commit (https://github.com/dreamfactorysoftware/df-core/commit/404a1783927f95999c71a0ff8f14130d385087fb).
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is CWE-78 (OS command injection) in DreamFactory's df-core PHP package component. Pre-patch, saveZipFile() built a shell invocation of the form zip -r -P <password> <zipfile> . using a command separator (';' on Unix, '&' on Windows) and interpolated the user-supplied archive encryption password directly into the command string without escapeshellarg(), so shell metacharacters in the password broke out of the intended command. The code runs through PHP exec() in the web/service account context, and the diff confirms the fix splits the logic: a new encryptZipWithNativeMethod() prefers ZipArchive::setEncryptionName (AES-256, falling back to AES-128) and avoids shell execution entirely, while encryptZipWithShellCommand() retains the system zip fallback but wraps every variable in escapeshellarg(). Because the native path requires PHP 7.2+, older runtimes fall through to the shell branch - the precise condition under which exploitation is possible. CVSS v3.1 vector AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H reflects network reachability but a high-privilege prerequisite and unchanged scope limited to the service account.
Know when the next one hits your stack
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
Network-reachable API with low complexity, but package export is a privileged/administrative function so PR:H; command execution as the service account yields full C/I/A on an unchanged scope.
Primary rating from Vendor (trendmicro).
CVSS VectorVendor: trendmicro
DescriptionCVE.org
DreamFactory saveZipFile Command Injection Remote Code Execution Vulnerability. This vulnerability allows remote attackers to execute arbitrary code on affected installations of DreamFactory. Authentication is required to exploit this vulnerability.
The specific flaw exists within the implementation of the saveZipFile method. The issue results from the lack of proper validation of a user-supplied string before using it to execute a system call. An attacker can leverage this vulnerability to execute code in the context of the service account. Was ZDI-CAN-26589.
Executive ViewAI
DreamFactory's package export handler carries a high-severity command injection flaw that is confined to administrative users with package-management rights and only becomes reachable when PHP's native ZIP encryption is unavailable, so the practical organizational exposure is narrower than the CVSS score implies. No public exploit has been identified at time of analysis, but a malicious or compromised privileged account could still execute operating-system commands under the service account, threatening platform integrity and any data that account can reach. Leadership should focus on privileged-access hygiene and configuration validation rather than broad emergency response.
No vendor-released patch identified at time of analysis. Restrict package-management administrative rights to trusted accounts, disable or gate the package export feature where PHP's native ZipArchive encryption is unavailable, monitor logs for anomalous package export activity, and apply the upstream fix commit only after vendor validation.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
OS command injection occurs when an application passes unsanitized user input directly into system shell commands.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
NVD
CVE.org
EPSS
GitHub
Exploit-DB