{"id":"CVE-2026-109397","title":"Thelia before 3.1.2 and 3.2.x before 3.2.1 contains an unrestricted file upload vulnerability that allows authenticated back-office users to upload PHP files by appending a trailing space to filenames","summary":"Thelia before 3.1.2 and 3.2.x before 3.2.1 contains an unrestricted file upload vulnerability that allows authenticated back-office users to upload PHP files by appending a trailing space to filenames. FileProcessorService validates the …","severity":"high","cvss":7.2,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H","cwe":["CWE-434"],"published":"2026-10-12","updated":"2026-10-12","sourceUpdated":"2026-10-12T16:17:05.233","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-109397","references":[{"url":"https://github.com/thelia/thelia/blob/3.2.0/core/lib/Thelia/Core/File/Service/FileProcessorService.php#L119-L160","label":"disclosure@vulncheck.com"},{"url":"https://github.com/thelia/thelia/commit/6b706f5cb96e6b12d890c6d16edb1c9d1fd8191a","label":"disclosure@vulncheck.com"},{"url":"https://github.com/thelia/thelia/commit/b71258902b5dd278007d0f37ddad45f76d06d5bc","label":"disclosure@vulncheck.com"},{"url":"https://github.com/thelia/thelia/releases/tag/3.1.2","label":"disclosure@vulncheck.com"},{"url":"https://github.com/thelia/thelia/releases/tag/3.2.1","label":"disclosure@vulncheck.com"},{"url":"https://github.com/thelia/thelia/security/advisories/GHSA-5524-qfxp-33v9","label":"disclosure@vulncheck.com"},{"url":"https://www.vulncheck.com/advisories/thelia-before-3.1.2-and-3.2-x-before-3.2.1-file-upload-rce-via-filename-trailing-space","label":"disclosure@vulncheck.com"}],"tags":["nvd"],"ingestedAt":"2026-10-12T16:57:59.914Z","slug":"CVE-2026-109397","body":"## Overview\n\nThelia before 3.1.2 and 3.2.x before 3.2.1 contains an unrestricted file upload vulnerability that allows authenticated back-office users to upload PHP files by appending a trailing space to filenames. FileProcessorService validates the raw filename but FileManager::sanitizeFileName() strips the space, storing an executable .php file under public/cache/documents/ for code execution as the web server user.\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"twilight","depthScore":40,"depthScoreParts":{"impact":39.6,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}