Description
Immich is a high-performance self-hosted photo and video management solution. From 3.0.0 until 3.2.0, the GET /api/admin/users/{id}/calendar-heatmap route in server/src/controllers/user-admin.controller.ts uses the ordinary Permission.UserRead permission without an admin-route requirement, and UserAdminService.getCalendarHeatmap in server/src/services/user-admin.service.ts does not compare the authenticated user with the requested user identifier or perform a separate access check. Any authenticated non-admin user can therefore request another account's upload or capture-date activity heatmap for an arbitrary date range. AssetRepository.getCalendarHeatmap in server/src/repositories/asset.repository.ts filters by owner, date, and deletion state but not visibility, so the returned daily counts and total count include archived and locked assets. The route exposes counts and activity dates but does not return asset metadata or content, and it does not affect integrity or availability. This issue is fixed in version 3.2.0.
Published: 2026-11-05
Score: 4.3 Medium
EPSS: n/a
KEV: No
Impact: Cross‑user activity disclosure through broken access control
Action: Apply Patch
AI Analysis

Impact

Immich versions 3.0.0 through 3.2.0 contain a broken access control flaw in the GET /api/admin/users/{id}/calendar‑heatmap endpoint. The handler requires only the ordinary UserRead permission and does not verify that the requesting user is an administrator or the owner of the requested calendar data. Because the returned data consists only of aggregate counts and dates, an attacker can use an authenticated non‑admin account to discover another user’s upload or capture‑date activity for arbitrary date ranges without learning any asset metadata or content. The vulnerability therefore provides a confidentiality breach that reveals activity patterns across user accounts.

Affected Systems

The affected product is the Immich photo and video management application provided by the immich-app:immich vendor. Any installation running a version from 3.0.0 up to (but not including) 3.2.0 is susceptible. The issue is fixed in release 3.2.0 and later, where the route is protected by an administrative privilege check and the service verifies the ownership of the requested data.

Risk and Exploitability

The CVSS score of 4.3 indicates low overall severity, and the vulnerability does not compromise integrity or availability. The EPSS score is not available and the issue is not listed in the CISA KEV catalog, suggesting that automated exploitation is not currently tracked. The likely attack path involves a legitimate, authenticated user who is not an administrator sending a crafted request to the /api/admin/users/{id}/calendar‑heatmap endpoint with the target user’s identifier. No additional privilege escalation or exploit chain is required, so the risk is limited to privacy leakage of user activity.

Generated by OpenCVE AI on November 5, 2026 at 19:11 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Immich to version 3.2.0 or later
  • If upgrade is not possible, disable the /api/admin/users/{id}/calendar-heatmap endpoint for non-admin users
  • Review and enforce that admin routes require administrative privileges in the code
  • Monitor API logs for unauthorized access attempts

Generated by OpenCVE AI on November 5, 2026 at 19:11 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 05 Nov 2026 19:00:00 +0000

Type Values Removed Values Added
First Time appeared Immich-app
Immich-app immich
Vendors & Products Immich-app
Immich-app immich

Thu, 05 Nov 2026 17:15:00 +0000

Type Values Removed Values Added
Description Immich is a high-performance self-hosted photo and video management solution. From 3.0.0 until 3.2.0, the GET /api/admin/users/{id}/calendar-heatmap route in server/src/controllers/user-admin.controller.ts uses the ordinary Permission.UserRead permission without an admin-route requirement, and UserAdminService.getCalendarHeatmap in server/src/services/user-admin.service.ts does not compare the authenticated user with the requested user identifier or perform a separate access check. Any authenticated non-admin user can therefore request another account's upload or capture-date activity heatmap for an arbitrary date range. AssetRepository.getCalendarHeatmap in server/src/repositories/asset.repository.ts filters by owner, date, and deletion state but not visibility, so the returned daily counts and total count include archived and locked assets. The route exposes counts and activity dates but does not return asset metadata or content, and it does not affect integrity or availability. This issue is fixed in version 3.2.0.
Title Immich calendar heatmap endpoint discloses cross-user activity through broken access control
Weaknesses CWE-1220
CWE-284
CWE-639
References
Metrics cvssV3_1

{'score': 4.3, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N'}


Subscriptions

Immich-app Immich
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-11-05T18:34:02.825Z

Reserved: 2026-10-02T14:38:43.244Z

Link: CVE-2026-104867

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Deferred

Published: 2026-11-05T17:17:32.687

Modified: 2026-11-05T19:17:07.373

Link: CVE-2026-104867

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-11-05T19:15:07Z

Weaknesses
  • CWE-1220

    Insufficient Granularity of Access Control

  • CWE-284

    Improper Access Control

  • CWE-639

    Authorization Bypass Through User-Controlled Key