designer-mcp(Model Context Protocol 기반 디자인 도구)의 get_reference 도구에서 경로 순회(path traversal) 취약점 CVE-2026-116045가 확인되었습니다. VulDB가 할당한 CVE 레코드가 게시되어 있고, 저장소 관리자가 취약 범위와 수정 내용을 직접 확인했습니다. 이 건에서 가장 실무적으로 중요한 지점은 심각도 점수가 아니라 판별 방법입니다. 공식 릴리스 태그가 존재하지 않기 때문에, 영향 여부를 버전 번호가 아니라 커밋 범위로 판단해야 합니다.
개요

- CVE-2026-116045는 designer-mcp의 get_reference 도구에서 확인된 경로 순회 취약점입니다. 지정된 루트 디렉터리 밖의 파일을 읽을 수 있는 문제로, 성공하면 호스트 파일 시스템의 정보 유출로 이어질 수 있습니다.
- CVE 레코드는 VulDB가 할당했고 상태는 PUBLISHED입니다. (CVE List V5 레코드)
- 관리자는 GitHub Issue #14에서 취약 버전 범위와 수정 커밋을 공식 확인했습니다. (designer-mcp Issue #14)
- 전달된 분석에 따르면 공개된 재현 정보(PoC)는 존재하지만, 야생에서의 실제 악용 사례와 KEV 등재 여부는 확인되지 않았습니다.
영향 범위
- 코드 출처: 문제의 도구는 1999AZZAR/the-designer 1.0.0 시점의 코드를 참조하고 있었습니다. 저장소는 현재 1999AZZAR/designer-mcp로 이동된 상태입니다.
- 버전 범위: 게시된 태그가 없기 때문에 관리자는 취약 범위를 초기 임포트부터
ce8f591커밋까지의 모든 커밋으로 정의했습니다. (designer-mcp Issue #14) 근거가 확인하는 영향 범위는 이 구간의 소스 커밋까지이며, 실제로 배포된 사본에 어떤 커밋이 포함되어 있는지는 배포별로 확인해야 합니다. - 도구 범위: 관리자 확인에 따르면
get_reference를 포함한 두 개 도구가 영향 대상이며, 수정도 두 도구 모두에 함께 적용되었습니다. - 조건부 위험: MCP 서버가 실행되는 호스트의 파일 시스템 접근이 노출됩니다. 공격자가 조작한 입력이 MCP 도구 호출 인자로 전달될 수 있는 구성에서는 위험이 커집니다. 반대로 도구 인자가 신뢰할 수 있는 내부 값으로만 채워지고 외부 입력이 경로로 흘러들지 않는 구성이라면, 실제 노출은 상대적으로 낮다고 해석하는 것이 합리적입니다. 즉 이 취약점의 실질 위험은 코드 버전만큼이나 입력이 도구까지 도달하는 경로에 따라 달라집니다.
기술적 분석
get_reference는 파일 경로 인자를 검증 없이 사용해, 루트 디렉터리 외부의 임의 파일에 접근할 수 있었습니다. 경로 순회 취약점에서 루트 디렉터리는 사실상 신뢰 경계인데, 이 경계가 인자 검증 없이 우회되면 MCP 서버 계정이 읽을 수 있는 모든 파일이 노출 대상이 됩니다.
공개 PoC·익스플로잇 분석
- 출처: 전달된 근거는 이 취약점에 대한 공개 재현 정보(PoC)가 존재한다고 기록합니다. 다만 PoC가 게시된 위치나 재현 절차, 코드 전문은 evidence bundle에 포함되어 있지 않습니다. 따라서 이 절은 PoC의 세부 구현을 설명하는 대신, 관리자가 공식 확인한 취약 범위와 수정 내용을 기준으로 그 존재가 운영에 어떤 의미를 주는지만 다룹니다.
- 전제조건: 재현 정보가 실질적 위협이 되려면 대상 인스턴스가 초기 임포트부터
ce8f591커밋까지의 코드로 실행 중이어야 하고,get_reference를 포함한 영향 대상 도구에 전달되는 경로 인자를 외부에서 조작할 수 있어야 합니다. 코드 버전 조건과 입력 도달 경로 조건이 동시에 충족되어야 한다는 뜻입니다. - 입증 범위: 근거가 뒷받침하는 영향은 지정된 루트 디렉터리 밖의 파일을 읽을 수 있다는 수준, 즉 루트 밖 파일 접근과 정보 유출입니다. 원격 코드 실행이나 쓰기 권한 획득까지 이 근거로 확장할 수는 없습니다. 또한 야생에서의 실제 악용 사례는 확인되지 않았고 CISA KEV 등재 여부도 확인되지 않았습니다.
- 운영상 의미: 재현 정보가 공개되어 있다는 사실과 야생 악용이 확인되지 않았다는 사실은 서로를 반박하지 않습니다. PoC가 있으니 즉시 악용된다는 결론도, 야생 사례 없으니 안전하다는 결론도 모두 근거가 부족합니다. 취약 커밋 범위로 실행 중인 인스턴스가 있는지, 외부 입력이 도구 인자까지 도달하는 경로가 열려 있는지를 먼저 확인하는 것이 공개 PoC의 위험도를 실제로 판단하는 기준입니다. 두 조건이 함께 충족되는 환경에서는 공개 PoC 자체를 악용 가능성의 근거로 보는 것이 적절합니다.
수정 방식: resolveWithinRoot()의 세 가지 검사
- 수정은 커밋
c8c2951(master 브랜치)에서 이루어졌습니다. 두 도구 모두 인자를src/envelope.ts의resolveWithinRoot()로 해석하도록 변경되었습니다. (Issue #14에 안내된 수정 커밋) - 관리자는 이 함수가 세 가지 독립 검사를 적용하며 단일 검사만으로는 충분하지 않다고 명시했습니다.
- 확인 한계: 전달된 증거에는 세 검사의 세부 내용이 포함되어 있지 않습니다. 각 검사가 무엇인지, 어떤 우회 시나리오를 막는지는 이 기사에서 단정할 수 없습니다.
판단의 한계
- CVE 원문 인용이 메타데이터 부분에서 잘려 있어 CVSS 점수, 상세 취약점 설명, 참조 링크 전문을 증거에서 확인할 수 없습니다. 따라서 이 기사에서는 심각도를 수치로 제시하지 않습니다.
- 공개 PoC 존재 여부와 야생 악용·KEV 확인 여부는 전달된 분석 단계에서 구분된 기록이며, PoC의 게시 위치와 야생 악용 보고를 직접 보여주는 원문 증거는 이 bundle에 포함되어 있지 않습니다.
대응 방안
지금 확인할 것
- designer-mcp 관련 MCP 서버 배포 현황을 조사해, 초기 임포트부터
ce8f591커밋 범위에서 실행 중인 인스턴스를 식별하세요. - 공식 태그가 없으므로 버전 문자열만으로는 판별이 어렵습니다. 배포본에 어떤 커밋이 포함되었는지 배포별로 확인하고, 배포가 커밋 단위로 관리되지 않는 환경이라면 영향 여부를 확정하려 하기보다 관련 배포를 전수 점검하는 쪽이 안전합니다.
- 취약 버전 사용이 확인되면, 신뢰할 수 없는 입력이 도구에 전달되지 않도록 서비스를 중단하거나 접근을 제한하세요.
- MCP 도구 호출 로그에서
get_reference등 관련 도구에 전달된 경로 인자에 루트 밖 참조(순회 패턴)가 있었는지 확인하세요. 함께 MCP 서버 프로세스가 루트 디렉터리 밖 파일을 연 이벤트가 감사 로그에 남아 있는지도 점검하세요.
지속 대응
- 수정 커밋
c8c2951이후 버전, 즉 2.2.0 이후(master 브랜치)로 업데이트하세요. 관리자 확인에 따르면 수정은 master에 반영되어 있습니다. - 가능하면 MCP 서버 실행 계정의 파일 시스템 권한을 최소화해, 루트 밖 접근이 성공하더라도 피해를 제한하세요.
- 판단 한계: CVSS 점수와 상세 설명이 증거에 없으므로 심각도 점수로 패치 순서를 정렬할 수 없습니다. 대신 취약 커밋 범위에서 실행 중인지, 외부 입력이 도구 인자로 도달하는 경로가 열려 있는지를 기준으로 대응 순서를 정하는 것이 현재 근거로 합리적입니다.
참고자료
- CVE-2026-116045 designer-mcp get_reference path traversal
- GitHub Issue #14 - maintainer confirmation and affected versions
함께 읽으면 좋은 글
- Atlassian 다중 제품 임의 파일 접근 취약점 CVE-2026-21589: 사전 인증 파일 읽기 해석과 공개 점검 도구 범위
- OctoAlly CVE-2026-112147: 1.0.87 이하로 등록된 정보 노출, 관련 커밋은 HOST 해제와 local-only 유지를 경고
- OpenSRE 승인 게이트 우회 CVE-2026-109444: shell_run 프롬프트 인젝션과 확인 가능한 범위
본 콘텐츠는 AI 기술로 작성된 분석 리포트를 포함하고 있습니다. 내용 중 사실과 다르거나 보완이 필요한 정보를 발견하셨으면 댓글을 통해 의견을 부탁드립니다. 여러분의 피드백은 더 정확한 보안 정보 공유에 큰 도움이 됩니다.
댓글 (0)
댓글을 작성하려면 로그인이 필요합니다.
로그인아직 댓글이 없습니다.
첫 번째 댓글을 작성해보세요!