🇰🇷 한글 설명
Hashgraph Guardian 3.6.0 이하 버전(커밋 ba8c566에서 수정됨)에는 저장형 크로스사이트 스크립팅(XSS) 취약점이 존재합니다. STANDARD_REGISTRY 권한을 가진 인증된 사용자가 branding 설정 API로 조작된 companyName 값을 제출하면, 서비스에서 innerHTML에 무검증으로 할당되어 모든 인증된 사용자의 브라우저에서 임의의 JavaScript가 실행될 수 있습니다.
💡 쉬운 설명
권한이 있는 사용자가 회사 이름 칸에 악성 코드를 숨겨 저장할 수 있습니다. 이후 시스템을 사용하는 모든 직원의 화면에서 그 코드가 자동으로 실행됩니다.
🇺🇸 원문 (English)
Hashgraph Guardian through 3.6.0, fixed in commit ba8c566, contains a stored cross-site scripting vulnerability that allows authenticated users with the STANDARD_REGISTRY role to inject malicious scripts by submitting a crafted companyName value via the branding configuration API endpoint. Attackers can exploit the unsanitized innerHTML assignment in the branding service to execute arbitrary JavaScript in the browser of every authenticated user on every page load.
📍 영향받는 시스템
Hashgraph Guardian 3.6.0 이하 버전 (ba8c566 커밋 이전 빌드)
⚔️ 공격 벡터
STANDARD_REGISTRY 권한 계정으로 branding API에 악성 스크립트가 포함된 companyName 값을 전송하여 저장
🛡️ 대응 방법
Hashgraph Guardian을 ba8c566 커밋 이후 버전(3.6.0 초과)으로 업데이트하고, 임시 조치로 companyName 입력값을 HTML 이스케이프 처리하거나 STANDARD_REGISTRY 권한 부여를 최소화
🔧 검증 코드
출력된 version 값이 3.6.0 이하이면 취약하며, 3.6.0 초과이거나 ba8c566 이후 빌드이면 패치된 것입니다. 명령어 결과가 없으면 설치 경로를 확인하세요.
grep -ri 'version' /opt/guardian/package.json 2>/dev/null | head -n 1