🇰🇷 한글 설명
phpMyAdmin 5.2.3 이하 버전에는 DesignerHistory.display()에서 테이블 이름을 이스케이프하지 않아 발생하는 저장형 XSS 취약점이 있습니다. CREATE 권한을 가진 데이터베이스 사용자가 HTML 마크업이 포함된 테이블 이름을 만들 수 있으며, 다른 사용자가 Designer 쿼리 모드에서 해당 테이블에 조건을 추가할 때 스크립트가 실행됩니다.
💡 쉬운 설명
데이터베이스 테이블 이름에 악성 코드를 숨겨 두면, 다른 사용자가 그 테이블을 특정 방식으로 다룰 때 그 코드가 실행됩니다. 공격자는 주로 테이블을 만들 수 있는 권한을 가진 계정을 이용합니다.
🇺🇸 원문 (English)
phpMyAdmin through 5.2.3 contains a stored cross-site scripting vulnerability that allows database users with CREATE privilege to inject script via unescaped table names in DesignerHistory.display(). Attackers can create a table whose name contains HTML markup that executes in another user's session when they add a condition on it in Designer query mode.
📍 영향받는 시스템
phpMyAdmin 5.2.3 이하 버전
⚔️ 공격 벡터
CREATE 권한을 가진 사용자가 악성 HTML이 포함된 테이블 이름을 생성하고, 피해자가 Designer 쿼리 모드에서 해당 테이블을 조작할 때 스크립트가 실행됨
🛡️ 대응 방법
phpMyAdmin을 5.2.4 이상 버전으로 업데이트
🔧 검증 코드
출력된 버전이 5.2.3 이하이면 취약하므로 5.2.4 이상으로 업데이트가 필요하고, 버전 정보가 없으면 설치되지 않은 것입니다.
phpmyadmin -v 2>/dev/null || grep -i 'version' /usr/share/phpmyadmin/libraries/classes/Version.php 2>/dev/null || dpkg -l phpmyadmin 2>/dev/null | grep phpmyadmin