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-2026-30848

CVE-2026-30848: Path Traversal Vulnerability in Parse Server PagesRouter

Amit Schendel
Amit Schendel
Senior Security Researcher

Mar 9, 2026·6 min read·38 visits

Executive Summary (TL;DR)

Parse Server versions prior to 8.6.8 and 9.5.0-alpha.8 are vulnerable to a path traversal attack. The application uses a flawed string prefix comparison for directory boundary checks, allowing unauthenticated attackers to read arbitrary files from sibling directories.

Parse Server's PagesRouter component contains a path traversal vulnerability due to insufficient validation of static file request paths. Unauthenticated attackers can leverage URL-encoded sequences to read files from sibling directories that share the same naming prefix as the configured pages directory.

Vulnerability Overview

Parse Server utilizes the PagesRouter component to serve static files associated with system pages, such as email verification and password reset screens. This component processes incoming HTTP requests and maps them to physical files residing within a configured pagesPath directory. A vulnerability within this routing logic permits path traversal, classified under CWE-22, enabling unauthenticated read operations.

The core issue manifests when the router validates whether a requested file path falls within the boundaries of the designated base directory. The validation mechanism relies on a standard string prefix comparison instead of a robust directory boundary evaluation. This design oversight exposes the system to unauthorized access outside the intended directory structure.

Exploitation requires specific conditions on the host filesystem. The target directory must share the exact string prefix as the configured pagesPath directory. When these prerequisites are met, an attacker can retrieve sensitive files located in sibling directories, bypassing the intended access controls and compromising data confidentiality.

Root Cause Analysis

The path validation flaw originates in src/Routers/PagesRouter.js, where the application sanitizes and verifies the requested file paths. The logic first applies path.normalize() to resolve any traversal sequences such as ../ or ./ within the input URL. After normalization, the resulting path is evaluated against the configured this.pagesPath variable.

The critical failure occurs during this boundary evaluation step. The code executes normalizedPath.startsWith(this.pagesPath) to confirm the file remains within the allowed directory tree. Because startsWith performs a strict string-level comparison without acknowledging directory separators, it fails to differentiate between a nested file and a sibling directory sharing the same prefix.

For example, if the application configures the base directory as /var/www/pages, the startsWith function validates any path beginning with that exact string. A request traversing to /var/www/pages-secret/config.json yields a normalized path that successfully passes the prefix check. The application processes the request, incorrectly assuming the target file resides within the approved pages directory.

Code Analysis

The vulnerability exists within a specific conditional block in the PagesRouter class. The original implementation attempts to restrict file access by throwing an error if the normalized path does not begin with the allowed base path string.

// Vulnerable Implementation (src/Routers/PagesRouter.js)
const normalizedPath = path.normalize(filePath);
 
// Abort if the path is outside of the path directory scope
if (!normalizedPath.startsWith(this.pagesPath)) {
    throw errors.fileOutsideAllowedScope;
}

The patched implementation resolves this semantic gap by enforcing a strict directory boundary. The patch concatenates the platform-specific directory separator (path.sep) to the end of the allowed base path before executing the prefix comparison.

// Patched Implementation (src/Routers/PagesRouter.js)
const normalizedPath = path.normalize(filePath);
 
// Abort if the path is outside of the path directory scope
if (!normalizedPath.startsWith(this.pagesPath + path.sep)) {
    throw errors.fileOutsideAllowedScope;
}

This modification ensures that the validation logic requires the target path to exist strictly as a child of the base directory. By appending the separator, the check against /var/www/pages/ automatically rejects traversal attempts targeting /var/www/pages-secret/, mitigating the bypass technique.

Exploitation Methodology

Attackers exploit this vulnerability by dispatching crafted HTTP GET requests to the public-facing pages route, typically exposed under the /apps/ endpoint. The attack payload utilizes URL-encoded path traversal sequences, specifically %2e%2e%2f representing ../, to manipulate the file path resolution process.

A functional proof-of-concept requires the existence of a target directory adjacent to the configured pagesPath. If the application serves pages from a directory named pages, the attacker targets a sibling directory such as pages-secret. The corresponding HTTP request takes the form of GET /apps/%2e%2e%2fpages-secret%2fsecret.txt HTTP/1.1.

Upon receiving the request, the application normalizes the path, stripping the traversal sequences while resolving the absolute location. The resulting string is /path/to/pages-secret/secret.txt. Since this string begins with /path/to/pages, the vulnerable validation check succeeds. The server processes the file read operation and returns the contents of the target file in the HTTP response body.

Impact Assessment

The vulnerability enables unauthorized, unauthenticated retrieval of files stored on the underlying filesystem. This file read capability directly impacts system confidentiality by exposing potentially sensitive data. The CVSS 4.0 base score of 6.3 reflects the medium severity of this issue, governed primarily by the specific prerequisites required for successful exploitation.

The exploit scope is strictly limited to sibling directories that share the exact nomenclature prefix of the configured base directory. An attacker cannot arbitrarily traverse the entire filesystem to read files in standard locations such as /etc/passwd or /var/log/syslog unless the base directory configuration aligns with those paths. This constraint significantly reduces the overall impact radius.

Despite these limitations, the vulnerability poses a material risk in environments where configuration files, environment variables, or other sensitive application data reside adjacent to the static pages directory. The unauthenticated nature of the attack vector allows remote adversaries to systematically probe for predictable sibling directory names without requiring valid credentials.

Remediation and Mitigation

System administrators must update Parse Server installations to the appropriate patched releases to permanently resolve this vulnerability. The official maintainers have published fixes in Parse Server version 8.6.8 for the 8.x release line and version 9.5.0-alpha.8 for the 9.x release line. Applying these updates replaces the vulnerable routing logic with the robust directory separator validation check.

