{"answers":{"affected":"It affects 1 product.","exploited":"There is no known exploitation of CVE-2026-35455 in the wild and no public exploit code.","fix":"No fix has been published for CVE-2026-35455 yet. Limit exposure of the affected software until one is available.","what":"CVE-2026-35455 is a high-severity cross-site scripting vulnerability in immich-app immich, published on 8 Apr 2026. It can only be exploited from the same machine or local network, and only if a user opens a file or follows a link."},"fix_prompt":"Check this codebase for CVE-2026-35455 and fix it if it is affected.\n\nWhat it is: CVE-2026-35455 is a high-severity cross-site scripting vulnerability in immich-app immich, published on 8 Apr 2026. It can only be exploited from the same machine or local network, and only if a user opens a file or follows a link.\nExploitation: There is no known exploitation of CVE-2026-35455 in the wild and no public exploit code.\n\nAffected product: immich-app immich. No package-level version data is available, so check the vendor advisory linked from the reference page.\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2026-35455/ (Markdown: https://insights.sbomify.com/CVE-2026-35455/index.md)","id":"CVE-2026-35455","markdown":"https://insights.sbomify.com/CVE-2026-35455/index.md","name":"CVE-2026-35455","record":{"aliases":["GHSA-9qx4-67jm-cc66"],"analysis":{"component_type":"web_application","fix_type":"upgrade","impacts":["account_takeover","data_read"],"network_reachable":"adjacent_or_local","non_default_config":false,"product_category":"Self-hosted photo manager","requires_auth":"low_privilege","summary":"Authenticated attackers can execute arbitrary JavaScript in other users' browsers via unsanitized OCR text in the panorama viewer, leading to session hijacking and data theft.","user_interaction":"required","vuln_class":"xss"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"GitHub_M","cpe":[{"product":"immich","vendor":"futo"}],"cvss":{"score":7.3,"severity":"high","source":"cna","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H","version":"3.1"},"cwes":[{"id":"CWE-79","name":"Improper Neutralization of Input During Web Page Generation"}],"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.","ecosystems":[],"exploits":{"exploitdb":0,"first_seen":"2026-05-12","github_poc":1,"max_poc_stars":0,"metasploit":0,"nuclei":0,"refs":[{"date":"2026-05-12T17:08:09Z","kind":"github_poc","ref":"https://github.com/emanuelepns/immich-exfiltration-demo","stars":0,"title":"Cybersecurity demo exploiting CVE-2026-35455 with automatic API key generation and exfiltration"}],"tier":"poc_unverified"},"has_fix":false,"headline":"immich has Stored XSS via OCR Text in 360° Panorama Viewer","id":"CVE-2026-35455","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":null,"product":null,"products":[],"type":"xss","year":"2026"},"n_packages":0,"n_references":1,"next":{"headline":"libp2p-rust has unbounded rendezvous DISCOVER cookies enable remote memory exhaustion","id":"CVE-2026-35457"},"packages":[],"prev":{"headline":"Code Extension Marketplace has a Zip Slip Path Traversal","id":"CVE-2026-35454"},"products":["immich"],"published":"2026-04-08","related":[{"cvss_score":7.2,"headline":"immich API Key Privilege Escalation vulnerability","id":"CVE-2026-23896","kev_date_added":null,"published":"2026-01-29"},{"cvss_score":6.3,"headline":"Information disclosure in immich","id":"CVE-2026-25118","kev_date_added":null,"published":"2026-04-03"},{"cvss_score":5.1,"headline":"immich: Open Redirect via Shared Album name","id":"CVE-2026-40096","kev_date_added":null,"published":"2026-04-14"}],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"US public information, NVD API terms","name":"NVD"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"},{"class":"open","licence":"CC0","name":"PoC-in-GitHub"}],"ssvc":{"automatable":"no","exploitation":"none","technical_impact":"total"},"state":"PUBLISHED","updated":"2026-04-13","vendors":["immich-app"]},"summary":"Authenticated attackers can execute arbitrary JavaScript in other users' browsers via unsanitized OCR text in the panorama viewer, leading to session hijacking and data theft.","url":"https://insights.sbomify.com/CVE-2026-35455/"}