{"id":"CVE-2026-109397","summary":"Thelia before 3.1.2 and 3.2.x before 3.2.1 File Upload RCE via Filename Trailing Space","details":"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 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.","aliases":["GHSA-5524-qfxp-33v9"],"modified":"2026-10-15T02:30:34.120599181Z","published":"2026-10-12T15:16:43.107Z","database_specific":{"cwe_ids":["CWE-434"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/109xxx/CVE-2026-109397.json","cna_assigner":"VulnCheck"},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/109xxx/CVE-2026-109397.json"},{"type":"ADVISORY","url":"https://github.com/thelia/thelia/releases/tag/3.1.2"},{"type":"ADVISORY","url":"https://github.com/thelia/thelia/releases/tag/3.2.1"},{"type":"ADVISORY","url":"https://github.com/thelia/thelia/security/advisories/GHSA-5524-qfxp-33v9"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-109397"},{"type":"ADVISORY","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"},{"type":"FIX","url":"https://github.com/thelia/thelia/commit/6b706f5cb96e6b12d890c6d16edb1c9d1fd8191a"},{"type":"FIX","url":"https://github.com/thelia/thelia/commit/b71258902b5dd278007d0f37ddad45f76d06d5bc"},{"type":"PACKAGE","url":"https://github.com/thelia/thelia"},{"type":"ARTICLE","url":"https://github.com/thelia/thelia/blob/3.2.0/core/lib/Thelia/Core/File/Service/FileProcessorService.php#L119-L160"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/thelia/thelia","events":[{"introduced":"0"},{"fixed":"d589573261ee9a41db6386375f3beb9f610c5ffd"},{"introduced":"cdff8e3d89985d880a3605ebd6bc585780583d92"},{"fixed":"72a72e442b7a15a54eb2991758e1066b58cfab1e"}],"database_specific":{"source":"AFFECTED_FIELD","extracted_events":[{"introduced":"0"},{"fixed":"3.1.2"},{"introduced":"3.2.0"},{"fixed":"3.2.1"}]}}],"versions":["3.1.1","3.2.0","3.1.0","3.0.0","3.0.0-beta5","3.0.0-beta4","3.0.0-beta3","3.0.0-beta1","2.5.4","2.5.3","2.5.2","2.5.1","2.5.0","2.5.0-alpha2","2.5.0-alpha1","2.4.4","2.4.3","2.4.2","2.4.1","2.4.0","2.4.0-alpha1","2.3.0","2.3.0-beta2","2.3.0-beta1","2.3.0-alpha2","2.3.0-alpha1","2.2.0","2.2.0-beta3","2.2.0-beta2","2.2.0-beta1","2.2.0-alpha2","2.2.0-alpha1","2.1.1","2.1.0","2.1.0-beta2","2.1.0-beta1","2.1.0-alpha2","2.1.0-alpha1","2.0.3-beta2","2.0.3-beta","2.0.2","2.0.1","2.0.0","2.0.0-RC1","2.0.0-beta2","2.0.0-beta1"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-109397.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N"}]}