Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
mcp-stdio-shellguard — MCP stdio 서버용 심층 방어 번들: 드롭인 guardExec/guardSpawn 래퍼, AST 감사 CLI, 레퍼런스 MCP 서버. Ox-Security 200k 서버 stdio-RCE 클래스(LiteLLM CVE-2025-69256)를 차단합니다. MIT, TypeScript, Node >= 20. | Kitploit
도구/GitHubGitHub/studiomeyer-io/mcp-stdio-shellguard
Static AnalysisVulnerability ScannersCode AnalysisScripting & AutomationDevSecOpsUtilities & FrameworksSupply Chain SecurityAPI Security

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
GitHub
studiomeyer-io/mcp-stdio-shellguard

mcp-stdio-shellguard

MCP stdio 서버용 심층 방어 번들: 드롭인 guardExec/guardSpawn 래퍼, AST 감사 CLI, 레퍼런스 MCP 서버. Ox-Security 200k 서버 stdio-RCE 클래스(LiteLLM CVE-2025-69256)를 차단합니다. MIT, TypeScript, Node >= 20.

저장소 보기
3412시간 28분 전아직 검토되지 않음
공유

**StudioMeyer MCP Stack**의 일부 — Mallorca에서 제작 🌴 · 사용하신다면 ⭐을 눌러주세요

mcp-stdio-shellguard

npm version npm downloads License Last commit GitHub stars

MCP stdio 서버를 위한 심층 방어(defense-in-depth) 번들입니다. `child_process.exec/spawn`을

허용 목록(allowlist) + 샌드박스 + 재생 탐지(replay-detection)로 감싸며, 추가로 MCP 서버 소스에서 정제되지 않은 셸 호출을 스캔하는 AST 감사 CLI(mcp-shellguard-audit)를 제공합니다. Ox-Security MCP stdio-RCE 취약점 클래스(2026년 5월 공개, 취약 서버 20만 대)를 해결합니다.

  • MCP spec: 2025-06-18
  • SDK: @modelcontextprotocol/sdk ^1.29.0
  • Node: >= 20
  • License: MIT
  • Author: Matthias Meyer (StudioMeyer)

Install

npm install mcp-stdio-shellguard

설치 없이 감사 CLI를 직접 실행할 수도 있습니다:

npx -y -p mcp-stdio-shellguard mcp-shellguard-audit scan ./src

제공 기능

