Skip to main content

ProjectSend EUVDEUVD-2026-103456

| CVE-2026-112003 MEDIUM
Incorrect Behavior Order: Validate Before Canonicalize (CWE-180)
2026-10-18 VulnCheck GHSA-f5fh-phpc-hrv4
6.0
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as staff with import_orphans permission
  2. Exploit
    Submit './' or '//' path alias to orphan import/delete endpoint
  3. Execution
    Bypass string-based isOrphan() canonical check
  4. Impact
    Delete or adopt another owner's tracked file

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Leading special element handling
Exploitation Conditions

Requires an authenticated ProjectSend staff account that has been granted the import_orphans permission; this is NOT remote-unauthenticated access. Exploitation further requires that files owned by other users exist to be targeted, and that the attacker submit a non-canonical path spelling the storage layer would rewrite - e.g. './a/b.txt', 'a/./b.txt', 'a//b.txt', '/a/b.txt', 'a\b.txt', or 'a/x/../b.txt' - to the orphans import or delete endpoint. Limiting factors: affected versions are ProjectSend 2.0.0 through 2.6.x (fixed in 2.7.0), the import_orphans permission is not held by ordinary recipients, and the delete_others_files control is the boundary being bypassed, so impact is confined to tenants where staff accounts are only partially trusted.

Impact

This is a moderate, authorization-bypass issue rather than a critical remote-code flaw. The vendor-supplied CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:H/VA:L) and score of 6.0 are internally consistent with the description: the attack is network-reachable but requires an authenticated staff account holding the import_orphans permission (PR:L), and the AT:P flag reflects that exploitation depends on the presence of other owners' tracked files to target. Impact is primarily to integrity (VI:H - attacker deletes or adopts files they should not control), with limited availability impact (VA:L) and no confidentiality loss (VC:N), which fits CWE-180 (incorrect behavior order: validate-before-canonicalize). No EPSS score was provided, the CVE is not in CISA KEV, and no public exploit was supplied, so the real-world exploitation signal is currently low: no public exploit identified at time of analysis. The 'Authentication Bypass' tag is somewhat misleading - this bypasses an authorization control (delete_others_files) for an already-authenticated staff user, not authentication itself. Overall this is a legitimate but bounded privilege/permission-boundary defect, not a high-urgency internet-wide threat; prioritize patching for multi-tenant ProjectSend deployments where staff accounts are not fully trusted.

Exploit ScenarioDerived

A malicious or compromised ProjectSend staff user who has been granted the import_orphans permission submits a non-canonical path such as './uploads/victim.pdf' or 'uploads//victim.pdf' to the orphan import or delete endpoint. Because isOrphan() compares the raw string before Flysystem canonicalizes it, the tracked file owned by another user appears to be an orphan, letting the attacker delete it or adopt ownership while bypassing the delete_others_files restriction. No public proof-of-concept was provided, but the vendor commit and GHSA advisory describe the bypass mechanics in detail.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 18, 2026

Authorization bypass in ProjectSend 2.0.0 through 2.6.x lets authenticated staff holding the import_orphans permission delete or adopt files owned by other users by submitting non-canonical path aliases such as './a/b.txt' to the orphan import or delete endpoints. The root cause is an incorrect-order validation flaw in OrphanFileScanner::isOrphan() (CWE-180): path strings are compared before Flysystem normalization, so a spelling that storage rewrites to a real tracked path is misclassified as an orphan and the delete_others_files boundary is bypassed. The issue is fixed in ProjectSend 2.7.0; exploitation requires a staff account granted import_orphans and the presence of other users' files, and no public exploit was identified at time of analysis.

RemediationAI

Vendor-released patch: ProjectSend 2.7.0, corresponding to commit 1e34773ad39c256f1320f4d2b47b93a5805f07c6 and release https://github.com/projectsend/projectsend/releases/tag/v2.7.0, with advisory https://github.com/projectsend/projectsend/security/advisories/GHSA-pv88-7863-5hwq. Upgrade to 2.7.0 or later. If upgrading cannot be done immediately, remove the import_orphans permission from staff accounts that are not fully trusted, because the flaw requires that permission; this will block those users from legitimate orphan-file import and cleanup tasks. As a further compensating control, temporarily disable or restrict access to the orphan import and delete endpoints for partially trusted staff, accepting that routine orphan management must be handled by a smaller trusted group. Audit orphan-import and delete activity for non-canonical path submissions such as './' aliases to detect attempted abuse.

