🇰🇷 한글 설명
MySQL 대소문자 구분 파일시스템에서 데이터베이스명의 대소문자 차이로 인해 권한 검증이 우회되는 취약점입니다. 인증된 사용자가 자신의 권한이 없는 데이터베이스라도 대소문자만 다르면 접근하거나 새로 생성할 수 있습니다.
💡 쉬운 설명
MySQL에서 데이터베이스 이름이 대문자와 소문자로 다르게 쓰여지면, 시스템이 같은 것으로 인식하지 못해 권한이 없어도 접근할 수 있는 문제입니다. 예를 들어 'sales' 데이터베이스 접근이 막혀있어도 'Sales'로 접근하면 같은 데이터베이스에 들어갈 수 있습니다.
🇺🇸 원문 (English)
MySQL before 4.1.21, 5.0 before 5.0.25, and 5.1 before 5.1.12, when run on case-sensitive filesystems, allows remote authenticated users to create or access a database when the database name differs only in case from a database for which they have permissions.
📍 영향받는 시스템
MySQL 4.1.21 이전, 5.0.25 이전, 5.1.12 이전 (case-sensitive 파일시스템 환경)
⚔️ 공격 벡터
MySQL에 인증된 사용자가 접근 권한이 없는 데이터베이스의 대소문자를 바꿔 쿼리를 실행하는 방식
🛡️ 대응 방법
MySQL을 4.1.21, 5.0.25, 5.1.12 이상으로 업그레이드하거나, case-insensitive 파일시스템 사용
🔧 검증 코드
MySQL 버전이 출력되면, 4.1.21, 5.0.25, 5.1.12 이상인지 확인하면 됩니다. 더 낮은 버전이면 취약점이 있습니다.
mysql -V | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' | head -1