🇰🇷 한글 설명
MySQL 5.0.51a 이전, 5.1.23 이전, 6.0.4 이전 버전에서 뷰를 ALTER할 때 DEFINER 값이 업데이트되지 않는 취약점입니다. 인증된 사용자가 CREATE SQL SECURITY DEFINER VIEW와 ALTER VIEW를 조합하여 데이터베이스 권한을 상승시킬 수 있습니다.
💡 쉬운 설명
MySQL에서 특정 권한으로 생성된 보기(뷰)를 수정할 때, 원래 설정된 권한이 변경되지 않는 문제입니다. 인증된 사용자가 이를 악용하여 자신의 권한보다 높은 권한으로 데이터베이스에 접근할 수 있게 됩니다.
🇺🇸 원문 (English)
MySQL 5.0.x before 5.0.51a, 5.1.x before 5.1.23, and 6.0.x before 6.0.4 does not update the DEFINER value of a view when the view is altered, which allows remote authenticated users to gain privileges via a sequence of statements including a CREATE SQL SECURITY DEFINER VIEW statement and an ALTER VIEW statement.
📍 영향받는 시스템
MySQL 5.0.x (≤5.0.50a), 5.1.x (≤5.1.22), 6.0.x (≤6.0.3)
⚔️ 공격 벡터
원격 인증된 사용자가 DEFINER 권한이 높은 뷰를 생성한 후 ALTER VIEW로 수정하여 원본 권한을 유지하면서 뷰의 동작을 변경
🛡️ 대응 방법
MySQL을 5.0.51a 이상, 5.1.23 이상, 또는 6.0.4 이상으로 업그레이드
🔧 검증 코드
vulnerable 버전 패턴이 출력되면 취약한 상태이고, 아무것도 출력되지 않으면 패치된 버전입니다. mysql --version으로 정확한 버전을 확인하고 위의 버전 범위와 비교하세요.
mysql --version 2>/dev/null | grep -oE '5\.0\.[0-4][0-9]|5\.1\.[0-1][0-9]|6\.0\.[0-3]' && echo 'Vulnerable' || echo 'Check version manually'