DEEP DIVE REPORT

CVE-2026-120450: LaraDashboard MCP send-email, 읽기 권한 하나로 열리는 발송 경로

SecurityDesk
• 2026.11.04 • 조회 2

LaraDashboard에서 이메일 템플릿을 '읽기'만 할 수 있는 인증 사용자가 사이트 메일러로 메일을 '보내는' 경로가 열렸습니다. CVE-2026-120450으로 등록된 이 결함은 입력 처리나 메모리 오류가 아니라, 쓰기 작업에 읽기 권한을 재사용한 권한 검사 구조에서 출발합니다. 그래서 대응의 중심도 코드 내부보다, 버전 구간과 권한 정의가 실제로 어떻게 바뀌었는지를 확인하는 일에 놓입니다.

개요

개요 인포그래픽
- LaraDashboard 1.4.0 이상 1.4.9 미만에서 improper authorization(CWE-863) 결함이 확인되었습니다.
- 읽기 전용 권한인 email_template.view만 보유한 인증 사용자도 MCP send-email 도구를 호출해 이메일을 발송할 수 있습니다.
- 어드바이저리 기준, 공격자는 MCP 토큰을 발급(mint)한 뒤 수신자·제목·원시 HTML 본문을 지정해 사이트의 메일러로 피싱·스팸성 메일을 전달할 수 있습니다.
- GitHub 보안 어드바이저리 GHSA-gjfv-h634-pxpv가 발행되었고, 이 문서에는 토큰 스냅샷 동작과 이를 보여주는 PoC가 함께 다루어집니다.
- CVE 레코드에 기재된 공식 심각도는 CVSS 4.0 기준 5.3(MEDIUM), CVSS 3.1 기준 4.3(MEDIUM)입니다.
- 1.4.9에서는 send-email 도구가 email_template.edit 권한을 요구하도록 수정되었습니다.
- 다만 제공된 근거 기준으로는 야생에서의 실제 악용 사례가 확인되지 않았습니다.

영향 범위

  • 취약 버전: LaraDashboard >= 1.4.0, < 1.4.9 (VulnCheck advisory).
  • 도달 가능한 주체: email_template.view 읽기 권한을 가진 인증 사용자, 그리고 해당 권한으로 발급된 MCP 토큰 보유자.
  • MCP send-email 도구와 사이트 메일러를 실제로 운용하는 배포 환경이 영향 대상입니다.

악용 성립에 인증과 토큰 발급이 전제되는 구조이므로, 실제 위험도는 외부에 얼마나 노출되었는가보다 '관리자가 아닌 계정에 읽기 권한이 붙어 있는가'에 따라 갈립니다. 같은 MEDIUM 등급이라도 템플릿 열람 권한이 소수의 관리자 계정에만 있는 환경과, 외부 업체 계정이나 자동화 계정에까지 읽기 권한이 퍼져 있는 환경은 점검의 급이 달라집니다.

피해의 성격도 계정 탈취형 사고와 구분해서 봐야 합니다. 확인된 영향은 사이트 자체의 메일러를 통해 임의 수신자·제목·원시 HTML 본문의 피싱·스팸성 메일을 발송할 수 있다는 점이며, 코드 실행이나 데이터 접근까지를 이 취약점의 결과로 다루지 않습니다. 발송 기능의 악용이지, 시스템 통제권의 상실이 아닙니다.

기술적 분석

읽기 권한으로 통과하는 쓰기 경로

핵심은 MCP 도구 단위의 권한 정의입니다. 어드바이저리에 따르면 SendEmailTool은 McpToolMeta(ability:'mcp:email.send', permission:'email_template.view') 형태로 선언되어, 사실상 email_template.view라는 하나의 읽기 권한에만 게이트가 걸려 있습니다. 이메일 발송이라는 외부향 쓰기 작업이 템플릿 조회라는 읽기 권한으로 통과되는 셈이고, 이 한 지점만으로도 임의 수신자에게 임의 HTML을 보낼 수 있습니다.

발급 시점 스냅샷, 조용히 넓어지는 토큰 권한

권한 검증은 두 겹으로 나뉘어 있습니다. 토큰의 mcp:access 비트는 AuthenticateMcpAgent 단계에서 검사되지만, 개별 도구 ability(mcp:email.send)는 호출 시점에 토큰 발급 시 저장된 권한 스냅샷 기준으로 판정됩니다. 그 결과 발급 이후 권한이 추가로 부여되면 기존 토큰의 접근 범위도 조용히 넓어집니다.

이 구조적 특징은 해석에 영향을 줍니다. 계정의 현재 권한표만 들여다보면 '이 토큰은 읽기 권한뿐'이라고 보더라도, 실제로는 발급 시점 스냅샷 기준으로 다른 조합이 통과하고 있을 수 있습니다. 즉 토큰의 유효 권한은 '현재 계정 권한'과 '발급 시점 스냅샷'이라는 두 시점의 교차 문제로 다뤄야 합니다.

다만 스냅샷 확대 문제가 1.4.9 수정에 함께 포함되었는지는 제공된 근거에 명시되어 있지 않습니다. 근거에 명시된 1.4.9의 변경 사항은 send-email의 요구 권한이 email_template.view에서 email_template.edit로 바뀐 점이며, email_template.view는 기존대로 템플릿 조회·열람에 사용됩니다 (1.4.9 릴리스 머지 커밋).

원시 HTML 본문과 기만성 콘텐츠 전달

