🔍 CVE-2026-80426

7.1
CVSS Score
HIGH
2026-08-26
2026-09-24 20:43
✅ 완료

🇰🇷 한글 설명

FiftyOne의 사이드바 필드 정보 컴포넌트가 데이터셋 필드 설명을 마크업으로 렌더링할 때 적절한 검증 없이 dangerouslySetInnerHTML을 사용하여 XSS 취약점이 발생합니다. 공격자가 조작된 데이터셋을 공유할 경우, 사용자가 이를 열람하는 과정에서 악성 스크립트가 실행되어 로컬 파일 읽기 및 서버 엔드포인트에 대한 권한 탈취가 가능합니다.

💡 쉬운 설명

데이터셋의 설명란에 숨겨진 악성 코드가 포함될 수 있으며, 이를 확인하는 과정에서 해커가 사용자의 컴퓨터 파일을 읽거나 서버를 조작할 수 있습니다. 신뢰할 수 없는 사람이 보낸 데이터셋을 함부로 열지 않도록 주의해야 합니다.

🇺🇸 원문 (English)

FiftyOne renders a dataset field's description as markup. The sidebar field-information component at app/packages/core/src/components/FieldLabelAndInfo/index.tsx passes the description string to React's dangerouslySetInnerHTML, and no layer between storage and render escapes or sanitises it; the neighbouring info values in the same component are rendered as React children and are escaped, so the description is the only raw path. A description is free-form text held in the dataset schema, so it persists in the database and travels with an exported or published dataset. Opening a dataset obtained from another party and hovering the field runs the stored markup in the application's origin. That origin is shared with the FiftyOne server, whose media route returns the contents of a caller-named absolute path and which is unauthenticated in the open-source server, so the injected script can read local files and reach the dataset and operator endpoints as the viewing user.

📍 영향받는 시스템

FiftyOne (데이터셋 설명 필드 마크업 렌더링 기능이 포함된 버전)

⚔️ 공격 벡터

악성 스크립트가 포함된 데이터셋을 공유하여 사용자가 이를 열람하거나 필드 정보에 마우스를 올리도록 유도

🛡️ 대응 방법

데이터셋 설명 렌더링 시 dangerouslySetInnerHTML 사용을 중단하고 React의 기본 텍스트 렌더링 방식을 사용하거나 입력값을 안전하게 살균(Sanitize) 처리하십시오.

🔧 검증 코드

출력된 FiftyOne의 버전을 확인하여 보안 패치가 적용된 최신 버전인지 대조하십시오.

Shell / Script
pip show fiftyone | grep Version

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

IBM WebSphere Application Server