세 개의 계층으로 구성되며, 선택적으로 부분 적용할 수 있습니다:

  1. 라이브러리 API — 자체 MCP 서버에서 호출하는 드롭인 guardExec / guardSpawn. 기본 거부(default-deny) 허용 목록, 샌드박스 프로필, 재생 윈도우.
  2. 감사 CLI — mcp-shellguard-audit scan <path>는 AST를 순회하며 LOW(no timeout)부터 CRITICAL(exec(\...${userInput}...`)`)까지 12가지 안티패턴을 보고합니다.
  3. 참조 MCP 서버 — mcp-stdio-shellguard-demo는 8개의 도구를 노출하여 MCP Inspector / Claude Desktop이 번들을 직접 구동할 수 있게 합니다.

도구 (참조 서버)

도구유형목적
guard_exec파괴적방어된 child_process.exec. args[] 벡터, 허용 목록 + 샌드박스 + 재생을 강제합니다. stdout, stderr, exitCode, canonicalHash, isReplay, trustTier를 반환합니다.
guard_spawn파괴적방어된 child_process.spawn. 전체 본문 대신 stdout/stderr의 SHA-256 해시를 반환합니다. shell:true를 강력히 거부합니다.
register_allowlist변경도구 이름을 실행 파일 + args 정규식과 함께 등록합니다. 등록하지 않으면 기본 거부가 적용됩니다.
audit_source읽기 전용TS/JS 경로에서 셸 인젝션 안티패턴을 스캔합니다. AuditFinding[] + 요약을 반환합니다.
audit_report읽기 전용감사 결과를 markdown / json / SARIF 2.1.0으로 포맷합니다.
replay_check읽기 전용호출에 대한 정규 SHA-256 해시를 계산하고 재생 윈도우에 이미 존재하는지 보고합니다.
sandbox_status읽기 전용활성 샌드박스 프로필 + 구체적 제한 + cgroup-v2 활성 플래그를 보고합니다.
trust_tier읽기 전용등록된 도구에 대해 LOW/MEDIUM/HIGH/CRITICAL 등급과 개선 힌트를 도출합니다.

샌드박스 프로필

프로필타임아웃최대 stdout최대 stderrFD 예산cgroup-v2
strict5 s1 MB256 KB32예 (cpu/memory)
standard (기본)30 s10 MB1 MB256예
permissive5 min100 MB10 MB1024아니오

호출자는 호출별로 timeoutMs / fdBudget을 통해 제한을 강화할 수 있습니다. 호출자는 프로필을 넘어 확장할 수 없습니다.

신뢰 등급

등급조건
LOW도구 미등록 (기본 거부)
MEDIUM등록되었으나 argsPatterns 비어 있음 (모든 args 허용)
HIGHargsPatterns 설정되었으나 샌드박스 또는 재생 추적기 비활성
CRITICALargsPatterns + 샌드박스 + 재생 모두 활성

도구를 등록하고 + argsPatterns를 설정하고 + guardExec/guardSpawn을 통해 실행하면(항상 샌드박스 + 재생을 활성화함) LOW → CRITICAL로 올릴 수 있습니다.

라이브러리 빠른 시작

import {
  AllowlistRegistry,
  ReplayWindow,
  guardExec,
} from "mcp-stdio-shellguard";

const registry = new AllowlistRegistry();
const replay = new ReplayWindow();

registry.register({
  toolName: "git-log",
  executable: "/usr/bin/git",
  argsPatterns: ["^log$", "^--oneline$", "^-n$", "^\\d+$"],
  sandboxProfile: "strict",
});

const result = await guardExec(
  {
    toolName: "git-log",
    command: "/usr/bin/git",
    args: ["log", "--oneline", "-n", "10"],
  },
  { registry, replay },
);

console.log(result.stdout); // → commit lines
console.log(result.trustTier); // → "CRITICAL"
console.log(result.canonicalHash); // → 64-char SHA-256

Audit CLI

mcp-shellguard-audit scan ./src
mcp-shellguard-audit scan ./src --format sarif --output audit.sarif
mcp-shellguard-audit scan ./src --severity-floor HIGH    # CI gate

종료 코드:

  • 0 정상 (기준 이상의 발견 사항 없음)
  • 1 발견 사항 존재
  • 2 파싱 / IO 오류

scanPath 또는 audit_source MCP 도구에 전달되는 사용자 지정 ignoreGlobs는 최대 128개의 문자열을 허용합니다. 각 문자열은 1024 UTF-16 코드 단위와 16개의 이스케이프되지 않은 여는 그룹화 문자((, {, [)로 제한됩니다. 이 한도를 초과하는 입력은 매칭 전에 제어된 오류를 발생시킵니다.

안티패턴 라이브러리 (12개 규칙)

ID심각도트리거 조건
exec_template_literal_with_inputCRITICALchild_process.exec(\ls ${x}`)`
exec_dynamic_stringCRITICALchild_process.exec(cmd)
exec_sync_dynamic_stringCRITICALchild_process.execSync(cmd)
eval_near_child_processCRITICALeval(...)
function_constructor_near_child_processCRITICALnew Function(...)
spawn_dynamic_file_argsHIGHspawn(bin, userArgs)
exec_file_dynamicHIGHexecFile(bin, ...)
shell_true_optionHIGH{ shell: true }
os_system_equivalentHIGHDeno.run / Bun.spawn
spawn_literal_dynamic_argsMEDIUMspawn('git', userArgs)
unbounded_bufferLOWmaxBuffer 없는 exec
missing_timeoutLOWtimeout 없는 exec/spawn

스캐너는 매칭 전에 이름이 변경된 child_process 바인딩을 해석하므로, 호출이 리터럴 child_process.exec 대신 별칭을 통해 이루어지더라도 아래의 위험한 형태가 탐지됩니다:

  • const execAsync = promisify(exec); execAsync(...${x})
  • import cp from "node:child_process"; cp.exec(...${x})
  • const { exec: sh } = require("child_process"); sh(...${x})
  • import { exec as run } from "node:child_process"; run(...)

동기 변형(spawnSync, execFileSync)은 비동기 규칙을 공유하며, shell_true_option은 리터럴 { shell: true }뿐만 아니라 문자열 셸 ({ shell: "/bin/sh" })이나 동적 셸 값에서도 발생합니다. child_process가 아닌 함수에 대한 promisify, 다른 모듈에서의 구조 분해, 그리고 { shell: false }는 정상으로 유지됩니다 (오탐 없음).

프래그마

  • // shellguard:ignore-next-line — 발견 사항 하나 억제
  • // shellguard:ignore-file — 파일 전체 억제 (드묾; 줄 단위를 권장)

존재 이유

Ox-Security는 (2026-05) 200k개 이상의 MCP stdio 서버가 LLM 도구 인자에서 직접 가져온 사용자 입력을 담은 템플릿 리터럴로 child_process.exec를 감싸고 있다고 공개했습니다. LiteLLM v1.83.6이 대표적인 예였습니다 (CVE는 1.83.7에서 패치됨). 이 번들은 방어적 보안의 대응물입니다: 이 부류를 차단하는 드롭인 가드 + 스캐너. AWS Linux seccomp + Chromium 샌드박스 계층에서 영감을 받았습니다.

함께 보기

  • HOOK_RECIPES.md — 위험한 도구 호출을 자동 차단하는 Claude Code 훅 레시피
  • CHANGELOG.md — 릴리스 이력
  • Ox-Security MCP 감사: https://venturebeat.com/security/200000-mcp-stdio-servers/
  • LiteLLM CVE-2026-XXXX: https://github.com/BerriAI/litellm/security/advisories

라이선스

MIT — Copyright (c) 2026 Matthias Meyer (StudioMeyer)

도구 다운로드