🇰🇷 한글 설명
InvenTree 1.4.0 미만 버전에서 인증되지 않은 사용자가 플러그인 설정의 메타데이터를 조회할 수 있는 취약점이 존재합니다. 공격자는 이를 통해 플러그인 이름, 설정 키, 설명 및 민감하지 않은 구성 값을 탈취할 수 있습니다. 다만, 비밀번호와 같은 보호된 비밀 값은 마스킹 처리되어 노출되지 않습니다.
💡 쉬운 설명
로그인하지 않은 외부인이 시스템에 설치된 플러그인의 종류와 설정 정보들을 몰래 훔쳐볼 수 있는 문제입니다. 다행히 비밀번호 같은 핵심 정보는 별표(***)로 가려져 있어 직접적인 유출은 제한적입니다.
🇺🇸 원문 (English)
InvenTree is an Open Source Inventory Management System. Prior to 1.4.0, PluginSettingList, PluginAllSettingList, and PluginSettingDetail set GlobalSettingsPermissions without the IsAuthenticated permission used by the project default and equivalent global-settings endpoints. GlobalSettingsPermissions returns true for safe methods, while AuthRequiredMiddleware exempts /api/ paths, so an unauthenticated caller can retrieve plugin names, setting keys, descriptions, types, choices, and non-protected configuration values through /api/plugin/settings/ and the per-plugin settings endpoints. Protected secret values remain masked as three asterisks, limiting the issue to metadata and non-secret configuration disclosure. This issue is fixed in version 1.4.0.
📍 영향받는 시스템
InvenTree versions prior to 1.4.0
⚔️ 공격 벡터
인증 없이 /api/plugin/settings/ 및 개별 플러그인 설정 엔드포인트에 접근하여 데이터 수집
🛡️ 대응 방법
InvenTree를 1.4.0 버전 이상으로 업데이트
🔧 검증 코드
인증 없이 요청했을 때 200 OK가 반환되면 취약한 상태이며, 401 Unauthorized 또는 403 Forbidden이 반환되면 안전합니다.
curl -s -I http://<target-ip>/api/plugin/settings/ | grep -E 'HTTP/1.1 200|HTTP/1.1 401|HTTP/1.1 403'