Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L
Network-facing web app renamable by any authenticated low-privilege user (PR:L, AC:L, UI:N); write/move-only primitive gives I:H and modest A:L with no read, so C:N.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
4DescriptionCVE.org
Manyfold is an open source, self-hosted web application for managing a collection of 3d models, particularly focused on 3d printing. From 0.96.0 until 0.140.0, authenticated users can rename uploaded files with path traversal sequences because app/models/model_file.rb uses the user-controlled filename in File.join(model.path, filename) without sufficient sanitization, allowing files to be moved or written outside the configured library directory. This issue is fixed in version 0.140.0.
AnalysisAI
Path traversal in Manyfold's file-rename functionality (versions 0.96.0 through 0.139.x) lets an authenticated user move or write files outside the configured 3D-model library directory. The flaw stems from app/models/model_file.rb passing a user-controlled filename straight into File.join(model.path, filename) without stripping '..' sequences, giving low-privileged users write/overwrite primitives on the host filesystem. No public exploit identified at time of analysis, but the upstream fix commit and its test cases plainly demonstrate the traversal, and the issue is resolved in 0.140.0.
Technical ContextAI
Manyfold is a Ruby on Rails, self-hosted web application for cataloguing 3D-printing model collections; the affected component is the ActiveRecord ModelFile model (app/models/model_file.rb). The root cause is CWE-22 (Improper Limitation of a Pathname to a Restricted Directory): when a file record is renamed, the new filename is concatenated to the library base path with File.join() with no canonicalisation, so relative segments like '../' escape the intended library root. The vendor fix introduces a normalizes :filename hook calling normalize_filename, which splits on File::SEPARATOR, deletes '..' and '.' components, and runs each surviving segment through Zaru.sanitize! (a library for producing filesystem-safe names), while still permitting legitimate subfolders. The single affected product per CPE is cpe:2.3:a:manyfold3d:manyfold across all versions in the vulnerable range.
RemediationAI
Upgrade to Manyfold 0.140.0 or later - Vendor-released patch: v0.140.0 - which adds filename normalization that strips '..' and '.' path segments and sanitizes each remaining component (see PR https://github.com/manyfold3d/manyfold/pull/6122 and commit ed6a53e54926708594c07d222155ac3a22f93174). If immediate upgrade is not possible, restrict who can authenticate by disabling open/self-service registration and limiting accounts to trusted operators, since exploitation requires an authenticated user (PR:L); additionally run the Manyfold process under a low-privilege OS account whose write access is confined to the library directory (e.g. via container filesystem restrictions or a dedicated unprivileged user), which limits what an attacker can overwrite outside the library at the cost of no functional changes. Consult the advisory at https://github.com/manyfold3d/manyfold/security/advisories/GHSA-j5f9-r7wf-hv37 for authoritative guidance.
Remote code execution in Manyfold prior to version 0.133.0 allows authenticated users to execute arbitrary commands by u
Session hijacking in Manyfold prior to version 0.133.0 allows unauthenticated attackers to steal user session cookies th
Manyfold versions up to 0.133.1 is affected by authorization bypass through user-controlled key (CVSS 5.3).
Same weakness CWE-22 – Path Traversal
View allSame technique Path Traversal
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-44989