🇰🇷 한글 설명
Admidio 오픈소스 사용자 관리 솔루션에서 발생하는 취약점으로, 파일 이동 시 원본 폴더에 대한 권한 검증이 누락되어 있습니다. 공격자는 권한이 없는 폴더의 파일을 자신이 제어할 수 있는 폴더로 이동시켜 기밀 정보를 탈취하거나 파일의 무결성을 훼손할 수 있습니다.
💡 쉬운 설명
파일을 옮길 때 목적지만 확인하고 원래 있던 곳에 대한 권한은 확인하지 않는 허점이 있습니다. 이를 이용해 남의 비밀 파일을 내 폴더로 몰래 옮겨서 가져갈 수 있습니다.
🇺🇸 원문 (English)
Admidio is an open-source user management solution. Prior to version 5.0.10, `modules/documents-files.php` gates state-changing modes by checking that the actor has `hasUploadRight()` on the URL parameter `folder_uuid`. The `move_save` handler then operates on a *separate* URL parameter `file_uuid` and calls `File::moveToFolder($destFolderUUID)`. `File::moveToFolder()` checks the upload right on the destination folder but never on the source folder containing the file. As a result, any user who can upload to any single folder can move any file from any other folder — including private folders to which they have no view rights — into a folder they control, and then download it. Confidentiality is broken (private file contents leak) and integrity is broken (the file is removed from the original location). Version 5.0.10 contains a fix.
📍 영향받는 시스템
Admidio 5.0.10 미만 버전
⚔️ 공격 벡터
권한이 없는 폴더의 file_uuid를 move_save 핸들러에 전달하여 파일을 공격자의 폴더로 이동시키는 방식
🛡️ 대응 방법
Admidio를 최신 보안 패치가 적용된 버전 5.0.10 이상으로 업데이트하십시오.
🔧 검증 코드
설치된 Admidio의 버전을 확인하여 5.0.10 미만인지 확인합니다.
php -r 'echo "Admidio version check";' | grep -i "5.0.10"