The vulnerability exists in the Theme::upload function, located in modules/Theme/Controllers/Theme.php. The function is responsible for handling theme uploads in the form of ZIP archives. The vulnerability arises because the application fails to validate the file paths of the entries within the uploaded ZIP archive before extraction. The ZipArchive::extractTo() method is called directly on the uploaded file. This allows an authenticated attacker with theme creation permissions to craft a malicious ZIP file with directory traversal payloads (e.g., ../../public/shell.php). When this archive is processed, the malicious file is written to an arbitrary location on the filesystem, such as the web root, leading to remote code execution. The patch, identified in commit f6b12769eb27aee2ef96ae9cb5e0d22aab77d1cb, introduces a loop that iterates through each entry in the ZIP archive and checks for path traversal characters (..) before extraction, thus mitigating the Zip Slip vulnerability.