🔍 CVE-2026-49467

8.8
CVSS Score
HIGH
2026-08-12
2026-10-24 16:10
✅ 완료

🇰🇷 한글 설명

Pingvin Share X 1.5.0부터 1.18.0 버전에서 TOTP 설정 관리 시 비밀번호 검증 우회가 가능한 취약점입니다. authTotp.service.ts와 auth.service.ts에서 비동기 verifyPassword 및 authenticateUser 호출에 await 키워드가 누락되어, 검증 실패 시에도 ForbiddenException이 발생하지 않습니다. 1.18.1 버전에서 수정되었습니다.

💡 쉬운 설명

비밀번호가 틀려도 시스템이 이를 확인하지 못해 통과시키는 문제입니다. 공격자가 다른 사용자의 2단계 인증 설정을 임의로 변경할 수 있습니다.

🇺🇸 원문 (English)

Pingvin Share X is a secure and easy self-hosted file sharing platform. A vulnerability in versions 1.5.0 through 1.18.0 allow an attacker to bypass password verification when managing Time-based One-Time Password (TOTP) settings. The root cause is a missing `await` keyword on calls to the asynchronous `verifyPassword` method in `authTotp.service.ts` and the `authenticateUser` method in `auth.service.ts`. In JavaScript, an unawaited `Promise` is always truthy. So the logic intended to throw a `ForbiddenException` when a password is incorrect. It never executes because the expression evaluates the existence of the `Promise` object rather than its resolved boolean result. The vulnerability is fixed in version 1.18.1 by ensuring all asynchronous authentication calls are properly awaited. There are no official workarounds. If a user is locked out, an administrator must manually reset the user's TOTP status in the database.

📍 영향받는 시스템

Pingvin Share X 1.5.0 ~ 1.18.0 (수정 버전: 1.18.1)

⚔️ 공격 벡터

잘못된 비밀번호로 TOTP 설정 관리 기능을 호출하여 인증을 우회하고 대상 계정의 TOTP 설정을 변경

🛡️ 대응 방법

Pingvin Share X를 1.18.1 이상으로 업그레이드하고, 잠긴 사용자는 관리자가 데이터베이스에서 TOTP 상태를 직접 초기화

🔧 검증 코드

출력된 버전이 1.5.0~1.18.0 범위에 해당하면 취약하며, 1.18.1 이상이면 패치된 것입니다.

Shell / Script
docker inspect --format='{{index .Config.Labels "org.opencontainers.image.version"}}' pingvin-share 2>/dev/null || grep -rE '"version"' package.json

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Oracle Java SE