🇰🇷 한글 설명
ZoneMinder 1.39.17 버전의 Filter 클래스 내 권한 확인 로직 결함으로 인해 발생하는 원격 코드 실행 취약점입니다. 인증된 사용자가 ZM\User 클래스의 존재하지 않는 메서드를 호출하여 PHP __call() 함수를 통해 권한 검사를 우회하고 OS 명령을 실행할 수 있습니다.
💡 쉬운 설명
로그인 권한이 있는 사용자라면 누구나 시스템의 관리자 권한을 탈취하여 컴퓨터에 명령을 내릴 수 있는 보안 구멍이 발견되었습니다. 이는 권한을 확인하는 과정에서 프로그램이 잘못된 판단을 내리기 때문에 발생합니다.
🇺🇸 원문 (English)
A remote code execution vulnerability in ZoneMinder 1.39.17 allows any authenticated user to execute OS commands by exploiting a broken permission check in the Filter class. The canEdit() and canDelete() methods invoke nonexistent methods on the ZM\User class, causing PHP __call() to return a truthy value that bypasses the permission check for all users. Any authenticated user can trigger filter-based OS command execution regardless of their assigned role.
📍 영향받는 시스템
ZoneMinder 1.39.17
⚔️ 공격 벡터
인증된 사용자가 권한 검사 우회 로직을 악용하여 필터 기반의 OS 명령 실행
🛡️ 대응 방법
ZoneMinder를 최신 보안 패치가 적용된 버전으로 업데이트하거나 권한 검사 로직을 수정해야 합니다.
🔧 검증 코드
명령어 실행 결과가 'Vulnerable'로 출력되면 해당 취약점에 노출된 버전입니다.
php -r 'echo version_compare("1.39.17", "1.39.17", "=") ? "Vulnerable" : "Safe";' 2>/dev/null