Skip to main content

DreamFactory CVE-2025-13700

HIGH
OS Command Injection (CWE-78)
2025-12-23 zdi-disclosures@trendmicro.com
7.2
CVSS 3.0 · Vendor: trendmicro
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate with high privileges to DreamFactory
  2. Delivery
    Invoke saveZipFile package export with crafted password
  3. Exploit
    Inject OS command into unescaped shell string
  4. Execution
    Execute arbitrary code as service account
  5. Impact
    Pivot 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 1.6% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Vendor (trendmicro) PRIMARY 7.2 HIGH
AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 7.2 HIGH

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.

3.1 AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (trendmicro).

CVSS VectorVendor: trendmicro

Attack Vector
Network
Attack Complexity
Low
Privileges Required
High
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

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

Why It Matters

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.

Business Impact: Medium
Compensating Controls

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

EPSS Score
1.6%
Top 25% exploitable
Prevalence
Low
niche open-source API backend/automation platform, limited enterprise footprint
Data Quality
4 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 1.6%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
Medium

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: +2
CVSS: +36
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

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.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy