🇰🇷 한글 설명
Neko는 Docker에서 실행되고 WebRTC를 사용하는 자체 호스팅 가상 브라우저입니다. 3.0.0부터 3.1.5 이전 버전에서 레거시 모드와 session.implicit_hosting이 활성화된 경우 LegacyIsHost() 함수가 호스트 여부를 잘못 판단하여, 컨트롤이 잠기거나 현대적 제어 API에서 권한이 없는 인증된 방 멤버도 레거시 WebRTC 데이터 채널로 마우스 및 키보드 입력을 보낼 수 있습니다. 이 문제는 3.1.5 버전에서 수정되었습니다.
💡 쉬운 설명
Neko라는 원격 브라우저 프로그램에서, 입력 권한이 없어야 할 참여자가 특정 설정에서 마우스와 키보드를 조작할 수 있는 문제입니다. 최신 버전인 3.1.5로 업데이트하면 해결됩니다.
🇺🇸 원문 (English)
Neko is a a self-hosted virtual browser that runs in Docker and uses WebRTC. From version 3.0.0 until 3.1.5, Neko deployments with legacy mode and session.implicit_hosting enabled incorrectly authorize legacy WebRTC data-channel input because LegacyIsHost() evaluates host status incorrectly. An authenticated room member who establishes a WebRTC connection can send mouse and keyboard events through the legacy control channel while controls are locked or the member is otherwise unauthorized by the modern control API. This issue is fixed in version 3.1.5.
📍 영향받는 시스템
Neko 3.0.0 ~ 3.1.4 (레거시 모드 및 session.implicit_hosting 활성화 환경)
⚔️ 공격 벡터
인증된 방 멤버가 WebRTC 연결을 맺은 뒤 레거시 데이터 채널로 잠긴 컨트롤을 우회하여 입력 이벤트를 전송
🛡️ 대응 방법
Neko를 3.1.5 이상으로 업그레이드하거나, 레거시 모드 또는 session.implicit_hosting 설정을 비활성화
🔧 검증 코드
출력된 이미지 태그가 3.1.5 미만(3.0.0~3.1.4)이면 취약하며, 3.1.5 이상이면 패치된 버전입니다. 태그 정보가 없으면 실행 중인 컨테이너의 버전을 직접 확인해야 합니다.
docker inspect $(docker ps -q --filter ancestor=m1k1o/neko) --format '{{.Config.Image}}' 2>/dev/null; docker images --format '{{.Repository}}:{{.Tag}}' | grep -i neko