🇰🇷 한글 설명
Next AI Draw.io의 HTTP sidecar에서 요청 바디 크기 제한이 없어 대용량 페이로드(500MB 이상)를 보내면 Node.js V8 힙 메모리 고갈로 서버가 다운되는 메모리 고갈 공격 취약점이다. /api/state, /api/restore, /api/history-svg 엔드포인트가 영향받는다.
💡 쉬운 설명
Next AI Draw.io 서버에 매우 큰 파일을 업로드하면 서버의 메모리가 가득 차서 서비스가 중단된다. 악의적인 사용자가 서버를 의도적으로 중단시킬 수 있다.
🇺🇸 원문 (English)
Next AI Draw.io is a next.js web application that integrates AI capabilities with draw.io diagrams. Prior to 0.4.15, the embedded HTTP sidecar contains three POST handlers (/api/state, /api/restore, and /api/history-svg) that process incoming requests by accumulating the entire request body into a JavaScript string without any size limitations. Node.js buffers the entire payload in the V8 heap. Sending a sufficiently large body (e.g., 500 MiB or more) will exhaust the process heap memory, leading to an Out-of-Memory (OOM) error that crashes the MCP server. This vulnerability is fixed in 0.4.15.
📍 영향받는 시스템
Next AI Draw.io 0.4.15 미만 모든 버전
⚔️ 공격 벡터
HTTP POST 요청으로 /api/state, /api/restore, /api/history-svg에 500MB 이상의 대용량 페이로드 전송
🛡️ 대응 방법
Next AI Draw.io를 0.4.15 이상으로 업그레이드 또는 요청 바디 크기 제한 미들웨어 적용 (예: express.json({ limit: '10mb' }))
🔧 검증 코드
서버 응답에서 버전 정보 확인 또는 npm 패키지 목록에서 0.4.15 이상 설치 여부 확인
curl -s http://localhost:3000 2>&1 | grep -i 'draw.io\|version' || npm list next-ai-draw.io 2>/dev/null | head -3