DEEP DIVE REPORT

MSAL Node 정보 노출 취약점(CVE-2026-109461): 기밀 클라이언트 authorization 응답 처리 경계와 v7.1.0·PR #8901

SecurityDesk
• 2026.10.25 • 조회 5

MSAL(Microsoft Authentication Library) Node.js용 패키지에서 기밀 클라이언트의 인증 응답 처리와 관련된 정보 노출 취약점(CVE-2026-109461)이 보고되었습니다. CVE List V5(CNA: Microsoft)의 공식 레코드는 이 문제를 'Microsoft Authentication Library (MSAL) for Node.js Information Disclosure Vulnerability'로 등록하고 있습니다. 유지보수 저장소에는 PR #8901 'Sanitize confidential client authorization response payload'과 @azure/msal-node v7.1.0 릴리스가 확인됩니다.

개요

개요 인포그래픽
CVE 레코드가 확인해주는 범위는 식별자와 분류입니다. CVE-2026-109461은 MSAL for Node.js의 정보 노출(Information Disclosure) 취약점으로 등록되어 있습니다.

변경 내용은 PR #8901의 인용에서 확인됩니다. 인용에 따르면 ConfidentialClientApplication.ts에 검증(validation)과 페이로드 sanitization이 추가되고, lib/msal-node/src/error/NodeAuthError.ts에 unsupported-flow 오류가 추가되며, lib/msal-node/test/client/ConfidentialClientApplication.spec.ts에 거부(rejection)와 sanitization 동작을 다루는 테스트가 함께 들어갑니다.

릴리스 쪽에서는 @azure/msal-node v7.1.0 릴리스 페이지가 확인되고, 이 페이지는 10월 13일 22:47을 공개 시각으로, 같은 릴리스 이후 dev 브랜치에 14개 커밋이 누적되었다고 표기합니다.

범위에 대해 좁혀야 할 부분

  • 제공된 CVE 인용과 PR 인용은 이 취약점이 authorization code(auth_code) 흐름에만 한정된다고 밝히지 않습니다. 근거로 확인할 수 있는 범위는 MSAL Node의 기밀 클라이언트 authorization 응답 페이로드 처리에 대한 검증·정화 변경입니다.
  • 제공된 인용은 PR #8901의 변경이 v7.1.0 릴리스에 포함되었는지 여부를 직접 확인하지 못합니다. 릴리스의 존재와 PR의 변경 내용은 별개의 사실로 다뤄야 합니다.
  • 이번 조사 범위에서는 공개 PoC, 야생 악용 사례, CISA KEV 등재 여부를 확인하지 못했습니다. 따라서 이 건은 악용이 확인된 취약점이 아니라 수정 변경이 공개된 취약점으로 다루는 것이 적절합니다.

영향 범위

직접 확인되는 적용 대상

  • Node.js용 Microsoft Authentication Library(@azure/msal-node)를 사용하는 환경
  • ConfidentialClientApplication을 사용하는 서비스. PR이 변경한 파일과 테스트가 모두 기밀 클라이언트 애플리케이션 경로에 위치합니다.

조건부로 넓어질 수 있는 범위

  • Node.js 서비스가 인증 처리를 MSAL에 위임하는 구조에서는, 라이브러리를 직접 또는 간접 의존하는 지점이 많을수록 동일한 authorization 응답 처리 경로를 공유할 가능성이 있습니다. 서드파티 벤더 제품과 내부 공통 모듈까지 인벤토리 범위에 포함해야 하는 이유입니다.
  • authorization 응답을 처리하는 라이브러리의 검증 경계가 약한 문제는, 그 응답을 신뢰하는 기밀 클라이언트 서비스의 인증 경계 신뢰성 문제로 이어질 수 있습니다. 이 해석은 PR이 어떤 파일을 변경했는가에 기반한 조건부 판단입니다.

버전 경계에 대한 한계

  • CVE 레코드가 밝히는 취약 버전의 상한·하한은 확보된 인용에 없습니다.
  • v7.1.0은 제공된 근거에서 확인되는 릴리스이지만, 이 릴리스에 PR #8901의 변경이 포함되었는지는 인용에서 확인되지 않습니다. v7.1.0 이전 버전은 취약이라는 경계를 이 글의 근거로 적용할 수 없습니다.

기술적 분석

