Skip to main content

Prospero Flow CRM EUVDEUVD-2026-67225

| CVE-2026-81931 MEDIUM
Unrestricted Upload of File with Dangerous Type (CWE-434)
2026-08-27 Secur0 GHSA-2g3f-q348-c747
4.8
CVSS 4.0 · Vendor: Secur0
View

Attack ChainAIDerived

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

  1. Recon
    Authenticate with Seller-role credentials
  2. Delivery
    Upload JPEG-magic-prefixed file with .html client extension to product photo endpoint
  3. Exploit
    Validation passes (magic bytes match image, client extension not blocklisted)
  4. Install
    File stored as <uuid>.html in public/asset/upload/product/
  5. C2
    Victim authenticated user loads product listing page
  6. Execute
    Browser fetches .html file served as text/html
  7. Impact
    Attacker JavaScript executes in application origin

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V5 - File Handling File type validation, storage isolation
MITRE ATT&CK

2 techniques across 2 tactics: Command and Control, Persistence

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 active authenticated session with the 'create product' permission, which the description maps to the routine Seller role - this is not an administrative or elevated privilege, meaning any standard sales user qualifies. The attacker must be able to reach the product photo upload endpoint over the network. A second user (victim) with access to the product listing or detail view must load the page containing the maliciously named file; without victim interaction, no JavaScript executes. The attack is limited to the application's own origin (no cross-origin scope change on the server side). Exploitation is bounded to the Prospero Flow CRM web application context and does not affect the underlying server OS or other services. Non-default conditions are not required beyond holding a Seller account, which is a standard CRM user role.

Impact

The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:A) produces a score of 4.8, reflecting medium severity moderated by two significant prerequisites: the attacker must hold an authenticated Seller role (PR:L) and a victim user must actively view the product listing or detail page (UI:A). No EPSS score was provided in the source data and cannot be independently stated. The vulnerability is not listed in CISA KEV, and no public exploit code has been identified at time of analysis. The CVSS 4.0 downstream-system integrity impact (SI:L) appropriately captures that the JavaScript executes in the application origin, enabling session hijacking or data exfiltration from other authenticated users. The supplied CVSS 4.0 vector sets SC:N, which understates the cross-user impact; an argument exists for SC:L/SI:L given that the script executes in arbitrary victims' browser sessions. Overall real-world risk is moderate for multi-tenant CRM deployments where untrusted Seller accounts exist; the authentication barrier makes mass exploitation implausible and targeted insider misuse or compromised Seller credentials the realistic threat path.

Exploit ScenarioDerived

An attacker authenticates to the CRM with a legitimate Seller account (or a compromised one), crafts a file that begins with a valid JPEG magic-byte sequence (FF D8 FF) but is named payload.html and contains an HTML body with an embedded script tag. The file passes the server's image/mimes validation because the content check sees image bytes, but the stored filename becomes <uuid>.html and is accessible at a predictable URL under public/asset/upload/product/. When any other authenticated user browses the product listing or detail page that references this photo, the browser fetches the .html file, renders it as a document in the application origin, and executes the attacker's JavaScript - enabling session cookie theft, credential phishing overlays, or account takeover actions on behalf of the victim.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.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 – Aug 27, 2026

Stored cross-site scripting in Roskus Prospero Flow CRM before 5.16.0 allows an authenticated Seller-role user to achieve first-party script execution in other users' browser sessions by exploiting an extension-confusion flaw in the product photo upload feature. The application validates file content via magic bytes and rejects known PHP extensions, but then names the stored file using the attacker-supplied client extension - allowing a file prefixed with an image header and carrying an .html extension to pass validation, land in the public web root, and be served as text/html. No public exploit code or CISA KEV listing has been identified; the CVSS 4.0 score of 4.8 reflects the authentication and victim-interaction prerequisites.

RemediationAI

Upgrade Roskus Prospero Flow CRM to version 5.16.0 or later, which incorporates the fix committed at https://github.com/Roskus/prospero-flow-crm/commit/71b20e1a37f4381d1b8b0a6933a942324e1cc19f. The patch makes two coordinated changes: ProductSaveController::save() now calls $photoFile->extension() (Laravel's content-derived value) instead of $photoFile->getClientOriginalExtension() when naming the stored file, and the new ExtensionMatchesContent validation rule is applied to both ProductRequest and ProfileSaveRequest, ensuring the client-supplied extension matches the server-detected extension before the file is accepted. If immediate upgrade is not possible, a compensating control is to restrict the 'create product' permission to fully trusted operator accounts only, reducing the pool of users who can trigger the upload path; note this limits legitimate Seller workflows. Alternatively, configure the web server to strip or override Content-Type for files served from public/asset/upload/product/ so that .html files are served as application/octet-stream or image/jpeg rather than text/html - this prevents browser rendering of the stored payload without requiring a code change, though it is a defense-in-depth measure rather than a root-cause fix.

