🇰🇷 한글 설명
Elide의 Aggregation Data Store를 사용할 때 TEXT 타입의 매개변수화된 컬럼에 SQL 주석 기호인 '-'를 포함할 수 있어 발생하는 SQL 인젝션 취약점입니다. 공격자는 정교하게 조작된 쿼리를 통해 서버 측 권한 부여 필터를 우회하고 데이터에 접근할 수 있습니다.
💡 쉬운 설명
데이터를 조회할 때 사용하는 특정 입력창에 특수 문자를 넣어 보안 검사를 무력화하는 공격입니다. 이를 통해 원래는 볼 수 없는 민감한 정보에 접근할 위험이 있습니다.
🇺🇸 원문 (English)
Elide is a Java library that lets you stand up a GraphQL/JSON-API web service with minimal effort. When leveraging the following together: Elide Aggregation Data Store for Analytic Queries, Parameterized Columns (A column that requires a client provided parameter), and a parameterized column of type TEXT. There is the potential for a hacker to provide a carefully crafted query that would bypass server side authorization filters through SQL injection. A recent patch to Elide 6.1.2 allowed the '-' character to be included in parameterized TEXT columns. This character can be interpreted as SQL comments ('--') and allow the attacker to remove the WHERE clause from the generated query and bypass authorization filters. A fix is provided in Elide 6.1.4. The vulnerability only exists for parameterized columns of type TEXT and only for analytic queries (CRUD is not impacted). Workarounds include leveraging a different type of parameterized column (TIME, MONEY, etc) or not leveraging parameterized columns.
📍 영향받는 시스템
Elide 6.1.2 및 그 이전 버전 (TEXT 타입 매개변수화된 컬럼 및 분석용 쿼리 사용 시)
⚔️ 공격 벡터
TEXT 타입의 매개변수화된 컬럼에 SQL 주석 기호('--')를 포함한 조작된 쿼리 전송
🛡️ 대응 방법
Elide 버전을 6.1.4 이상으로 업데이트하거나, TEXT 대신 다른 타입(TIME, MONEY 등)의 컬럼을 사용하십시오.
🔧 검증 코드
명령어 결과에 elide 라이브러리 버전이 6.1.0에서 6.1.2 사이로 나타나면 취약한 상태입니다.
mvn dependency:list | grep 'elide' | grep -E '6.1.[0-2]'