🇰🇷 한글 설명
Symfony UX의 LiveComponent 하이드레이터가 HMAC 서명 시 정렬된 props 키/값 쌍만 포함하고 컴포넌트 이름, 슬롯 식별자(props/propsFromParent), 요청 컨텍스트를 포함하지 않았습니다. 이로 인해 한 컴포넌트나 슬롯용으로 발급된 서명된 데이터를 다른 컴포넌트에 재사용하여 대상 컴포넌트의 읽기 전용 prop을 변경할 수 있습니다. 2.36.0 및 3.1.0 버전에서 수정되었습니다.
💡 쉬운 설명
웹 페이지의 특정 부분에 쓰이는 보안 서명된 데이터를 다른 부분에 몰래 가져다 쓸 수 있는 문제입니다. 이를 통해 원래 바꿀 수 없어야 할 화면 설정값이 변경될 수 있습니다.
🇺🇸 원문 (English)
Symfony UX is a JavaScript ecosystem for Symfony. From 2.8.0 until 2.36.0 and 3.1.0, the HMAC computed by Symfony\UX\LiveComponent\LiveComponentHydrator covered only sorted prop key/value pairs and did not include the component name, the slot identifier (props vs propsFromParent), or request context, allowing a signed blob minted for one component or slot to be replayed in another and set a read-only prop on a target component. This issue is fixed in versions 2.36.0 and 3.1.0.
📍 영향받는 시스템
Symfony UX LiveComponent 2.8.0 ~ 2.36.0 미만 및 3.0.x 버전 (3.1.0 미만)
⚔️ 공격 벡터
정상 발급된 HMAC 서명 페이로드를 가로채거나 확보한 뒤, 다른 컴포넌트 또는 슬롯에 재전송하여 읽기 전용 prop 값을 조작
🛡️ 대응 방법
symfony/ux-live-component를 2.36.0 이상 또는 3.1.0 이상으로 업그레이드
🔧 검증 코드
출력된 버전이 2.36.0 이상 또는 3.1.0 이상이면 패치 적용된 것이며, 그 미만이면 취약하므로 업그레이드가 필요합니다.
composer show symfony/ux-live-component 2>/dev/null | grep -E '^versions'