콘텐츠로 이동

Marimo WebSocket Pre-Auth 노출

Marimo WebSocket Pre-Auth 노출 thumbnail
Marimo의 WebSocket 노출 이슈는 2026-04-08에 공개됐다. 2026-04-12 보도는 공개 뒤 공격 시도가 이어졌다고 다뤘다. 기사 기준 영향 범위는 0.20.4 이하로 적혔고, 수정 버전은 0.23.0이다.

요약

Marimo의 WebSocket 노출 이슈는 2026-04-08에 공개됐다. 2026-04-12 보도는 공개 뒤 공격 시도가 이어졌다고 다뤘다. 기사 기준 영향 범위는 0.20.4 이하로 적혔고, 수정 버전은 0.23.0이다.

NVD에서는 Linux kernel CAN driver의 버퍼 오버플로우로 분류한다.

Warning

인터넷에 직접 노출된 Marimo 인스턴스는 먼저 /terminal/ws 접근 제어를 확인한다. 버전만 보고 안전하다고 판단하면 놓치기 쉽다.

타임라인

날짜 내용 메모
2026-04-08 취약점 정보가 공개됐다 공개 시점 기준으로 /terminal/ws 인증 전 노출이 핵심으로 언급됐다.
2026-04-12 관련 보도가 나왔다 공개 뒤 추가 공격 시도를 다뤘다.

취약점 개요

핵심은 인증 없이 열리는 /terminal/ws다. 이 경로가 열리면 인증 전 터미널 세션이 열릴 수 있다. 영향 범위와 수정 버전은 각각 0.20.4 이하, 0.23.0으로 제시됐다.

외부에 노출된 편집형 배치가 있으면 우선 점검 대상이다. 접근 통제가 약하면 같은 경로가 바로 위험 지점이 된다.

대응

  • 외부에 노출된 Marimo 인스턴스를 먼저 찾는다.
  • /terminal/ws 접근을 차단하거나 인증 뒤로 둔다.
  • 인터넷 직접 노출을 끊고, 가능하면 VPN이나 IP allowlist 뒤로 넣는다.
  • 배포 버전은 0.23.0으로 맞춘다.
  • 노출이 있었으면 .env, API key, cloud credential, SSH key를 교체한다.

점검 명령

ps aux | grep -i marimo
docker ps --format '{{.Names}}\t{{.Image}}\t{{.Ports}}' | grep -i marimo
kubectl get deploy,po,svc -A | grep -i marimo
grep -R "marimo" /etc/systemd /etc/nginx /etc/apache2 /etc/caddy 2>/dev/null
ss -lntp | egrep 'python|uvicorn|gunicorn'

탐지 포인트

구분 확인할 내용 메모
네트워크 /terminal/ws로 들어오는 WebSocket 연결 인증 없이 열리는지 확인한다.
네트워크 짧은 간격의 반복 재접속 자동화된 시도인지 본다.
엔드포인트 marimo 프로세스 아래 sh, bash, curl, wget, python 자식 프로세스 인터랙티브 세션이나 명령 실행 흔적을 본다.
엔드포인트 .env, SSH key, 작업 디렉터리, 노트북 파일 접근 자격 증명 노출 여부를 본다.
서버 비정상 outbound 트래픽 계정·키 유출 이후 외부 통신이 있는지 본다.

참고 자료