Skip to main content
Version: v0.0.3

IGLU-2026-004: Deduplication allows any tenant to overwrite any other tenant's files

Summary: Uploading a derivation to an Iglu tenant may overwrite that same file for other tenants if that same nix derivation path is present in the victim tenant, allowing a hacker to potentially serve malware

SeverityMedium (CVSS 4.0: 5.9)
Affected versions>= 2.0.0, < 2.3.2 · < 1.9.8
Fixed versions2.3.2, 1.9.8
PublishedYYYY-MM-DD
CVSS Calculator v4 values
CVSS:4.0/AV:N/AC:H/AT:N/PR:H/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N/S:P/AU:Y/R:I/RE:H/U:Amber

Impact​

An attacker may be able to upload malware on any tenant by uploading an already cached derivation on the Iglu-Cache Server due to a flaw in Iglu's deduplication logic.

Affected configurations​

All configurations affected

Remediation​

Upgrade to a fixed version by updating the Iglu Docker or Nix Service:

Docker Compose:​

services:
postgres:
image: "postgres:18.3"
environment:
POSTGRES_PASSWORD: "changeme"
POSTGRES_DB: "iglu"
iglu:
- image: "ghcr.io/iglu-sh/iglu-cache:v0.0.2"
+ image: "ghcr.io/iglu-sh/iglu-cache:v0.0.3"
volumes:
- "./binaries:/binaries"
- "./config:/config"
environment:
IGLU_CACHE_CONF: "/config/config.toml" # Sets which directory should be searched for your config.toml
depends_on:
- "postgres"
ports:
- "80:80"

Nix Service:​

Run nix flake update and re-start the Iglu service.

Workarounds​

If users cannot upgrade immediately, list mitigations here — or state explicitly: "No workaround is available."

Technical details​

The root cause of this issue was a flaw in the deduplication logic of iglu which didn't check for either if the file hash of the uploaded file matches the potentially already stored file hash or if that file already existed in the target filesystem backend, causing the file to be overwritten by iglu with potentially malicous files

Timeline​

DateEvent
2026-10-12Report received
2026-10-12Issue confirmed, severity assessed
2026-10-13Fix released, advisory published

References​

  • Fix commit: Github
  • Release notes: v0.0.3
  • GitHub advisory: None published

Revision history​

DateChange
2026-10-16Initial publication