Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as ordinary Immich user
-
DeliveryObtain a victim-owned asset UUID
-
ExploitPOST ALBUM shared-link with victim UUID in assetIds
-
ExecutionServer persists unchecked asset association
-
ImpactRetrieve/redistribute original victim file via anonymous link
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization verification
MITRE ATT&CK
1 technique across 1 tactic: Defense Evasion The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an authenticated regular Immich account (PR:L) on a server running <=3.1.0, plus prior out-of-band knowledge of the specific victim-owned asset's UUID - the attack cannot enumerate victims because the 128-bit random UUID is the only selector. The concrete trigger is submitting a CreateSharedLink request with type=ALBUM, an attacker-owned albumId, and the victim UUID placed in the assetIds field, which the server authorizes against the album only while persisting the asset association in shared_link_asset. Limiting factors: single-asset-per-known-UUID disclosure (not bulk), authentication required, affected only before 3.2.0, and confidentiality-only impact (no modification of victim data). The complete fix is upgrading to 3.2.0, which adds a type-dependent schema invariant rejecting assetIds on ALBUM links and albumId on INDIVIDUAL links. |
| Impact | The signals converge on genuinely low-to-moderate priority. The supplied CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:N/A:N = 3.5) reflects an authenticated (PR:L) actor, network reach, no integrity or availability impact, and only partial confidentiality (C:L). The vuln.today decision label is 'monitor', the lowest urgency tier, and the issue is NOT on CISA KEV, so there is no evidence of active exploitation. No EPSS score was supplied, so widespread automated-exploitation probability cannot be quantified from this data. Counterbalancing the low score, the GHSA advisory publishes a complete, reproducible proof-of-concept (curl-based) and the fix is already shipped in 3.2.0, so the barrier to reproduction is low for anyone running an unpatched instance. The most important limiting factor is that exploitation requires the attacker to already KNOW a victim-owned asset UUID (a 128-bit random identifier not enumerable at scale), which makes this a targeted-disclosure issue rather than a mass-exploitation one. One discrepancy to flag explicitly: the authoritative vector sets UI:R, but the advisory and PoC describe an entirely attacker-driven flow with no victim interaction - the 'required' element is really out-of-band knowledge of the asset UUID, not a victim click; verify the UI metric with the reporter. Overall this is a real authorization (CWE-285) defect worth patching but not an emergency. |
| Exploit ScenarioDerived | A legitimate, authenticated Immich user who has learned a victim's asset UUID (e.g. from a previously shared album, link, or leaked identifier) creates an ALBUM-type shared link for their own album while smuggling the victim's UUID into the assetIds field. The server authorizes only the attacker's album but persists the unchecked asset association, so the resulting anonymous shared-link credential exposes the victim's metadata, thumbnail, and byte-identical original file, which the attacker can then redistribute to unauthenticated third parties. A full working proof-of-concept is published in the GHSA advisory. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 30, 2026
Immich before 3.2.0 lets an authenticated regular user attach another user's asset to a shared link they legitimately own: by submitting type=ALBUM with an attacker-owned albumId and the victim's UUID in the assetIds field, the server authorizes only the album yet persists the asset association, and the resulting anonymous shared-link URL then serves the victim asset's metadata, thumbnail and byte-identical original file to anyone who receives the link. The attack is confined to assets whose 128-bit UUID the attacker already knows out of band, so it is a targeted single-asset disclosure rather than bulk harvesting, and it requires a valid account on the affected server. Scored CVSS 3.5 (confidentiality-only, PR:L on the source vector), classified CWE-285 and triaged as monitor; no CISA KEV entry or other confirmation of active exploitation is present, and the vendor advisory (GHSA-g4w3-c888-cr93) includes a full step-by-step curl reproduction of the request sequence.
RemediationAI
Upgrade the Immich server to 3.2.0, which is the complete fix: the release tag https://github.com/immich-app/immich/releases/tag/v3.2.0 contains commit 6a61901e79972bbfe5690636a995e156219b9a8f (PR https://github.com/immich-app/immich/pull/30762), where SharedLinkCreateSchema gains a superRefine that rejects assetIds on ALBUM links and albumId on INDIVIDUAL links before SharedLinkService.create() runs. The vendor advisory GHSA-g4w3-c888-cr93 does not describe a configuration setting that disables the vulnerable behavior, and the assignment's assessed position is that upgrading is the only complete fix, so no equivalent server-side toggle should be relied on; the practical interim constraint before you can patch is that exploitation depends on an attacker already knowing a victim asset's UUID, so treat asset UUIDs as sensitive, rotate or revoke shared links that may have leaked them, and restrict untrusted regular-user accounts on servers that cannot yet move to 3.2.0. As a verification step after upgrading, review existing shared links of type ALBUM for rows in shared_link_asset whose asset is not actually a member of the linked album, since the patch prevents new unchecked associations but the advisory does not state that pre-existing links are rewritten.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The flaw is an improper-authorization / missing-invariant problem (CWE-285) in Immich's NestJS backend. SharedLinkCreateDto accepts albumId and assetIds as independent optional properties, but server/src/services/shared-link.service.ts only calls requireAccess() for the resource named by the requested SharedLinkType: Permission.AlbumShare on dto.albumId for Album links, Permission.AssetShare on dto.assetIds for Individual links. Both fields are then forwarded to sharedLinkRepository.create(), which inserts every supplied assetId into the shared_link_asset join table with no second ownership check. Choosing Album therefore skips the AssetShare authorization for the smuggled asset UUID entirely. The created shared link is an anonymous bearer credential keyed by 50 random bytes, so once the unchecked row exists, unauthenticated holders of the link can read the asset's metadata, fetch a rendered thumbnail and download the original file. The fix adds a zod superRefine to SharedLinkCreateSchema enforcing the type-dependent invariant - assetIds may only accompany INDIVIDUAL links and albumId may only accompany ALBUM links - returning 400 before the service is ever called, complementing the controller-level validation tests added in PR 30762. The trigger requires the attacker to already possess the specific victim asset UUID; no enumeration path is described in the sources.
Know when Immich gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:N/A:N
Attacker-driven flow needs no victim interaction (UI:N vs the supplied UI:R); authenticated regular account gives PR:L; single known-UUID asset disclosure with no integrity/availability impact yields C:L/I:N/A:N.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Immich is a high-performance self-hosted photo and video management solution. Prior to 3.2.0, the shared-link creation API accepted albumId and assetIds as independent fields in server/src/services/shared-link.service.ts but authorized only the resource selected by the requested link type. An authenticated attacker who already knew a victim-owned asset UUID could select SharedLinkType.Album for an attacker-owned album while supplying that UUID in assetIds; SharedLinkService.create() persisted the unchecked association in shared_link_asset and made the victim asset available through the new anonymous shared-link credential. This exposed victim metadata, thumbnails, and the byte-identical original file and created a persistent sharing relationship that could be redistributed. This issue is fixed in version 3.2.0.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Album ownership takeover in immich before 3.0.3 allows a user with shared-album editor access to escalate to full owner
Immich versions prior to 2.5.0 contain an improper access control flaw that allows any authenticated API key to escalate
Reflected cross-site scripting in Immich (commits 4ffa26c9 through pre-4eb1003) allows a single-click account takeover o
Authenticated partners in Immich through 3.3.1 can read metadata from assets stored in another user's Locked Folder - in
Remote code execution in Immich before 3.2.4 lets any authenticated non-admin user with upload permission run arbitrary
Locked asset visibility bypass in Immich through 3.1.0 exposes private photo and video assets to unauthorized viewers vi
Improper authorization in Immich's Shared Link Preview Handler (server/src/utils/access.ts, function checkSharedLinkAcce
Unauthenticated filesystem path injection in Immich's machine-learning service (vulnerable through 3.0.3, fixed in 3.3.0
Immich prior to version 2.6.0 discloses shared album passwords in cleartext within URL query parameters during authentic
Stored Cross-Site Scripting in Immich photo management platform versions prior to 2.7.0 enables authenticated attackers
Open redirect vulnerability in Immich prior to version 2.7.3 allows authenticated attackers to craft malicious shared al
Immich before 3.0.0 leaks the GPS coordinates and asset identifiers of a sharer's archived photos and videos to view-onl
EUVD-2026-114377
NVD
CVE.org
EPSS
GitHub
Exploit-DB