Live › vulnerability › CVE-2026-119328
Immich's machine-learning /predict endpoint accepts a cache_dir option without restriction, so an unauthenticated network attacker can point model downloads at any writable path. After certain model-loading failures, the service recursively deletes that attacker-chosen directory, which can modify or wipe mounted data.
Summary written from the sources below. Check the originals before acting.
First seen by InfraStack 2026-10-30 20:25 UTC. All times on this page are UTC.
Any self-hosted Immich instance before 3.3.0 whose machine-learning service is reachable over the network, since its /predict endpoint requires no login. Instances where the ML service is only reachable inside a private container network or behind authentication are much less exposed. The sources say the model-name allowlist blocks code execution, so the risk is file writes and deletion.
No product ranges from the sources yet.
3.3.0/predict endpoint is unauthenticated3.3.0 or laterEach row is the first time that source carried this signal. The analyst’s rows are its own findings.
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.
This page as .md · .json · in your agent: get_signal("CVE-2026-119328")
NVD data is provided by NIST and is public domain. Posts quoted belong to their authors.