CVE-2026-77526
Published:November 03, 2026
Updated:November 03, 2026
"FacturaScripts\Core\UploadedFile::move($destiny, $destinyName)" concatenates "$destiny" and "$destinyName" without normalizing the resulting path. Every caller in the codebase passes "UploadedFile::getClientOriginalName()" — the unsanitized client-supplied filename — as "$destinyName", so an authenticated user submitting a filename containing "../" segments can write the uploaded content to any directory writable by the web-server user, escaping the intended "MyFiles/" location. Because the shipped "htaccess-sample" (the documented production Apache configuration) excludes "Dinamic/Assets/" and "node_modules/" from the "index.php" rewrite, files written into those directories are served directly by Apache. Combined with ".htaccess" not being in "BLOCKED_EXTENSIONS", the primitive escalates from arbitrary file write to remote code execution.
Affected Packages
https://github.com/NeoRazorX/facturascripts.git (GITHUB):
Affected version(s) >=v2025 <v2026.3Fix Suggestion:
Update to version v2026.3facturascripts/facturascripts (PHP):
Affected version(s) >=v2025 <v2026.3Fix Suggestion:
Update to version v2026.3Related Resources (2)
Do you need more information?
Contact UsCVSS v4
Base Score:
9.4
Attack Vector
NETWORK
Attack Complexity
LOW
Attack Requirements
NONE
Privileges Required
LOW
User Interaction
NONE
Vulnerable System Confidentiality
HIGH
Vulnerable System Integrity
HIGH
Vulnerable System Availability
HIGH
Subsequent System Confidentiality
HIGH
Subsequent System Integrity
HIGH
Subsequent System Availability
HIGH
CVSS v3
Base Score:
9.9
Attack Vector
NETWORK
Attack Complexity
LOW
Privileges Required
LOW
User Interaction
NONE
Scope
CHANGED
Confidentiality
HIGH
Integrity
HIGH
Availability
HIGH