🇰🇷 한글 설명
Apache Fineract 1.14.0 이하 버전의 Client Search API에서 Boolean 기반 SQL 인젝션 취약점이 발견되었습니다. orderBy 및 sortOrder 파라미터에 대한 검증 미흡으로 인해 인증된 사용자가 임의의 SQL을 주입하여 데이터를 추출하거나 파일을 노출시킬 수 있습니다.
💡 쉬운 설명
프로그램이 사용자가 입력한 정렬 조건을 제대로 확인하지 않아 발생하는 보안 문제입니다. 이를 통해 해커가 데이터베이스에 몰래 명령을 내려 중요한 정보를 빼내거나 파일을 읽을 수 있습니다.
🇺🇸 원문 (English)
A boolean-based SQL Injection vulnerability exists in Apache Fineract's Client Search API (GET /api/v1/clients) in versions up to and including 1.14.0. The orderBy and sortOrder request parameters are concatenated into a SQL query without sufficient validation, allowing an authenticated user with permission to view clients to inject arbitrary SQL via a crafted orderBy value. This can be leveraged to perform blind boolean-based data extraction and, on MySQL/MariaDB, to disclose arbitrary files readable by the database process via the LOAD_FILE() function. Users are recommended to upgrade to a version containing the fix
📍 영향받는 시스템
Apache Fineract 1.14.0 및 그 이하 모든 버전
⚔️ 공격 벡터
인증된 사용자가 GET /api/v1/clients 요청 시 orderBy 파라미터에 조작된 SQL 구문을 삽입하여 공격
🛡️ 대응 방법
취약점이 해결된 최신 버전의 Apache Fineract로 업그레이드
🔧 검증 코드
명령어 실행 시 응답 지연(Time-based)이 발생하거나 특정 SQL 구문이 동작하면 취약한 것으로 판단합니다.
curl -s http://<target-ip>/api/v1/clients?orderBy=(SELECT%201%20FROM%20(SELECT%20SLEEP(5))%20a)&sortOrder=asc | grep -q 'timeout' || echo 'Vulnerable'