🇰🇷 한글 설명
Froxlor 2.3.8 미만 버전에서 발생하는 CSRF 취약점으로, lib/ajax.php 엔드포인트가 중앙 집중식 요청 검증을 우회합니다. 공격자는 인증된 관리자의 브라우저를 통해 API 키의 허용 IP 주소를 변경하거나 만료일을 수정하는 위조된 요청을 보낼 수 있습니다.
💡 쉬운 설명
관리자가 로그인된 상태에서 악성 링크를 클릭하면, 관리자 모르게 API 키의 보안 설정이 변경될 수 있는 취약점입니다. 이를 통해 공격자는 관리자의 권한을 악용하여 시스템 접근 권한을 탈취할 수 있습니다.
🇺🇸 원문 (English)
Froxlor is open source server administration software. Prior to 2.3.8, the standalone lib/ajax.php entry point bypasses the centralized request validation in lib/init.php, and Ajax::handle in lib/Froxlor/Ajax/Ajax.php checks only for a valid session before routing state-changing requests. The editapikey action in Ajax::editApiKey updates allowed_from and valid_until without validating a CSRF token, while templates/Froxlor/assets/js/jquery/apikeys.js sends no token because the endpoint does not require one. An unauthenticated attacker can induce an authenticated administrator's browser to submit a forged request that adds an attacker-controlled address to an API key's allowed_from list or removes its expiration, weakening the key's security restrictions. This issue is fixed in version 2.3.8.
📍 영향받는 시스템
Froxlor 2.3.8 미만 모든 버전
⚔️ 공격 벡터
인증된 관리자를 대상으로 한 CSRF(사이트 간 요청 위조) 공격
🛡️ 대응 방법
Froxlor를 최신 버전인 2.3.8 이상으로 업데이트하십시오.
🔧 검증 코드
출력 결과가 'Vulnerable'이면 취약한 버전이며, 'Safe'이면 보안 패치가 적용된 버전입니다.
php -r 'include "lib/Froxlor/Version.php"; echo Froxlor\Version::VERSION;' 2>/dev/null | awk -F. '($1 != 2 || $2 != 3 || $3 < 8)' && echo 'Vulnerable' || echo 'Safe'