🇰🇷 한글 설명
ZenCart 1.5.5e의 AdminRequestSanitizer.php에서 traverseStrictSanitize 함수가 배열 키를 제대로 검증하지 않아 원격 인증 사용자가 admin_name 배열의 유효하지 않은 인덱스에 PHP 코드를 주입할 수 있습니다. 에러 로그를 내보낼 때 주입된 코드가 실행되어 서버에 완전한 제어권을 탈취할 수 있습니다.
💡 쉬운 설명
ZenCart 관리 페이지의 입력 검증이 부족하여 관리자 권한을 가진 공격자가 악의적인 명령을 실행할 수 있습니다. 에러 로그 내보내기 기능을 통해 이 코드가 서버에서 실행됩니다.
🇺🇸 원문 (English)
The traverseStrictSanitize function in admin_dir/includes/classes/AdminRequestSanitizer.php in ZenCart 1.5.5e mishandles key strings, which allows remote authenticated users to execute arbitrary PHP code by placing that code into an invalid array index of the admin_name array parameter to admin_dir/login.php, if there is an export of an error-log entry for that invalid array index.
📍 영향받는 시스템
ZenCart 1.5.5e 및 그 이전 버전
⚔️ 공격 벡터
인증된 사용자가 /admin/login.php의 admin_name 파라미터에 특수한 배열 인덱스로 PHP 코드를 삽입 후 에러 로그 내보내기 기능 실행
🛡️ 대응 방법
ZenCart를 1.5.5f 이상으로 업그레이드하거나 공식 패치 적용
🔧 검증 코드
AdminRequestSanitizer.php 파일이 존재하고 traverseStrictSanitize 함수가 포함되어 있으면 취약점 가능성 있음. ZenCart 버전을 확인하여 1.5.5e 이하인지 확인 필요.
grep -l 'traverseStrictSanitize' /admin/includes/classes/AdminRequestSanitizer.php 2>/dev/null && echo 'VULNERABLE' || echo 'NOT FOUND'