Skip to main content

ProjectSend EUVDEUVD-2026-103455

| CVE-2026-112002 HIGH
Unverified Password Change (CWE-620)
2026-10-18 VulnCheck GHSA-xr56-2553-vh5p
7.6
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Obtain valid session cookie of social account
  2. Delivery
    Send PUT /settings/password without current password
  3. Exploit
    Set attacker-chosen local password
  4. Execution
    Enroll attacker's own second factor
  5. Impact
    Persistent account takeover independent of stolen session

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Password change verification
Exploitation Conditions

Exploitation requires that the target account is Social-provisioned (auth_source = Social / signs in through an external provider) AND that the attacker already possesses a valid, active session cookie for that account - these are the exact prerequisites, not generic network access. The flaw is reachable only through the authenticated /settings/password (PUT) endpoint, so a local account with a normal password is unaffected. Limiting factors: the attacker must first steal a live session (via XSS, interception, or device access), the vulnerable code path only triggers for provider/SSO-provisioned accounts, and the installation must be running a version in 2.5.0 before 2.7.0; patched 2.7.0 instead emails a reset link to the account's own address, which a stolen session cannot read.

Impact

This is a genuine account-takeover flaw with moderate-but-real risk, best treated as a priority where ProjectSend is deployed with social/provider sign-in. The authoritative CVSS 4.0 vector (CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N) and score of 7.6 (High) are internally consistent with the description: network-reachable, low attack complexity, but gated by an attack requirement (AT:P) and low privileges (PR:L) - the attacker must already hold a valid session cookie for a Social-provisioned account, which is why this is not scored as unauthenticated-trivial. Impact is high on confidentiality and integrity (full, durable account takeover) with no availability impact (VA:N), matching the described outcome. No EPSS score, KEV listing, or POC is present in the provided intelligence, so there is no public exploit identified at time of analysis and no evidence of active exploitation; the practical barrier is session-cookie theft (XSS, network interception, malware, or shared-device exposure), which makes this a strong escalation/persistence primitive rather than a mass-exploitable remote hole. One data-quality conflict: the input Tags label this 'Information Disclosure,' but the description and CWE-620 (unverified password change) describe authentication bypass and persistent account takeover, not disclosure - the tag is mislabeled and should not drive triage.

Exploit ScenarioDerived

An attacker who has obtained a valid session cookie for a Social-provisioned (provider/SSO) ProjectSend account - for example via XSS, session interception, or a reused device - sends a crafted PUT /settings/password request. Because PasswordController::update() did not require the current password for provider accounts, the attacker sets a local password, enrolls their own second factor, and converts a temporary session hijack into durable, independent control of the account. No public exploit code is identified in the provided data, but the request is simple and the behavior is deterministic.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 18, 2026

Account takeover in ProjectSend 2.5.0 through 2.6.x lets anyone holding a stolen session cookie for a Social-provisioned account set a durable local password through PUT /settings/password without supplying the current password, flipping the account to local authentication and allowing the attacker to enroll their own second factor. Only accounts whose auth_source is Social (external/provider sign-in) are reachable and the attacker must already hold a live session, but the resulting persistence outlives session expiry and survives routine session hygiene. No public exploit code identified at time of analysis and the issue is not in CISA KEV; the vendor shipped a fix in 2.7.0 that rejects the form path for provider accounts and substitutes an emailed reset link to the account's own address.

RemediationAI

Vendor-released patch: 2.7.0. Upgrade ProjectSend to 2.7.0 or later (release https://github.com/projectsend/projectsend/releases/tag/v2.7.0, fix commit https://github.com/projectsend/projectsend/commit/717852ff6a99391dbd816a2bb0bb3f40cad70f72, advisory https://github.com/projectsend/projectsend/security/advisories/GHSA-4r8h-mwfm-f5f4 and https://www.vulncheck.com/advisories/projectsend-2.5.0-before-2.7.0-unverified-password-change-via-settings-password); after upgrading, Social-provisioned users set a first password only via the emailed link sent to their own inbox. If upgrading must be deferred, the most effective compensating control is to disable social/provider sign-in provisioning entirely so no account carries auth_source = Social, at the cost of removing SSO for those users; alternatively block PUT requests to /settings/password at the reverse proxy or WAF for sessions belonging to provider accounts, but this also blocks the legitimate first-password workflow and must be paired with directing those users through the standard password-reset email. Reduce the exposure window by shortening session lifetimes and rotating the application key/session store after any suspected cookie theft, since a valid session is the sole prerequisite. Regardless of patch timing, audit the users table for accounts whose auth_source changed from Social to Local, force password resets and revoke any enrolled second factors on those accounts, and alert on new two-factor enrollment or password-change events originating from provider accounts, as these are the observable signatures of exploitation.

Affected VersionsENISA

ProjectSend 2.5.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 file-sharing application built on the Laravel framework, and the flaw sits in app/Http/Controllers/Settings/PasswordController.php::update() (roughly lines 54-90 in 2.6.0). The class maps to CWE-620, Unverified Password Change: the controller computed $setsFirstPassword from $user->auth_source === AuthSource::Social and then relaxed the validation rule to ['nullable'] for those accounts, on the rationale that provider-provisioned users have no known password to prove. Because the session itself was the only credential checked, a stolen cookie was sufficient authorization. The handler then wrote the new hash with forceFill() specifically to set the guarded auth_source column to AuthSource::Local (a plain update() silently dropped it via mass-assignment guarding), permanently converting the identity to local sign-in and making the account eligible for attacker-controlled two-factor enrollment. The EnforceTwoFactor middleware's route allowlist already passed 'password.update' through, so installations mandating 2FA did not interrupt the write. The 2.7.0 commit (717852ff) instead throws a ValidationException for Social accounts in update(), restores ['required','current_password'] for everyone else, and adds sendLink(), which uses Laravel's PasswordBroker::sendResetLink to mail a first-password link to the account's own address (handling ResetThrottled), with NewPasswordController completing the change; the middleware allowlist gains password.link, password.reset and password.store so the email flow works before a password exists, and the change signs out sessions holding the old credential.

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 7.6 HIGH
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
vuln.today AI 6.8 MEDIUM

Requires a pre-stolen session for a provider account (AC:H for the cookie-theft prerequisite, PR:L for the account-level session); full account takeover gives C:H/I:H, no availability impact.

3.1 AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/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
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

ProjectSend 2.5.0 before 2.7.0 contains an unverified password change vulnerability in PasswordController::update() that lets sessions of Social-provisioned accounts set local passwords without the current password. Attackers holding a stolen session cookie can send PUT /settings/password to create a durable local password, enroll their own second factor, and persistently take over the account.

Technical POC Analysis

CWE-620 (Unverified Password Change).

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

ProjectSend 2.5.0 through 2.6.x contains a high-severity account takeover flaw affecting accounts provisioned through Social/external sign-in, where a stolen live session cookie can be converted into a durable local password and attacker-controlled second factor. The persistence survives session expiry and routine session hygiene, so affected organizations face prolonged unauthorized access risk to document-sharing workflows and any data those accounts can reach. Leadership should care because the exposure is concentrated in externally provisioned accounts and can outlast the initial session compromise.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 80% exploitable
Prevalence
Low
niche open-source self-hosted 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 HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
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
High

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0
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