Marimo WebSocket Pre-Auth 노출

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 트래픽 | 계정·키 유출 이후 외부 통신이 있는지 본다. |