🇰🇷 한글 설명
NocoBase의 워크플로우 스크립트 노드가 Node.js vm 샌드박스 내에서 JavaScript를 실행할 때, console 객체의 _stdout 및 _stderr를 통해 호스트 영역의 객체가 노출되는 취약점입니다. 인증된 공격자는 프로토타입 체인을 통해 샌드박스를 탈출하여 루트 권한으로 원격 코드 실행(RCE)을 수행할 수 있습니다.
💡 쉬운 설명
보안을 위해 격리된 공간에서 코드를 실행해야 하는데, 특정 통로가 열려 있어 이를 통해 서버 전체를 제어할 수 있는 구멍이 발견된 것입니다. 권한이 있는 사용자가 이 구멍을 이용하면 서버의 모든 데이터를 훔치거나 파괴할 수 있습니다.
🇺🇸 원문 (English)
NocoBase is an AI-powered no-code/low-code platform for building business applications and enterprise solutions. Prior to version 2.0.28, NocoBase's Workflow Script Node executes user-supplied JavaScript inside a Node.js vm sandbox with a custom require allowlist (controlled by WORKFLOW_SCRIPT_MODULES env var). However, the console object passed into the sandbox context exposes host-realm WritableWorkerStdio stream objects via console._stdout and console._stderr. An authenticated attacker can traverse the prototype chain to escape the sandbox and achieve Remote Code Execution as root. This issue has been patched in version 2.0.28.
📍 영향받는 시스템
NocoBase version 2.0.28 미만
⚔️ 공격 벡터
인증된 사용자가 워크플로우 스크립트 노드에 샌드박스 탈출용 특수 JavaScript 코드를 삽입하여 실행
🛡️ 대응 방법
NocoBase를 최신 버전인 2.0.28 이상으로 업데이트
🔧 검증 코드
출력된 버전 번호가 2.0.28보다 낮을 경우 취약한 상태이며, 2.0.28 이상이면 패치된 상태입니다.
grep -r "version" package.json | grep -E '@nocobase/app' || npm list @nocobase/app