요약
1) 3D프린팅에서 ‘3MF’는 편하지만, 파일을 여는 순간에도 보안 문제가 생길 수 있습니다.
2) OrcaSlicer v2.3.2는 3MF 가져오기 과정의 ‘경로 이동(path traversal)’ 취약점을 수정했다고 밝혔습니다.
3) 오늘의 결론: 슬라이서 업데이트 + 출처 불명 3MF는 ‘미리보기/가져오기’도 조심.
3MF가 뭐길래, 열기만 해도 문제가 되나요?
3MF는 3D 모델(형상)만 담는 STL과 달리, 색/재질/프린터 설정 같은 ‘패키지 정보’를 함께 담을 수 있는 파일 형식이라서 요즘 슬라이서에서 자주 씁니다. 문제는 ‘패키지’라는 말 그대로, 한 파일 안에 여러 구성요소(여러 파일 조각)가 들어갈 수 있다는 점입니다. 그래서 프로그램이 이걸 풀어(압축을 풀듯이) 폴더에 정리하는 과정이 생기는데, 이 단계가 안전하지 않으면 문제가 됩니다.
이번에 고쳐진 이슈: ‘경로 이동(path traversal)’이란?
OrcaSlicer v2.3.2 릴리스 노트에는 3MF 가져오기에서 path traversal(경로 이동) 취약점을 수정했다고 적혀 있습니다. 릴리스 노트 설명에 따르면, 조작된 .3mf 파일이 가져오기(import) 과정에서 임의의 파일 시스템 위치에 파일을 쓰게 만들 수 있고, 잠재적으로 코드 실행으로 이어질 수 있다고 합니다.
쉽게 비유하면 이렇습니다.
‘택배 상자(3MF)’ 안에 ‘거실에 두세요’ 같은 메모가 들어있는데, 악의적인 메모는 ‘집안 금고 안(시스템 폴더)’까지 들어가서 물건을 끼워 넣도록 유도하는 겁니다. 정상 프로그램이라면 “상자는 현관(프로그램이 정한 폴더)까지만!”이라고 선을 그어야 하죠.
공식 패치에서 확인되는 방어 방식(일반 독자 버전)
해당 수정 PR(패치)에는 “상대 경로가 루트 디렉터리 밖으로 빠져나가지 않는지” 검사하는 로직이 추가되어 있습니다. 예를 들어 경로에 ..가 섞여 있거나(상위 폴더로 이동), 절대 경로처럼 보이면 거부하는 방식입니다. 또한 ‘루트 폴더 + 상대경로’를 합친 뒤, 실제로도 루트 안에 남는지(정규화/캐노니컬 경로 확인) 검증하는 코드가 포함되어 있습니다. 요지는 한 문장입니다: “3MF 안의 파일이 지정된 폴더 밖에 써지지 않게 막는다.”
내가 오늘 바로 할 수 있는 체크리스트
- 슬라이서 업데이트: 릴리스 노트에 보안 수정이 언급되면 ‘기능’보다 먼저 챙기세요. (특히 3MF/프로젝트 파일을 자주 주고받는다면 더요)
- 출처 불명 3MF 조심: 커뮤니티/메신저로 받은 3MF는 “모델 보기/가져오기”도 일종의 파일 열기입니다. 가능하면 신뢰할 수 있는 제작자/공식 배포처에서만 받으세요.
- 작업용 계정/폴더 분리: 가능하다면 중요한 문서가 있는 폴더와 프린팅 작업 폴더를 분리해두면 ‘혹시 모를 사고’의 피해 범위를 줄일 수 있습니다.
- 리눅스/플랫팩 사용자라면 배포 경로도 확인: v2.3.2 릴리스 노트에는 Flathub(Flatpak) 공식 배포가 가능하다고 안내되어 있습니다. 운영체제별로 업데이트 동선이 다르니 본인 환경에 맞게 관리하세요.
한계/주의
- 이 글은 OrcaSlicer의 공식 릴리스 노트와 공개된 패치 내용에 근거해 ‘무슨 종류의 문제였는지’와 ‘사용자가 할 수 있는 예방 행동’을 쉬운 말로 정리한 것입니다.
- 취약점의 실제 악용 난이도/영향 범위(운영체제별 차이 등)는 환경에 따라 달라질 수 있으며, 여기서는 추가 분석(재현 테스트)을 수행하지 않았습니다.
- 따라서 결론은 단순합니다: 업데이트가 나왔을 때 미루지 말고 적용 + 출처 불명 프로젝트 파일은 조심.
출처
- OrcaSlicer v2.3.2 Official Release (릴리스 노트)
- PR #12860 패치: Security fix: path traversal in 3MF import
- OrcaSlicer v2.3.2 RC2 릴리스 노트(참고)
이미지 출처: Wikimedia Commons: File:Large delta-style 3D printer.jpg · License: CC BY-SA 4.0 · https://creativecommons.org/licenses/by-sa/4.0