CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2025-55988

CVE-2025-55988: Path Traversal and Remote Code Execution in DreamFactory Core

Amit Schendel
Amit Schendel
Senior Security Researcher

Mar 21, 2026·6 min read·25 visits

Executive Summary (TL;DR)

Unauthenticated path traversal (CWE-22) in DreamFactory Core v1.0.3 allows remote attackers to read arbitrary files and execute code via crafted URI paths. The initial vendor patch is bypassed using nested sequences like '....//'.

DreamFactory Core v1.0.3 contains a critical directory traversal vulnerability within the RestController component. The application fails to properly sanitize the resource URI parameter before utilizing it in downstream service logic. This allows an unauthenticated attacker to bypass implemented filters using nested traversal sequences, leading to arbitrary file read and remote code execution.

Vulnerability Overview

DreamFactory Core v1.0.3 exposes a REST API interface that handles various internal and external service requests. The primary routing component for these requests is located within src/Http/Controllers/RestController.php. This controller is responsible for parsing incoming HTTP requests and dispatching them to the appropriate service handlers.

The controller extracts a resource parameter directly from the provided URI path. The application relies on this parameter to locate and invoke specific services, such as file management handlers or system scripting interpreters. Prior to the implemented fix, this input was passed to downstream functions without validation.

This architecture introduces a Path Traversal vulnerability (CWE-22). An unauthenticated remote attacker can supply directory traversal sequences within the URI. Because the application processes the path without bounding it to the intended web root, the attacker can access the underlying operating system filesystem and interact with unauthorized components.

Root Cause Analysis

The root cause of the vulnerability exists in the handleServiceRequest method. When an HTTP request is received, the method isolates the requested resource identifier from the URI. The application logic expects this identifier to map to an explicitly defined service or a specific file within a restricted service directory.

Instead of canonicalizing the requested path using filesystem-level functions, the application processes the string linearly. It appends the user-controlled resource string to the base directory path of the invoked service. If the appended string contains ../ sequences, the operating system's filesystem driver resolves these sequences by navigating upward in the directory tree.

The application lacks a strict bounding mechanism. It does not verify that the fully resolved absolute path remains a child of the intended base directory. This architectural omission allows the requested path to escape the restricted directory structure entirely.

Code Analysis and Flawed Patch

The vendor attempted to mitigate the path traversal vulnerability in commit 54354605b2ec9afe6ee96756a5a22f6f56828950. The implemented solution relies on string replacement to remove standard directory traversal patterns from the user input.

The patch introduces the following logic into src/Http/Controllers/RestController.php:

// File: src/Http/Controllers/RestController.php
if (!empty($resource)) {
    $resource = str_replace(['..'], '', $resource);
    // Downstream service execution continues
}

This mitigation is technically insufficient due to its non-recursive implementation. The str_replace function performs a single pass over the input string. When an attacker provides a nested sequence such as ....//, the function targets the inner .. characters. Upon removal, the surrounding characters collapse to form a valid ../ sequence, successfully bypassing the filter.

Furthermore, the filter operates strictly on the literal .. string. It does not account for URL-encoded variations such as %2e%2e%2f or %2e%2e%5c. It also fails to normalize path separators, meaning backslashes (\) remain valid traversal operators on Windows-based deployments. This leaves the core vulnerability entirely exploitable.

Exploitation Methodology

Exploitation of CVE-2025-55988 requires the attacker to transmit a crafted HTTP GET request to the exposed DreamFactory REST API endpoint. The attack does not require authentication or specific prerequisite configurations. The payload is embedded directly within the URI path.

The attacker constructs the payload using the nested sequence technique to bypass the single-pass str_replace filter. A sequence of ....// is interpreted by the server filter, which removes the internal dots, resulting in ../. The attacker repeats this sequence sufficiently to navigate to the root directory of the host file system.

The following Nuclei template demonstrates the exploit structure used to verify arbitrary file read capabilities. It targets standard operating system files on both Unix and Windows environments to confirm traversal execution:

