🇰🇷 한글 설명
MPXJ 라이브러리의 MerlinReader 구성 요소에서 XML 파싱 시 외부 엔티티(XXE) 설정이 활성화되어 발생하는 취약점입니다. 공격자가 조작된 SQLite 데이터베이스를 통해 로컬 파일을 읽으려 시도할 수 있으나, MPXJ의 후속 처리 과정으로 인해 실제 파일 내용이 유출될 가능성은 낮습니다.
💡 쉬운 설명
프로젝트 파일을 읽는 프로그램이 외부의 잘못된 명령을 포함한 파일을 읽을 때 보안 설정이 미흡하여 발생하는 문제입니다. 해커가 특수하게 만든 파일을 통해 컴퓨터 내부의 파일을 몰래 훔쳐보려 할 수 있습니다.
🇺🇸 원문 (English)
MPXJ is an open source library to read and write project plans from a variety of file formats and databases. From 5.5.5 until 16.4.1, MerlinReader creates a DocumentBuilder with default settings while parsing XML from the ZTIMEINTERVALS column of a Merlin project SQLite database, leaving doctype declarations and external entities enabled. A crafted database can cause the parser to read an arbitrary local file, although MPXJ's subsequent handling of the parsed XML makes disclosure of the file contents unlikely. This issue is fixed in version 16.4.1.
📍 영향받는 시스템
MPXJ library versions 5.5.5 to 16.4.0
⚔️ 공격 벡터
조작된 ZTIMEINTERVALS 컬럼을 포함한 Merlin 프로젝트 SQLite 데이터베이스 파일을 통한 XML 외부 엔티티(XXE) 공격
🛡️ 대응 방법
MPXJ 라이브러리를 최신 버전인 16.4.1 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 결과에서 mpxj의 버전이 16.4.1 미만인지 확인하십시오.
mvn dependency:list | grep mpxj