이메일 본문은 custom-html blade에서 {!! $content !!} 형태로 원시 출력됩니다. 발송 내용에 준비된 HTML이 그대로 실릴 수 있고, 여기에 임의 수신자·제목 지정이 결합됩니다. 정리하면 이 결함의 영향은 기만성 콘텐츠의 발송, 즉 사이트 메일러를 통한 피싱·스팸 전달에 맞춰지며, 코드 실행이나 콘텐츠 위변조는 제공된 근거에 포함되어 있지 않습니다.

공개 PoC·익스플로잇 분석

  • 출처: 동작 증명은 GitHub 보안 어드바이저리 GHSA-gjfv-h634-pxpv에 문서화되어 있으며, 이 문서는 토큰 스냅샷 메커니즘과 PoC를 함께 다룹니다. CVE 레코드에도 MCP 토큰을 발급해 send-email을 호출하는 같은 시나리오가 적혀 있습니다.
  • 전제조건: PoC가 전제하는 진입점은 인증된 계정과 email_template.view 권한, 그리고 MCP 토큰 발급입니다. 따라서 이 취약점은 무인증 원격 악용이 아니라 인증된 저권한 주체가 필요한 내부 위협 경로에 해당합니다.
  • 입증 범위: 확인된 것은 수신자·제목·원시 HTML 본문을 지정한 send-email 호출이 읽기 권한만으로 통과한다는 동작 자체입니다. 코드 실행, 계정 권한 상승, 데이터 탈취 등 추가 영향은 제공된 근거에 없으므로 이번 사례의 결과로 단정하지 않습니다.
  • 운영 의미: 호출 절차가 명시되어 있다는 것은 반대로 점검 질문이 좁혀진다는 뜻입니다. 확인할 지점은 결국 'email_template.view만으로 send-email이 통과하는 권한 정의가 남아 있는가', 그리고 '그 조합이 실제로 어떤 계정에 붙어 있는가'로 수렴합니다. 공식 심각도는 MEDIUM이지만, 이 등급이 뜻하는 노출 수준은 인증된 저권한 계정이 실제로 남아 있는가에 따라 달라집니다.

악용 전제와 입증 범위

공격 경로는 인증 → MCP 토큰 발급 → send-email 호출로 완결되며, 이를 보여주는 PoC가 어드바이저리에 포함되어 있습니다. 정리하면 'PoC와 기술 상세는 확인됨, 야생 악용은 미확인'이 현재 확인된 상태입니다. 야생 악용이 확인되지 않았다는 사실은 대응을 늦출 근거가 아니라, 인증된 저권한 계정이 남아 있는 동안 이 경로가 언제든 사용될 수 있다는 의미로 읽는 편이 안전합니다.

대응 방안

즉시 확인할 것

  • LaraDashboard 버전을 점검해 >= 1.4.0, < 1.4.9 구간의 배포 환경을 식별합니다.
  • 업그레이드가 즉시 어렵다면, 발송 경로의 게이트가 email_template.view라는 단일 읽기 권한이라는 어드바이저리의 서술에 주목해, 템플릿 열람 권한이 발송 권한으로 그대로 읽히는 권한 정의가 남아 있는지부터 확인합니다. 이는 근거에 명시된 공식 수정 사항(1.4.9 업그레이드)을 대체하는 조치가 아닙니다.
  • 근거가 확인해 주는 것은 취약 버전 구간과 요구 권한의 변화 두 가지입니다. 실제 발송 이력이나 로그로 어디까지 대조할 수 있는지는 각 환경의 관찰 수단 범위에 따라 달라지므로, 이 글에서는 확인된 사실로 다루지 않습니다.

구조적 대응

  • LaraDashboard 1.4.9 이상으로 업그레이드합니다. 수정 버전에서 MCP send-email 도구는 email_template.edit 권한을 요구하며, email_template.view로는 템플릿 조회·열람만 가능해집니다 (1.4.9 릴리스 머지 커밋).
  • 이번 수정은 쓰기 작업에 재사용되던 읽기 권한 게이트를 쓰기 전용 권한으로 옮긴 변경입니다. 도구 단위로 권한을 정의하는 모델에서는 읽기와 쓰기를 같은 권한으로 묶지 않는 구조 자체가 점검 대상이 된다는 점을 보여주는 사례입니다.

확인되지 않은 사항

  • 야생에서의 실제 악용 사례와 CISA KEV 등재 여부는 제공된 근거에서 확인되지 않았습니다.
  • 토큰 권한 스냅샷 확대 문제가 1.4.9 수정 범위에 포함되었는지는 근거에 명시되어 있지 않습니다.
  • 이 제품이 어떤 로그를 어느 범위까지 남기는지는 제공된 근거에 없어, 구체적인 로그 필드나 침해 지표 기반 탐지 방법은 제시하지 않았습니다.
  • LaraDashboard 이외 제품에 대한 일반화는 근거가 없어 다루지 않았습니다.

참고자료

함께 읽으면 좋은 글

본 콘텐츠는 AI 기술로 작성된 분석 리포트를 포함하고 있습니다. 내용 중 사실과 다르거나 보완이 필요한 정보를 발견하셨으면 댓글을 통해 의견을 부탁드립니다. 여러분의 피드백은 더 정확한 보안 정보 공유에 큰 도움이 됩니다.

댓글 (0)

댓글을 작성하려면 로그인이 필요합니다.

로그인

아직 댓글이 없습니다.

첫 번째 댓글을 작성해보세요!

IT 도구 서랍

→ Unix: 2025-01-15T09:30:00
→ 날짜: 1736934600

→ ASCII: ABC
→ 문자: 65 66 67

ASCII 코드표 — 클릭하면 입력란에 추가

DecHex약어설명
DecHex문자
DecHex문자

→ 유니코드: 홍길동
→ 문자: \ud64d\uae38\ub3d9