🔍 CVE-2026-115923

6.5
CVSS Score
MEDIUM
2026-10-26
2026-10-26 18:39
✅ 완료

🇰🇷 한글 설명

Backstage 오픈소스 개발자 포털 프레임워크의 @backstage/plugin-catalog-backend에서 DefaultCatalogRulesEnforcer가 원본 location.target URL을 catalog.rules와 비교하는 반면, URL 리더는 동일 URL을 정규화한 후 가져옵니다. 인증된 사용자가 퍼센트 인코딩된 경로를 이용해 신뢰되지 않은 URL이 신뢰된 위치 패턴과 일치하도록 만들 수 있어, 신뢰 범위 밖의 엔티티 콘텐츠가 신뢰된 것으로 처리될 수 있습니다. 3.9.2 및 4.0.2 버전에서 수정되었습니다.

💡 쉬운 설명

Backstage라는 개발자 포털에서 URL 검사 방식의 허점을 이용해 허용되지 않은 외부 주소의 데이터를 신뢰할 수 있는 데이터처럼 등록할 수 있습니다. 관리자가 설정한 보안 규칙을 우회하는 문제입니다.

🇺🇸 원문 (English)

Backstage is an open framework for building developer portals. Prior to 3.9.2 and from 4.0.0 until 4.0.2, DefaultCatalogRulesEnforcer in @backstage/plugin-catalog-backend compares the raw location.target URL against catalog.rules, while URL readers canonicalize the same URL before fetching it. An authenticated user with catalog.location.create permission can use percent-encoded path segments to make an untrusted URL match a trusted location pattern even though the canonical URL resolves outside that scope. This admits entity content from an untrusted source as trusted, while further downstream consequences depend on deployment configuration. This issue is fixed in versions 3.9.2 and 4.0.2.

📍 영향받는 시스템

Backstage @backstage/plugin-catalog-backend 3.9.2 미만 및 4.0.0~4.0.2 미만 버전

⚔️ 공격 벡터

catalog.location.create 권한을 가진 인증 사용자가 퍼센트 인코딩 경로를 포함한 URL을 등록해 카탈로그 규칙을 우회

🛡️ 대응 방법

@backstage/plugin-catalog-backend를 3.9.2 또는 4.0.2 이상으로 업데이트

🔧 검증 코드

출력된 버전이 3.9.2 이상(3.x 계열) 또는 4.0.2 이상(4.x 계열)이면 패치된 것이며, 그보다 낮거나 출력이 없으면 취약하거나 설치되지 않은 상태입니다.

Shell / Script
npm ls @backstage/plugin-catalog-backend 2>/dev/null | grep plugin-catalog-backend

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N

💻 영향받는 소프트웨어

Magento Open Source