PR #8901의 제목은 'Sanitize confidential client authorization response payload'입니다. 제목과 인용된 변경 목록이 가리키는 지점은 응답을 선택하는 로직이 아니라, 외부에서 전달된 authorization 응답 페이로드가 기밀 클라이언트 경로로 들어오는 경계입니다.

  • 검증(validation) 추가: ConfidentialClientApplication.ts에 검증이 추가되었다는 사실은, 그 경로가 응답 데이터를 어떤 조건으로 받아들이는지에 대한 변경이 있었음을 보여줍니다. 어떤 검증을 어떤 조건으로 수행하는지는 인용에 상세가 없습니다.
  • 페이로드 sanitization 추가: PR은 페이로드 sanitization 추가와 그 동작에 대한 테스트를 명시합니다. sanitization이 어떤 값을 다루는지, 어떤 취약점 대응 효과를 내는지는 제공된 인용으로 확인되지 않습니다.
  • unsupported-flow 오류 추가: NodeAuthError.ts에 unsupported-flow 오류가 추가되고, 테스트는 거부(rejection)와 sanitization 동작을 다룹니다. 이 오류가 기존에 어떻게 처리되던 흐름을 대체하는지, 운영 로그에서 어떤 신호가 되는지는 제공된 근거에 없습니다.

어디까지 단정할 수 있는가

확보된 CVE 인용은 레코드의 제목 수준입니다. 노출되는 정보의 종류, 공격자가 응답을 위조·조작할 수 있는 전제 조건, 특정 배치 구성의 필요 여부, CVSS 점수, 영향 조건의 정확한 표현은 모두 현재 근거에서 확인되지 않았습니다. 이 글의 공격 경로 설명은 PR이 어떤 파일에 검증·sanitization·오류·테스트를 추가했는지에 대한 해석이며, 벤더의 상세 보안 공지나 CVE 레코드 원문 확인이 필요한 부분입니다.

악용 상태도 조건부입니다. 공개 PoC와 실제 악용 자료, KEV 등재 여부를 이번 조사 범위에서 확인하지 못했으므로, 패치 우선순위는 악용 증거가 아니라 인증 경계를 다루는 라이브러리 변경이라는 성격과 사내 해당 경로의 중요도를 기준으로 판단하는 것이 안전합니다.

대응 방안

지금 확인할 것

  • 사내 Node.js 프로젝트와 서드파티 서비스에서 @azure/msal-node의 직접·간접 사용 여부와 현재 버전을 인벤토리로 정리하세요. ConfidentialClientApplication을 사용하는 서비스가 우선 확인 대상입니다.
  • CVE 레코드 원문과 벤더 보안 공지에서 수정이 반영된 버전, 심각도, 영향 조건을 확인하세요. 이 확인이 끝나기 전에는 버전 경계를 사내 기준에 확정하지 않는 것이 안전합니다.
  • 릴리스 페이지에서 현재 사용 버전과 릴리스 계열, 이후 dev 변경 흐름을 확인하세요.

판단을 보류해야 할 부분

  • CVE 원문의 버전 경계와 심각도, KEV 등재 여부가 확인되기 전에는 긴급 핫픽스 수준의 지정은 보류하고, 어떤 서비스가 이 라이브러리로 기밀 클라이언트 인증 경로를 처리하는지를 기준으로 순서를 정하는 것이 합리적입니다.
  • 노출되는 정보의 종류와 악용 전제 조건이 확인되기 전에는, 특정 공격 시나리오를 전제로 한 탐지 규칙이나 침임 흔적 목록을 이 글의 근거로 만들 수 없습니다.

구조적으로 유지할 것

  • 의존성 인벤토리에 MSAL Node를 간접 포함하는 서드파티 벤더와 내부 공통 모듈을 포함하세요. 직접 의존만 보는 인벤토리는 노출면을 과소추정할 수 있습니다.
  • CVE 레코드 원문과 벤더 공지 확인을 점검 항목으로 남기세요. 버전 경계와 심각도는 이 확인으로 채워야 할 정보입니다.
  • 수정 버전이 벤더 자료에서 확인되면 사내 변경 관리 절차에 따라 업데이트 순서를 결정하세요.

참고자료

함께 읽으면 좋은 글

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

댓글 (0)

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

로그인

아직 댓글이 없습니다.

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

IT 도구 서랍

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

→ ASCII: ABC
→ 문자: 65 66 67

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

DecHex약어설명
DecHex문자
DecHex문자

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