🇰🇷 한글 설명
Node.js 기반의 Wiki.js에서 발생하는 취약점으로, 특정 경로에 쓰기 권한이 있는 인증된 사용자가 페이지 ID를 조작하여 허용되지 않은 경로의 페이지를 업데이트할 수 있습니다. 접근 제어 로직이 실제 페이지 ID와 연결된 경로가 아닌 사용자가 제공한 경로 값을 검증하기 때문에 발생합니다.
💡 쉬운 설명
권한이 제한된 사용자가 페이지 번호를 몰래 바꿔서 자신이 수정할 수 없는 다른 페이지를 수정할 수 있는 보안 결함입니다. 시스템이 사용자가 입력한 가짜 경로를 믿고 검사를 수행하기 때문에 발생합니다.
🇺🇸 원문 (English)
Wiki.js is a wiki app built on Node.js. In affected versions an authenticated user with write access on a restricted set of paths can update a page outside the allowed paths by specifying a different target page ID while keeping the path intact. The access control incorrectly check the path access against the user-provided values instead of the actual path associated to the page ID. Commit https://github.com/Requarks/wiki/commit/411802ec2f654bb5ed1126c307575b81e2361c6b fixes this vulnerability by checking access control on the path associated with the page ID instead of the user-provided value. When the path is different than the current value, a second access control check is then performed on the user-provided path before the move operation.
📍 영향받는 시스템
Wiki.js (패치 적용 전 버전)
⚔️ 공격 벡터
인증된 사용자가 페이지 업데이트 요청 시 대상 페이지 ID를 조작하여 권한 밖의 경로로 요청 전송
🛡️ 대응 방법
GitHub의 커밋(411802e)이 반영된 최신 버전의 Wiki.js로 업데이트
🔧 검증 코드
출력된 버전이 취약점이 해결된 패치 버전 이후인지 확인합니다.
curl -s https://raw.githubusercontent.com/Requarks/wiki/master/package.json | grep '"version"'