🇰🇷 한글 설명
PandaWiki 3.65.0부터 3.87.5까지의 버전에는 저장형 크로스사이트 스크립팅(XSS) 취약점이 존재합니다. 인증되지 않은 공격자가 /share/v1/common/file/upload 경로를 통해 이미지 확장자를 가진 HTML 파일을 업로드할 수 있습니다. 공격자는 관리자를 특정 URL로 유도하여 nginx 첨부 헤더를 우회하고, panda_wiki_token JWT를 탈취해 세션을 장악할 수 있습니다.
💡 쉬운 설명
공격자가 이미지처럼 위장한 악성 웹 파일을 업로드할 수 있습니다. 관리자가 이 파일을 열면 로그인 정보가 탈취되어 시스템이 넘어갈 수 있습니다.
🇺🇸 원문 (English)
PandaWiki 3.65.0 through 3.87.5 contains a stored cross-site scripting vulnerability that allows unauthenticated attackers to upload HTML files with image extensions via /share/v1/common/file/upload. Attackers can lure administrators to /static-file/<key>?a=.pdf, bypassing the nginx attachment header to serve HTML inline and steal the panda_wiki_token JWT for session takeover.
📍 영향받는 시스템
PandaWiki 3.65.0 ~ 3.87.5
⚔️ 공격 벡터
미인증 공격자가 HTML 파일을 이미지 확장자로 업로드한 뒤, 관리자가 해당 링크를 열도록 유도하여 JWT 토큰을 탈취
🛡️ 대응 방법
PandaWiki를 3.87.5 초과 버전으로 업데이트하고, 파일 업로드 시 MIME 타입과 내용 검증을 강화하며, 업로드 파일을 항상 Content-Disposition: attachment로 제공
🔧 검증 코드
출력된 태그 버전이 3.65.0 이상 3.87.5 이하이면 취약하며, 3.87.5를 초과하거나 취약 범위 밖이면 패치된 것으로 판단합니다. 아무 결과도 없으면 Docker로 배포되지 않은 환경이므로 다른 방법으로 버전을 확인해야 합니다.
docker images --format '{{.Repository}}:{{.Tag}}' | grep -i pandawiki