---
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'
---

## Overview

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.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
