Skip to main content

Immich EUVDEUVD-2026-114377

| CVE-2026-119330 LOW
Improper Authorization (CWE-285)
2026-10-30 GitHub_M
3.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as ordinary Immich user
  2. Delivery
    Obtain a victim-owned asset UUID
  3. Exploit
    POST ALBUM shared-link with victim UUID in assetIds
  4. Execution
    Server persists unchecked asset association
  5. Impact
    Retrieve/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.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

immich < 3.2.0

Affected Packages

euvd immich fix: 3.2.0

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

Vendor (GitHub_M) PRIMARY 3.5 LOW
AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:N/A:N
vuln.today AI 4.3 MEDIUM

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.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Unchanged
Confidentiality
Low
Integrity
None
Availability
None

Lifecycle Timeline

1
Patch available
Oct 30, 2026 - 21:18 EUVD

DescriptionCVE.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

EPSS Score
0.2%
Top 87% exploitable
Prevalence
Medium
popular self-hosted photo/video platform, large homelab footprint, limited enterprise use
Data Quality
3 sources
Confidence: Low

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.

SignalValue
Severity LOW
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Low

Priority Score

18
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +18
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

More in Immich

View all
CVE-2026-59258 HIGH POC
7.2 Jul 15

Album ownership takeover in immich before 3.0.3 allows a user with shared-album editor access to escalate to full owner

CVE-2026-23896 HIGH POC
7.2 Jan 29

Immich versions prior to 2.5.0 contain an improper access control flaw that allows any authenticated API key to escalate

CVE-2026-53662 CRITICAL
9.6 Jun 23

Reflected cross-site scripting in Immich (commits 4ffa26c9 through pre-4eb1003) allows a single-click account takeover o

CVE-2026-108165 MEDIUM POC
5.3 Oct 10

Authenticated partners in Immich through 3.3.1 can read metadata from assets stored in another user's Locked Folder - in

CVE-2026-105764 HIGH
7.7 Oct 05

Remote code execution in Immich before 3.2.4 lets any authenticated non-admin user with upload permission run arbitrary

CVE-2026-82272 HIGH
7.1 Aug 28

Locked asset visibility bypass in Immich through 3.1.0 exposes private photo and video assets to unauthorized viewers vi

CVE-2026-103532 MEDIUM
6.9 Oct 01

Improper authorization in Immich's Shared Link Preview Handler (server/src/utils/access.ts, function checkSharedLinkAcce

CVE-2026-119328 MEDIUM
6.5 Oct 30

Unauthenticated filesystem path injection in Immich's machine-learning service (vulnerable through 3.0.3, fixed in 3.3.0

CVE-2026-25118 MEDIUM
6.3 Apr 03

Immich prior to version 2.6.0 discloses shared album passwords in cleartext within URL query parameters during authentic

CVE-2026-35455 MEDIUM
5.4 Apr 08

Stored Cross-Site Scripting in Immich photo management platform versions prior to 2.7.0 enables authenticated attackers

CVE-2026-40096 MEDIUM
5.1 Apr 14

Open redirect vulnerability in Immich prior to version 2.7.3 allows authenticated attackers to craft malicious shared al

CVE-2026-119329 MEDIUM
4.3 Oct 30

Immich before 3.0.0 leaks the GPS coordinates and asset identifiers of a sharer's archived photos and videos to view-onl

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy