🇰🇷 한글 설명
marimo 0.23.0 이전 버전의 /terminal/ws WebSocket 엔드포인트가 인증 검증을 건너뛰어 비인증 공격자가 PTY 셸에 접근할 수 있습니다. 이를 통해 서버에서 임의의 시스템 명령을 실행할 수 있으며, 다른 WebSocket 엔드포인트와 달리 validate_auth() 호출이 없습니다.
💡 쉬운 설명
marimo 프로그램의 /terminal/ws 부분이 누구나 접근할 수 있어서, 누구나 컴퓨터 명령을 실행할 수 있습니다. 프로그램을 0.23.0 이상으로 업데이트하면 해결됩니다.
🇺🇸 원문 (English)
marimo is a reactive Python notebook. Prior to 0.23.0, Marimo has a Pre-Auth RCE vulnerability. The terminal WebSocket endpoint /terminal/ws lacks authentication validation, allowing an unauthenticated attacker to obtain a full PTY shell and execute arbitrary system commands. Unlike other WebSocket endpoints (e.g., /ws) that correctly call validate_auth() for authentication, the /terminal/ws endpoint only checks the running mode and platform support before accepting connections, completely skipping authentication verification. This vulnerability is fixed in 0.23.0.
📍 영향받는 시스템
marimo < 0.23.0
⚔️ 공격 벡터
비인증 공격자가 /terminal/ws WebSocket 엔드포인트에 직접 연결하여 임의 명령 실행
🛡️ 대응 방법
marimo를 0.23.0 이상으로 업데이트
🔧 검증 코드
Version이 0.23.0 이상이면 안전, 미만이면 취약 상태
pip show marimo 2>/dev/null | grep Version