Immich: Unauthenticated filesystem path injection (arbitrary directory write + recursive delete) in the machine-learning service
Impact
Immich versions prior to 3.3.0 have a vulnerability that allows an attacker with network access to write to arbitrary directories and delete files recursively. The issue is due to unauthenticated filesystem path injection in the machine-learning service. This could modify files or delete directories depending on filesystem permissions.
Summarized by @cf/meta/llama-3.3-70b-instruct-fp8-fast. Verify details against the original sources.Affected packages
Affected products
Vendor version evidence. Product records are separate from automatic dependency matching.
immich-app · GitHub_M
immich
1 range
immich-app · GitHub_M
immich
Compare with this publisher’s ranges. This does not inspect your installation.
affected
< 3.3.0
Other versions: unknown
Original source description
Immich is a high-performance self-hosted photo and video management solution. Prior to 3.3.0, the unauthenticated machine-learning /predict endpoint in machine-learning/immich_ml/main.py accepted an options object and passed its values into model construction in machine-learning/immich_ml/models/base.py without restricting security-sensitive parameters. An attacker with network access to the service could set cache_dir to an arbitrary writable path, causing model downloads to write there and causing clear_cache() to pass that path to shutil.rmtree() after selected model-loading failures. Depending on filesystem permissions and the selected path, this could modify files in mounted data locations or recursively delete an attacker-selected directory. The model-name allowlist prevents this issue from becoming arbitrary-model deserialization or code execution. This issue is fixed in version 3.3.0.
Inside the record
Evidence available
Describes the evidence in this view, not whether the product is safe.
Original records
CVE-2026-119328View the latest unmodified CVE JSON from the official source. It may be newer than this imported page.
cve.new JSON →Underlying weaknesses
The source’s classification of what caused the vulnerability.
Contributing organizations · 1
Assigning organization
What changed
Follow changesLarge field values are marked as truncated previews. Original source snapshots remain retained.