Affected VersionsENISA

ProjectSend 2.0.0 <2.7.0

Affected Packages

euvd projectsend fix: 2.7.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

ProjectSend is a PHP-based file-sharing application that uses the League Flysystem storage abstraction. Flysystem's WhitespacePathNormalizer rewrites path spellings such as './a/b.txt', 'a/./b.txt', 'a//b.txt', '/a/b.txt', Windows-style separators, and 'a/x/../b.txt' to the canonical 'a/b.txt' before storage operations. OrphanFileScanner::isOrphan() originally performed string comparisons against tracked file paths without applying that normalization, an incorrect-order validation weakness (CWE-180). As a result, a non-canonical alias could fail to match the tracked owner's entry, be labeled an orphan, and then be deleted or adopted through the orphan endpoints even when the actor lacks delete_others_files. The fix in commit 1e34773 adds an isCanonical() check using WhitespacePathNormalizer and returns false for any path that would be rewritten, rather than attempting to repair it. The CVSS 4.0 vector includes PR:L, confirming the authenticated prerequisite, and the CPE cpe:2.3:a:projectsend:projectsend:*:*:*:*:*:*:*:* identifies the affected ProjectSend product family.

Know when Projectsend gets its next vulnerability

  • 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 (VulnCheck) PRIMARY 6.0 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N
vuln.today AI 7.1 HIGH

PR:L because a staff import_orphans permission is required; I:H as attacker deletes/adopts others' files; A:L for file-deletion impact; C:N as no data is disclosed.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
High
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

ProjectSend 2.0.0 before 2.7.0 contains a path validation flaw in OrphanFileScanner::isOrphan() that allows staff with import_orphans permission to treat tracked files as orphans. Attackers can submit ./ path aliases to the orphans import or delete endpoints, deleting or adopting other owners' files while bypassing delete_others_files.

Threat Intelligence Overview

EPSS Score
0.4%
Top 72% exploitable
Prevalence
Low
niche self-hosted open-source file-sharing web app, limited enterprise footprint
Data Quality
5 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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Medium

Priority Score

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

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

CVE-2024-11680 CRITICAL POC
9.8 Nov 26

ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C

CVE-2014-9567 HIGH POC
7.5 Jan 07

Unrestricted file upload vulnerability in process-upload.php in ProjectSend (formerly cFTP) r100 through r561 allows rem

CVE-2017-9741 CRITICAL POC
9.8 Jun 18

install/make-config.php in ProjectSend r754 allows remote attackers to execute arbitrary PHP code via the dbprefix param

CVE-2021-40887 CRITICAL POC
9.8 Oct 11

Projectsend version r1295 is affected by a directory traversal vulnerability. Rated critical severity (CVSS 9.8), this v

CVE-2019-11378 HIGH POC
8.8 Apr 20

An issue was discovered in ProjectSend r1053. Rated high severity (CVSS 8.8), this vulnerability is remotely exploitable

CVE-2021-40884 HIGH POC
8.1 Oct 11

Projectsend version r1295 is affected by sensitive information disclosure. Rated high severity (CVSS 8.1), this vulnerab

CVE-2020-28874 HIGH POC
7.5 Jan 26

reset-password.php in ProjectSend before r1295 allows remote attackers to reset a password because of incorrect business

CVE-2015-2564 MEDIUM POC
6.5 Mar 20

SQL injection vulnerability in client-edit.php in ProjectSend (formerly cFTP) r561 allows remote authenticated users to

CVE-2021-40886 MEDIUM POC
6.5 Oct 11

Projectsend version r1295 is affected by a directory traversal vulnerability. Rated medium severity (CVSS 6.5), this vul

CVE-2021-40888 MEDIUM POC
5.4 Oct 11

Projectsend version r1295 is affected by Cross Site Scripting (XSS) due to lack of sanitization when echo output data in

CVE-2021-47947 MEDIUM POC
5.1 May 10

Projectsend r1295 contains a stored cross-site scripting vulnerability that allows authenticated attackers to inject mal

CVE-2014-9580 MEDIUM POC
4.3 Jan 08

Cross-site scripting (XSS) vulnerability in ProjectSend (formerly cFTP) r561 allows remote attackers to inject arbitrary

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