Affected VersionsENISA

Prospero Flow CRM 0 <5.16.0

Affected Packages

euvd prospero_flow_crm fix: 5.16.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

The affected codebase is a Laravel/PHP CRM (CPE cpe:2.3:a:roskus:prospero_flow_crm:*:*:*:*:*:*:*:*). The root cause is CWE-434 (Unrestricted Upload of File with Dangerous Type) manifesting as a split-brain validation model: ProductRequest validates the uploaded file by MIME/magic-byte content using Laravel's 'image' and 'mimes' rules, but ProductSaveController::save() names the persisted file with getClientOriginalExtension() - the attacker-controlled value from the multipart filename, not the server-detected extension. Because the web server serves files from public/asset/upload/product/ directly, a file named <uuid>.html is delivered with Content-Type: text/html, causing browsers to parse any embedded JavaScript as live DOM. The fix replaces getClientOriginalExtension() with Laravel's content-derived extension() method and introduces a new ExtensionMatchesContent validation rule that compares the normalized client-supplied extension against the server-guessed extension derived from file content, rejecting any mismatch and logging the anomaly via a new SecurityLogger service.

Know when Prospero Flow Crm 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 (Secur0) PRIMARY 4.8 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:A/VC:N/VI:L/VA:N/SC:N/SI:L/SA:N
vuln.today AI 5.4 MEDIUM

PR:L reflects required Seller-role authentication; UI:R and S:C capture stored XSS victim-interaction and cross-user session impact; no availability impact.

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

Primary rating from Vendor (Secur0).

CVSS VectorVendor: Secur0

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

DescriptionCVE.org

Unrestricted Upload of File with Dangerous Type in the product photo upload in Roskus Prospero Flow CRM before 5.16.0 allows an authenticated user holding the create product permission (routine Seller role) to execute arbitrary JavaScript in the application origin. The photo validation rule classifies the file only by its content (magic bytes) and rejects only a fixed list of PHP extensions, while ProductSaveController::save() names the stored file using the client-supplied extension and copies it into the public web root. A file that begins with an image header and carries an HTML extension passes validation, is stored under public/asset/upload/product/, and is served with a text/html content type, turning the upload into first-party stored script execution.

Threat Intelligence Overview

EPSS Score
0.3%
Top 79% exploitable
Prevalence
Rare
niche open-source PHP CRM, limited known enterprise footprint
Data Quality
6 sources
Confidence: High

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.3%
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
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Malicious file upload attacks exploit insufficient validation when web applications accept user-provided files.

CVE-2026-78365 CRITICAL
9.3 Aug 24

Cross-tenant authorization bypass (IDOR/BOLA) in Roskus Prospero Flow CRM 4.0.0 through 5.3.1 lets an authenticated user

CVE-2026-59235 HIGH
8.7 Jul 15

Broken function-level authorization in Prospero Flow CRM before 5.5.3 lets any authenticated low-privileged user (e.g. t

CVE-2026-77759 HIGH
8.7 Aug 21

Cross-tenant transaction data exposure in Roskus Prospero Flow CRM 5.0.0-5.3.5 allows any authenticated user on a shared

CVE-2026-59233 HIGH
8.7 Aug 10

Privilege escalation in Roskus Prospero Flow CRM before version 5.2.1 permits any authenticated user - regardless of ass

CVE-2026-19734 HIGH
8.6 Aug 13

Cross-tenant IDOR in Roskus Prospero Flow CRM before 5.4.7 allows any authenticated user to read sensitive product recor

CVE-2026-19539 HIGH
8.6 Aug 11

Cross-tenant IDOR in Roskus Prospero Flow CRM's ticket management component allows any authenticated user - regardless o

CVE-2026-19870 HIGH
8.6 Aug 14

Cross-tenant payroll data exposure in Roskus Prospero Flow CRM before 5.15.10 enables authenticated users holding standa

CVE-2026-19433 HIGH
8.6 Aug 10

Cross-tenant IDOR in Prospero Flow CRM before 5.4.8 allows any authenticated user to blindly overwrite contact records b

CVE-2026-59236 MEDIUM
6.9 Jul 15

Cross-tenant record injection in Roskus Prospero Flow CRM before 5.14.0 allows any authenticated user to silently insert

CVE-2026-59237 MEDIUM
6.9 Jul 16

Cross-tenant IDOR in Roskus Prospero Flow CRM before 5.5.3 allows any authenticated user to read, modify, and delete ord

CVE-2026-59240 MEDIUM
6.9 Jul 27

Unauthorized notification deletion in Prospero Flow CRM allows any authenticated user to delete other users' notificatio

CVE-2026-77780 MEDIUM
5.3 Aug 21

Tenant data boundary failure in Roskus Prospero Flow CRM 4.9.1-5.14.0 allows authenticated users holding transaction and

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