🇰🇷 한글 설명
league/commonmark PHP Markdown 파서의 Embed 확장에서 DomainFilteringAdapter가 도메인 매칭 정규식에 호스트명 경계 검사가 누락되어 허용 목록 우회 취약점이 존재합니다. 버전 2.3.0부터 2.8.2 미만에서 발생하며, 공격자가 youtube.com.evil 같은 도메인으로 youtube.com 허용 목록을 우회할 수 있습니다. 버전 2.8.2에서 패치되었습니다.
💡 쉬운 설명
웹사이트에서 유튜브 같은 특정 사이트만 허용하도록 설정해도, 공격자가 'youtube.com.evil.com' 같은 가짜 주소를 만들어 그 제한을 뚫고 악성 콘텐츠를 삽입할 수 있습니다. 마치 출입 명단에 '홍길동'만 적혀있는데 '홍길동사기꾼'도 통과시켜 버리는 것과 같습니다.
🇺🇸 원문 (English)
league/commonmark is a PHP Markdown parser. From version 2.3.0 to before version 2.8.2, the DomainFilteringAdapter in the Embed extension is vulnerable to an allowlist bypass due to a missing hostname boundary assertion in the domain-matching regex. An attacker-controlled domain like youtube.com.evil passes the allowlist check when youtube.com is an allowed domain. This issue has been patched in version 2.8.2.
📍 영향받는 시스템
league/commonmark 버전 2.3.0 이상 ~ 2.8.2 미만 (PHP Markdown 파서 Embed 확장 사용 시)
⚔️ 공격 벡터
허용된 도메인(예: youtube.com)을 서브도메인처럼 앞에 붙인 악성 도메인(예: youtube.com.evil.com)을 Embed URL로 제출하여 도메인 필터링 우회 후 악성 콘텐츠 임베드
🛡️ 대응 방법
league/commonmark를 2.8.2 이상으로 업그레이드: composer require league/commonmark:^2.8.2
🔧 검증 코드
출력된 버전이 2.8.2 이상이면 패치 적용 완료, 2.3.0~2.8.1 범위이면 취약하므로 즉시 업그레이드 필요
composer show league/commonmark 2>/dev/null | grep -E 'versions|version'