🇰🇷 한글 설명
Froxlor 2.3.8 미만 버전에서 발생하는 취약점으로, 관리자 API의 ipaddress 배열 입력값에 대한 타입 검증 부재로 인해 SQL 인젝션이 가능합니다. 공격자가 조작된 JSON 데이터를 저장한 후 특정 엔드포인트를 호출하면 UNION 기반 SQL 인젝션을 통해 데이터베이스의 관리자 계정 정보 및 해시를 탈취할 수 있습니다.
💡 쉬운 설명
관리자 설정 메뉴에 악성 코드가 포함된 데이터를 몰래 저장해 두었다가, 나중에 시스템이 이를 불러올 때 데이터베이스를 해킹하는 방식입니다. 이를 통해 해커는 관리자의 비밀번호 정보를 훔쳐낼 수 있습니다.
🇺🇸 원문 (English)
Froxlor is open source server administration software. Prior to 2.3.8, the Admins.add and Admins.update endpoints in lib/Froxlor/Api/Commands/Admins.php accept an attacker-controlled ipaddress array and store it as JSON in panel_admins.ip without enforcing numeric element types. When the poisoned account later calls IpsAndPorts.listing, lib/Froxlor/Api/Commands/IpsAndPorts.php decodes the array and concatenates its elements into a SQL IN clause without casting or parameterization; the same unsafe pattern is present in lib/Froxlor/Api/Commands/Domains.php. An authenticated administrator with change_serversettings permission can store a UNION-based payload and trigger it through the poisoned account to retrieve arbitrary database data, including administrator login names and bcrypt password hashes, with potential privilege escalation and broader database impact. This issue is fixed in version 2.3.8.
📍 영향받는 시스템
Froxlor 2.3.8 미만 모든 버전
⚔️ 공격 벡터
인증된 관리자 권한을 이용한 API 엔드포인트(Admins.add/update)를 통한 SQL 인젝션 페이로드 주입
🛡️ 대응 방법
Froxlor를 최신 보안 패치가 적용된 버전 2.3.8 이상으로 즉시 업데이트하십시오.
🔧 검증 코드
출력된 버전 번호가 2.3.8 미만인 경우 해당 취약점에 노출된 상태입니다.
php -r 'include "lib/Froxlor/Version.php"; echo Froxlor\Version::VERSION;" 2>/dev/null | grep -E '^([0-1]\.[0-9]|2\.[0-3]\.[8-9]|[2-9]\.)'