In scenarios where immediate patching is unfeasible, administrators can deploy a configuration-based workaround. The vulnerability relies on the existence of sibling directories sharing the same prefix string. By renaming the configured pagesPath directory to a completely unique string, administrators eliminate the requisite filesystem conditions for the exploit.

Additionally, deploying a Web Application Firewall (WAF) rule to intercept and block incoming requests containing URL-encoded traversal sequences (%2e%2e%2f) offers an effective interim defense mechanism. This network-level mitigation prevents the malicious payloads from reaching the vulnerable application component.

Fix Analysis (1)

Technical Appendix

CVSS Score
6.3/ 10
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
EPSS Probability
0.08%
Top 77% most exploited

Affected Systems

Parse Server 8.xParse Server 9.x

Affected Versions Detail

Product
Affected Versions
Fixed Version
Parse Server 8.x
Parse Community
< 8.6.88.6.8
Parse Server 9.x
Parse Community
< 9.5.0-alpha.89.5.0-alpha.8
AttributeDetail
CWE IDCWE-22
Attack VectorNetwork
CVSS Score6.3
EPSS Percentile23.37%
ImpactLocal File Disclosure
Exploit StatusPoC Available
Authentication RequiredNone

MITRE ATT&CK Mapping

T1083File and Directory Discovery
Discovery
T1005Data from Local System
Collection
CWE-22
Path Traversal

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

Vulnerability Timeline

Vulnerability publicly disclosed and CVE-2026-30848 assigned
2026-03-07
Fix released in Parse Server 8.6.8 and 9.5.0
2026-03-07
NVD record updated with CVSS 4.0 assessment
2026-03-09

References & Sources

  • [1]NVD Record
  • [2]GitHub Advisory
  • [3]Fix Pull Request
  • [4]Fix Commit

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 9 hours ago•CVE-2022-0492
7.8

CVE-2022-0492: Privilege Escalation and Container Escape via cgroups v1 release_agent

CVE-2022-0492 is a high-severity missing authorization vulnerability in the Linux kernel's Control Groups (cgroups) v1 implementation. The flaw resides within the cgroup_release_agent_write function in kernel/cgroup/cgroup-v1.c, where the kernel fails to validate if the process writing to the release_agent file possesses administrative capabilities in the initial user namespace. This allows a local attacker inside a container with root privileges (UID 0) to abuse user namespaces, mount a cgroups v1 directory, modify the release_agent parameter, and execute arbitrary commands on the host system as host root, effectively achieving a complete container escape.

Amit Schendel
Amit Schendel
5 views•7 min read
•2 days ago•GHSA-G72G-R7M4-9X4G
6.3

GHSA-G72G-R7M4-9X4G: Insufficient Session Expiration of OAuth Tokens in NocoDB

NocoDB is subject to an insufficient session expiration vulnerability where OAuth access and refresh tokens are not invalidated or revoked during security-sensitive actions such as password changes, forgot-password requests, or password resets. This allows an attacker possessing an active OAuth token to maintain unauthorized persistence.

Amit Schendel
Amit Schendel
9 views•6 min read
•2 days ago•GHSA-FGMC-2HQJ-86V4
6.9

GHSA-FGMC-2HQJ-86V4: Default Administrative Credentials in vantage6-server

A vulnerability in the vantage6 federated learning framework allows unauthenticated remote attackers to gain administrative control of the server via hardcoded default credentials (root/root) when deployed under default configurations in versions 4.2.3 and below.

Amit Schendel
Amit Schendel
8 views•5 min read
•2 days ago•GHSA-X9F6-9RVM-MMRG
6.9

GHSA-X9F6-9RVM-MMRG: Improper Access Control and Volume Mount Isolation Bypass in vantage6 Node

An improper access control vulnerability in the vantage6 node component allows concurrently running algorithm containers to read and modify sensitive input and output files of other tasks. The lack of strict workspace directory isolation exposes a significant attack surface in multi-tenant or federated environments where untrusted algorithms are executed.

Amit Schendel
Amit Schendel
3 views•4 min read
•2 days ago•CVE-2026-47760
8.7

CVE-2026-47760: Cross-Site Scripting (XSS) via SVG Namespace Sanitizer Bypass in TinyMCE

TinyMCE versions 6.8.0 through 7.0.1 contain a high-severity Cross-Site Scripting (XSS) vulnerability. The flaw exists in the custom HTML parser and sanitizer module, which incorrectly manages SVG namespace scopes when parsing nested elements. A low-privileged or unauthenticated attacker can submit a crafted HTML payload containing nested SVG structures to bypass sanitization filters, leading to arbitrary JavaScript execution in the context of the victim's browser session.

Alon Barad
Alon Barad
27 views•7 min read
•2 days ago•CVE-2026-47759
8.7

CVE-2026-47759: Stored Cross-Site Scripting (XSS) via Unsanitized data-mce-* Serialization Bypass in TinyMCE

CVE-2026-47759 is a critical stored Cross-Site Scripting (XSS) vulnerability affecting multiple active branches of the TinyMCE rich text editor. The flaw resides in the editor's handling of user-controlled, prefixed internal attributes, such as data-mce-href, data-mce-src, and data-mce-style. When processing raw HTML inputs, TinyMCE's internal validation schema neglects to inspect these custom prefixed attributes. During HTML serialization, the editor's engine extracts these unsanitized values and copies them back into standard executable attributes, overwriting any previously sanitized standard values and leading to execution of arbitrary code.

Amit Schendel
Amit Schendel
13 views•7 min read