🇰🇷 한글 설명
InvoicePlane 1.7.2 미만 버전에서 관리자가 설정하는 세금 소수점 자리수(tax_rate_decimal_places) 값이 적절한 정수 검증 없이 SQL ALTER TABLE 문에 삽입됩니다. 공격자가 조작된 값을 입력할 경우 데이터베이스 스키마를 변경하여 필수 컬럼을 삭제하거나 수정함으로써 데이터 구조를 손상시키고 서비스를 중단시킬 수 있습니다.
💡 쉬운 설명
관리자 설정 화면에서 숫자를 입력하는 칸에 악의적인 명령어를 넣어 데이터베이스의 구조를 망가뜨릴 수 있는 취약점입니다. 이로 인해 결제 관련 데이터가 사라지거나 프로그램이 아예 작동하지 않을 수 있습니다.
🇺🇸 원문 (English)
InvoicePlane is a self-hosted open source application for managing invoices, clients, and payments. Prior to 1.7.2, InvoicePlane interpolates the administrator-controlled tax_rate_decimal_places setting into an ALTER TABLE statement for ip_tax_rates in Settings::index() without strict integer validation. A crafted setting value can add clauses to the schema-changing statement and remove or alter required database columns. The resulting schema corruption can permanently modify financial data structures and make the application unavailable. This vulnerability is fixed in 1.7.2.
📍 영향받는 시스템
InvoicePlane 1.7.2 미만 모든 버전
⚔️ 공격 벡터
관리자 권한을 이용한 설정값(tax_rate_decimal_places) 조작을 통한 SQL 인젝션
🛡️ 대응 방법
InvoicePlane를 최신 버전인 1.7.2 이상으로 즉시 업데이트하십시오.
🔧 검증 코드
해당 설정값이 검증 없이 SQL 문에 직접 사용되는 코드가 발견되면 취약한 버전입니다.
grep -r "tax_rate_decimal_places" /path/to/invoiceplane/src/Settings.php | grep -v "1.7.2"