id: CVE-2025-55988-Detection
info:
  name: DreamFactory Core v1.0.3 RCE via Path Traversal
  severity: critical
requests:
  - method: GET
    path:
      - "{{BaseURL}}/api/v2/system/....//....//....//etc/passwd"
      - "{{BaseURL}}/api/v2/system/....//....//....//windows/win.ini"
    matchers:
      - type: regex
        regex:
          - "root:.*:0:0:"
          - "\\[extensions\\]"

To escalate this arbitrary file read to remote code execution, the attacker targets writable configuration files, log directories, or exposed script services. By overwriting a critical application configuration file or invoking an internal scripting engine with a malicious payload, the attacker forces the application to execute arbitrary commands.

Impact Assessment

The exploitation of CVE-2025-55988 results in a critical compromise of the host system. The vulnerability fundamentally breaks the security boundary between the web application context and the underlying operating system. The initial impact is total loss of confidentiality regarding files accessible to the web server process.

Attackers utilize the file read capability to extract sensitive information, including environment variables, database credentials, cryptographic keys, and user session tokens. This data facilitates horizontal movement across the network and direct access to connected backend infrastructure.

The integrity and availability of the system are compromised when the vulnerability is escalated to remote code execution. Attackers achieve execution privileges equivalent to the user account running the web server. From this position, they can alter application logic, deploy persistent backdoors, or pivot to internal network segments.

The vulnerability maps directly to multiple MITRE ATT&CK tactics, including Exploitation of Remote Services (T1210) and Command and Scripting Interpreter execution (T1059.003, T1059.004). While not currently listed in the CISA Known Exploited Vulnerabilities catalog, public disclosure of the exploit mechanics increases the likelihood of widespread scanning and exploitation.

Remediation and Mitigation

Administrators must upgrade DreamFactory Core to a secure release version exceeding 1.0.3. The official patch must implement strict path canonicalization rather than pattern blocklisting. Secure path resolution requires the application to resolve all symbolic links and relative references before performing boundary checks.

Developers must utilize native filesystem functions such as realpath() to generate the absolute path of the requested resource. Following canonicalization, the application must verify that the resulting path begins explicitly with the intended base directory using a strict string prefix comparison (strpos($resolvedPath, $basePath) === 0).

