🇰🇷 한글 설명
Faust.js의 FaustWP 플러그인 1.8.11 미만 버전에서 암호화 과정 중 초기화 벡터(IV)가 HMAC 검증에서 제외되는 취약점이 발견되었습니다. 이를 통해 공격자는 인증되지 않은 IV를 수정하여 토큰의 사용자 식별자를 관리자 권한으로 위조할 수 있으며, 결과적으로 임의 코드 실행이 가능합니다.
💡 쉬운 설명
로그인한 일반 사용자가 암호화된 데이터의 일부를 조작하여 관리자 권한을 탈취할 수 있는 보안 결함입니다. 이를 통해 공격자는 웹사이트의 모든 권한을 얻고 악성 코드를 설치할 수 있습니다.
🇺🇸 원문 (English)
Faust.js is a headless WordPress toolkit. Prior to 1.8.11, the FaustWP WordPress plugin authenticates only the ciphertext in its token envelope and excludes the 16-byte initialization vector from the HMAC in WPE\FaustWP\Auth\encrypt() and WPE\FaustWP\Auth\decrypt() in plugins/faustwp/includes/auth/functions.php. A logged-in non-administrator who obtains an authorization code from GET /generate can modify the unauthenticated initialization vector so that CBC decryption changes the token type and user identifier while the HMAC remains valid. This can produce an access token for an Administrator and permit full WordPress REST API access, administrator-account creation, plugin installation, and arbitrary code execution. This issue is fixed in repository version 1.8.11.
📍 영향받는 시스템
FaustWP WordPress plugin versions prior to 1.8.11
⚔️ 공격 벡터
인증되지 않은 초기화 벡터(IV)를 조작하여 CBC 복호화 시 토큰의 사용자 식별자를 관리자로 위조하는 방식
🛡️ 대응 방법
FaustWP 플러그인을 최신 버전인 1.8.11 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 결과에 버전이 1.8.11 미만으로 표시되면 취약한 상태입니다.
wp plugin list --name faustwp --format=json | grep -E '"version":"[0-1]\.[0-7]\.[0-9]"'