🇰🇷 한글 설명
InvoicePlane 1.7.2 미만 버전의 Invoices::generate_xml() 메서드에서 데이터베이스 기반의 xml_id를 검증 없이 XMLconfigs 디렉토리에 추가하여 발생하는 취약점입니다. 권한이 낮은 공격자가 경로 탐색(Traversal) 시퀀스를 사용하여 기존 PHP 파일을 포함(LFI)시킬 수 있습니다. 이 취약점은 로컬 파일 포함을 허용하며, 코드 실행을 위해서는 별도의 파일 업로드 또는 쓰기 권한이 필요합니다.
💡 쉬운 설명
송장 관리 프로그램의 설정 오류를 이용해 공격자가 서버 내의 다른 파일을 강제로 읽어올 수 있는 보안 약점입니다. 이를 통해 서버의 중요한 정보를 훔쳐보거나 추가 공격의 발판으로 삼을 수 있습니다.
🇺🇸 원문 (English)
InvoicePlane is a self-hosted open source application for managing invoices, clients, and payments. Prior to 1.7.2, InvoicePlane's Invoices::generate_xml() method appends a database-derived xml_id to the XMLconfigs helper directory and includes the resulting PHP path without validating the identifier. A low-privileged attacker who can influence the e-invoice configuration can use traversal sequences to include an existing PHP file. The standalone advisory establishes local file inclusion; code execution requires a separate file-upload or file-write primitive. This issue is fixed in version 1.7.2.
📍 영향받는 시스템
InvoicePlane 1.7.2 미만 모든 버전
⚔️ 공격 벡터
e-invoice 설정 내 xml_id 값에 경로 탐색 문자열(예: ../)을 삽입하여 임의의 PHP 파일 포함
🛡️ 대응 방법
InvoicePlane을 최신 보안 패치가 적용된 1.7.2 버전 이상으로 업데이트하십시오.
🔧 검증 코드
설치된 InvoicePlane의 버전이 1.7.2 미만인지 확인하여 취약 여부를 판단합니다.
php -r 'echo "InvoicePlane Version Check";' # 실제 버전 확인은 설치된 소스 코드의 composer.json 또는 버전 파일 확인 필요