Organizations unable to apply immediate updates should deploy Web Application Firewall (WAF) rules to inspect incoming URI paths. The WAF must be configured to block requests containing nested traversal sequences (....//), double URL encoding (%252e%252e%252f), and anomalous backslash characters in path segments.

System administrators must enforce the principle of least privilege for the web server service account. Restricting filesystem read and write permissions to only strictly necessary application directories limits the operational impact of a successful directory traversal attack.

Fix Analysis (1)

Technical Appendix

CVSS Score
9.8/ 10
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Affected Systems

DreamFactory Core v1.0.3

Affected Versions Detail

Product
Affected Versions
Fixed Version
DreamFactory Core
DreamFactory
<= 1.0.3-
AttributeDetail
CWE IDCWE-22
Attack VectorNetwork
CVSS SeverityCritical
ImpactRemote Code Execution
Exploit StatusProof-of-Concept Available
CISA KEVNot Listed

MITRE ATT&CK Mapping

T1059.003Command and Scripting Interpreter: Windows Command Shell
Execution
T1059.004Command and Scripting Interpreter: Unix Shell
Execution
T1083File and Directory Discovery
Discovery
T1210Exploitation of Remote Services
Lateral Movement
CWE-22
Path Traversal

Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')

Vulnerability Timeline

Initial flawed fix commit pushed to GitHub by developer.
2024-09-02
CVE-2025-55988 officially published to NVD and CVE.org.
2025-03-20
Public disclosure of technical advisory PTT-2025-001 by Pentest-Tools.
2025-03-20

References & Sources

  • [1]CVE-2025-55988 Record
  • [2]Official Fix Commit
  • [3]Technical Advisory PTT-2025-001

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•about 8 hours ago•GHSA-H5X8-XP6M-X6Q4
7.1

GHSA-H5X8-XP6M-X6Q4: Unvalidated Signature Generation in @jhb.software/payload-cloudinary-plugin

The @jhb.software/payload-cloudinary-plugin exposes an endpoint that performs unvalidated cryptographic signing of Cloudinary API parameters, allowing authenticated users with minimal privileges to forge valid signatures for arbitrary actions. This flaw allows attackers to overwrite remote storage assets, execute unauthorized file uploads, alter asset visibility parameters, trigger SSRF webhooks, and perform directory traversal within Cloudinary repositories.

Alon Barad
Alon Barad
3 views•6 min read
•about 9 hours ago•GHSA-G2GW-Q38M-VJFC
8.7

GHSA-G2GW-Q38M-VJFC: Server-Side Request Forgery and Bearer Token Exfiltration in @merill/lokka

A Server-Side Request Forgery (SSRF) and Bearer Token Exfiltration vulnerability exists in the @merill/lokka (Lokka) Model Context Protocol (MCP) server prior to version 2.1.2. The server constructed Azure Resource Manager request URLs by concatenating user-controlled path parameters directly into destination request strings. By injecting authority-redefinition characters, an attacker can manipulate URL parsing to execute a host-escape attack, forcing the server to send high-privilege Azure Resource Manager (ARM) Bearer tokens to an external attacker-controlled host. This allows complete administrative access to the associated Azure subscriptions.

Alon Barad
Alon Barad
6 views•7 min read
•about 10 hours ago•GHSA-4XGF-CPJX-PC3J
5.3

GHSA-4xgf-cpjx-pc3j: Directory Traversal and Symlink Following in Pydantic Settings

A directory traversal and symlink following vulnerability exists in Pydantic Settings when using the NestedSecretsSettingsSource with nested subdirectory lookups enabled. An attacker capable of writing to the secrets directory can bypass size limitations, read arbitrary host files, or cause a denial-of-service condition via cyclic symlinks.

Amit Schendel
Amit Schendel
2 views•7 min read
•about 12 hours ago•GHSA-H5RG-8P7F-47G2
4.1

GHSA-h5rg-8p7f-47g2: Server-Side Request Forgery (SSRF) in SurrealDB Identity & Access Management (IAM) JWKS Fetcher

A Server-Side Request Forgery (SSRF) vulnerability exists in SurrealDB's Identity & Access Management (IAM) module prior to version 3.1.5. When configuring JSON Web Key Set (JWKS) URLs for token verification, the remote fetcher follows HTTP redirects by default without validating redirect targets against configured network capabilities. This allows high-privileged users to bypass network access limits and perform blind port scanning of internal network resources.

Amit Schendel
Amit Schendel
4 views•6 min read
•about 13 hours ago•GHSA-CC8F-FCX3-GPJR
7.7

GHSA-cc8f-fcx3-gpjr: Arbitrary File Disclosure via DEFINE ANALYZER mapper filter in SurrealDB

A local file disclosure vulnerability exists in SurrealDB's full-text search capabilities, allowing authenticated users with database EDITOR or OWNER roles to read arbitrary files from the host system filesystem. This occurs by abusing the mapper() filter inside a DEFINE ANALYZER statement to point to system files.

Alon Barad
Alon Barad
6 views•6 min read
•about 13 hours ago•GHSA-H4H3-3RFJ-X6FQ
4.3

GHSA-H4H3-3RFJ-X6FQ: Value-Ordering Oracle Side-Channel via Indexed ORDER BY in SurrealDB

SurrealDB versions 3.0.0 through 3.1.4 contain an information exposure vulnerability (CWE-203) where the query planner optimizes sorted queries using indexes on fields with field-level SELECT restrictions. Because the query planner performs index-based sorting before enforcing permission-based redaction, unauthorized users can observe the physical order of returned rows to deduce the relative values of protected fields.

Alon Barad
Alon Barad
4 views•8 min read