
Proof-of-concept for stored XSS in ThingsBoard IoT platform enabling privilege escalation via authentication token theft. Includes CVE-2024-55466 details, CVSS 8.8, and step-by-step reproduction.
IoT 기술을 만지작거리다가 Thingsboard 애플리케이션에서 권한 상승으로 이어질 수 있는 취약점을 발견했습니다.
Thingsboard는 IoT 서비스 및 배포를 위한 장치 관리, 데이터 수집, 처리 및 시각화를 가능하게 하는 오픈소스 애플리케이션입니다. 또한, 단일 Thingsboard 인스턴스(테넌트 관리자가 관리)는 각각 별도의 회사 관리자가 있는 여러 조직을 위한 서비스를 호스팅할 수 있습니다.
기능을 탐색하던 중 '이미지 갤러리' 보기에서 파일 업로드 기능을 발견했습니다. 불행히도 이 기능은 저장형 크로스 사이트 스크립팅에 취약하여 공격자가 인증 토큰 도용을 통해 권한을 상승시킬 수 있었습니다.
이 취약점은 Community, Cloud, Professional 에디션을 포함한 모든 Thingsboard 릴리스에 영향을 미칩니다. 책임감 있게 이 문제를 Thingsboard 보안 팀에 보고했으며, 그들은 이를 인지하고 향후 릴리스에서 해결하기로 약속했습니다. 이후 MITRE에 취약점을 보고하여 CVE가 할당되었습니다.
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:A/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H취약점을 시연하려면 최소한 하나의 낮은 권한 사용자가 있는 ThingsBoard (Github 저장소) 설치가 필요합니다.
1단계: 낮은 권한의 고객 계정으로 로그인합니다.

2단계: Resources > Image Gallery로 이동합니다.

3단계: 크로스 사이트 스크립팅 취약점을 악용하기 위해 악성 이미지 파일(*여기서는 JavaScript 페이로드가 포함된 SVG 파일 사용)을 제작합니다.

4단계: 파일을 업로드하고 응답을 검사하여 페이로드가 업로드된 대상 파일 경로를 확인합니다.

5단계: publicLink 파일 경로를 방문하여 페이로드를 트리거합니다.

페이로드가 합법적인 Thingsboard 인스턴스에 저장되어 있기 때문에, 공격자는 높은 가치의 대상(예: 테넌트 관리자, 회사 관리자 등)을 쉽게 속여 인증 토큰을 탈취할 수 있습니다.
위에서 언급한 영향의 시연:
1단계: 높은 가치의 계정으로 로그인합니다(여기서는 위에서 사용한 Firefox 브라우저와 격리된 환경을 보여주기 위해 Chrome 브라우저에서 테넌트 관리자 계정 사용).

2단계: 이전에 얻은 publicLink 파일 경로를 방문합니다.
