🔍 CVE-2026-49229

8.3
CVSS Score
HIGH
2026-07-07
2026-10-25 20:10
✅ 완료

🇰🇷 한글 설명

Actual은 로컬 우선 개인 금융 앱입니다. 26.6.0 이전 버전의 OpenID 다중 사용자 모드에서, 사용자를 비활성화해도 해당 사용자의 기존 세션 토큰은 만료 전까지 계속 유효합니다. 공유 세션 검증 경로가 사용자의 활성화 여부를 확인하지 않아, 비활성화된 사용자도 인증된 서버 엔드포인트를 계속 호출할 수 있습니다. 이 문제는 26.6.0 버전에서 수정되었습니다.

💡 쉬운 설명

직원이나 사용자의 접근 권한을 해제해도 이미 발급된 로그인 상태가 남아 있어 계속 시스템을 이용할 수 있습니다. 관리자가 차단한 사용자가 기존 로그인 정보로 여전히 데이터에 접근할 수 있는 문제입니다.

🇺🇸 원문 (English)

Actual is a local-first personal finance app. Prior to 26.6.0, in OpenID multi-user mode, disabling a user only blocks future OpenID login for that identity, while existing Actual session tokens for the disabled user remain valid. The shared session validation path accepts any existing token row that has not expired without checking whether the associated user is still enabled, allowing a disabled user to continue calling authenticated server endpoints. This issue is fixed in version 26.6.0.

📍 영향받는 시스템

Actual 26.6.0 이전 버전의 OpenID 다중 사용자 모드 서버

⚔️ 공격 벡터

사용자 비활성화 전에 발급받은 유효한 세션 토큰을 이용해 비활성화된 계정으로 인증된 API 엔드포인트를 계속 호출

🛡️ 대응 방법

Actual 서버를 26.6.0 이상으로 업그레이드하고, 비활성화된 사용자의 기존 세션을 수동으로 무효화

🔧 검증 코드

출력된 버전이 26.6.0 이상이면 패치 적용된 상태이며, 그보다 낮으면 취약한 버전이므로 업그레이드가 필요합니다.

Shell / Script
docker exec actual-server cat /app/package.json 2>/dev/null | grep '"version"'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L

💻 영향받는 소프트웨어

Log Server