🇰🇷 한글 설명
InvenTree 오픈소스 재고 관리 시스템의 특정 API 엔드포인트에서 필터 매개변수가 Django ORM의 queryset.filter에 검증 없이 직접 전달되는 취약점이 발견되었습니다. 이를 통해 인증된 사용자가 Django의 __ 조회 구문을 사용하여 데이터베이스의 민감한 정보를 추출할 수 있습니다.
💡 쉬운 설명
로그인한 사용자가 시스템의 데이터 검색 기능을 악용하여 허용되지 않은 데이터베이스 정보를 몰래 빼낼 수 있는 보안 결함입니다. 데이터베이스의 구조를 파악하여 중요한 정보를 한 글자씩 알아내는 공격이 가능합니다.
🇺🇸 원문 (English)
InvenTree is an Open Source Inventory Management System. Prior to version 1.2.6, certain API endpoints associated with bulk data operations can be hijacked to exfiltrate sensitive information from the database. The bulk operation API endpoints (e.g. `/api/part/`, `/api/stock/`, `/api/order/so/allocation/`, and others) accept a filters parameter that is passed directly to Django's ORM queryset.filter(**filters) without any field allowlisting. This enables any authenticated user to traverse model relationships using Django's __ lookup syntax and perform blind boolean-based data extraction. This issue is patched in version 1.2.6, and 1.3.0 (or above). Users should update to the patched versions. No known workarounds are available.
📍 영향받는 시스템
InvenTree 1.2.6 미만 버전
⚔️ 공격 벡터
인증된 사용자가 API의 filters 매개변수에 Django ORM의 특수 구문을 삽입하여 데이터베이스를 탐색하는 방식
🛡️ 대응 방법
InvenTree를 1.2.6 또는 1.3.0 이상의 패치된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전 정보가 1.2.6 미만이면 취약한 상태이며, 1.2.6 또는 1.3.0 이상이면 안전합니다.
curl -s http://<target_ip>/api/version/ | grep -E 'version'