🇰🇷 한글 설명
immich는 고성능 자가 호스팅 사진·동영상 관리 솔루션입니다. commit 4ffa26c9부터 4eb1003 이전까지 /auth/login 페이지에 반사형 XSS 취약점이 존재하며, continue 쿼리 파라미터가 스킴이나 출처 검증 없이 SvelteKit의 redirect()에 전달되어 공격자가 조작한 자바스크립트가 Immich 출처에서 실행될 수 있습니다. 공격자는 이를 이용해 피해자의 세션으로 모든 권한을 가진 API 키를 발급받아 지속적인 계정 탈취가 가능합니다. 이 취약점은 commit 4eb1003에서 수정되었습니다.
💡 쉬운 설명
공격자가 만든 링크를 한 번 클릭하면 Immich 사진 서비스 로그인 사용자의 계정이 완전히 장악될 수 있습니다. 공격자는 피해자 계정에 영구적인 접근 키를 만들어 두어 비밀번호를 바꿔도 계속 접속할 수 있습니다.
🇺🇸 원문 (English)
immich is a high performance self-hosted photo and video management solution. From commit 4ffa26c9 until 4eb1003, a reflected cross-site scripting (XSS) vulnerability on the /auth/login page allows an attacker to fully compromise any authenticated user's account with a single link click. The continue query parameter is read from the URL and passed to SvelteKit's redirect() without any scheme or origin validation, allowing attacker-controlled JavaScript to execute inside Immich's origin. The payload then uses the victim's existing session to mint an all-permission API key on their account, leading to persistent account takeover. This vulnerability is fixed in commit 4eb1003.
📍 영향받는 시스템
immich commit 4ffa26c9 이후부터 4eb1003 이전까지의 버전 (수정 커밋 4eb1003 이전 빌드)
⚔️ 공격 벡터
악성 continue 파라미터가 포함된 /auth/login 링크를 피해자가 클릭하면 반사형 XSS로 스크립트가 실행되어 세션으로 전권 API 키를 생성
🛡️ 대응 방법
immich를 commit 4eb1003 이후 버전으로 업데이트하고, 의심스러운 API 키를 점검·삭제하며 계정 비밀번호와 세션을 재설정
🔧 검증 코드
출력된 이미지 태그나 버전을 확인해 수정 커밋 4eb1003이 포함된 최신 릴리스 이후인지 비교하며, 출력이 없으면 설치 경로와 컨테이너 이름을 직접 확인해야 합니다.
docker inspect immich_server --format '{{.Config.Image}}' 2>/dev/null || cd ~/immich 2>/dev/null && grep -r 'ghcr.io/immich-app' docker-compose.yml 2>/dev/null