🇰🇷 한글 설명
phpMyFAQ는 오픈 소스 FAQ 웹 애플리케이션입니다. 4.0.16 버전 및 이전 버전에서는 dlattachment 권한이 없는 인증된 사용자가 FAQ 첨부 파일을 다운로드할 수 있습니다. attachment.php에서 권한 키의 존재가 부적절하게 인증으로 검증되며, 그룹 및 사용자 권한 논리에는 불완전한 조건부 표현식이 포함되어 있어 비인가된 액세스가 허용될 수 있습니다.
💡 쉬운 설명
phpMyFAQ의 구 버전에서는 인증된 사용자가 첨부 파일을 다운로드할 수 있는 취약점이 있습니다. 이 취약점은 권한 검사에서 발생하며, 비인가된 사용자가 첨부 파일에 액세스할 수 있습니다. 최신 버전으로 업데이트하여 취약점을 해결할 수 있습니다.
🇺🇸 원문 (English)
phpMyFAQ is an open source FAQ web application. Versions 4.0.16 and below allow an authenticated user without the dlattachment permission to download FAQ attachments due to a incomprehensive permissions check. The presence of a right key is improperly validated as proof of authorization in attachment.php. Additionally, the group and user permission logic contains a flawed conditional expression that may allow unauthorized access. This issue has been fixed in version
📍 영향받는 시스템
phpMyFAQ 4.0.16 버전 및 이전 버전
⚔️ 공격 벡터
인증된 사용자가 FAQ 첨부 파일을 다운로드하여 비인가된 액세스를 획득
🛡️ 대응 방법
phpMyFAQ를 최신 버전으로 업데이트하여 취약점을 해결
🔧 검증 코드
로컬 시스템에서 phpMyFAQ 버전을 확인하여 취약점 여부를 점검합니다. verification_code를 실행하기 전에 phpmyfaq 명령어가 설치되어 있는지 확인해야 합니다. verification_code는 phpmyfaq --version 명령어를 실행하여 버전을 확인하고, 버전이 4.0.16 이하인 경우 취약한 것으로 판단합니다.
import subprocess
result = subprocess.run(['phpmyfaq', '--version'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
version = result.stdout.decode('utf-8').strip()
if version <= '4.0.16':
print({"result": "취약", "reason": "phpMyFAQ 버전이 4.0.16 이하입니다."})
else:
print({"result": "양호", "reason": "phpMyFAQ 버전이 4.0.16 이상입니다."})