Agent Skillspydantic/monty › review-security

review-security

GitHub

针对代码分支进行安全审查,检查沙箱逃逸、内存错误、资源限制绕过及未信任输入处理等风险。覆盖变更及其影响范围,生成包含攻击路径和影响的报告,适用于合并前或涉及关键安全文件的代码评审。

.agents/skills/review-security/SKILL.md pydantic/monty

Trigger Scenarios

需要审查代码分支的安全风险 准备合并涉及 heap.rs 或 path_security.rs 的更改 审查触及 wire protocol 或 pool 的代码

Install

npx skills add pydantic/monty --skill review-security -g -y
More Options

Non-standard path

npx skills add https://github.com/pydantic/monty/tree/main/.agents/skills/review-security -g -y

Use without installing

npx skills use pydantic/monty@review-security

指定 Agent (Claude Code)

npx skills add pydantic/monty --skill review-security -a claude-code -g -y

安装 repo 全部 skill

npx skills add pydantic/monty --all -g -y

预览 repo 内 skill

npx skills add pydantic/monty --list

SKILL.md

Frontmatter
{
    "name": "review-security",
    "description": "Security review of the current branch against its merge base — sandbox escapes, memory errors, panics and resource-limit bypasses. Use when reviewing changes for security risk, or before merging anything touching heap.rs, path_security.rs, the wire protocol or the pool."
}

Security review

Monty runs untrusted, potentially malicious Python. Review this branch on that basis.

git diff origin/main...HEAD

Use a subagent to run .agents/skills/fix-pr-comments/pr-threads.sh (from the fix-pr-comments skill) for security findings already raised on the PR, and confirm each is properly addressed.

Cover the changes and any code they touch — a caller made unsafe by a changed callee is in scope even if it isn't in the diff. Ask:

  • Sandbox escape? Filesystem access outside a mount, path traversal, symlinks resolving out of bounds, network, subprocesses, import-system abuse, callback misuse, leaks through error messages or timing.
  • Memory errors? Worse than panics: nothing stops, state is silently corrupt, and it can become arbitrary execution. unsafe, refcount errors causing use-after-free or double-free, unchecked indexing, aliasing violations, integer overflow feeding a length or index.
  • Resource limits bypassed? Allocations dodging the ResourceTracker (String without StringBuilder), loops with no fuel check, small input → huge allocation.
  • Untrusted input still untrusted? Wire frames from a child are hostile: decoding and proto→Rust conversion must validate everything and never panic. (Snapshots and dumps are trusted by contract — hosts sign and verify them.)
  • Panics or aborts? unwrap/expect reachable from sandboxed input, unbounded recursion hitting a stack-overflow abort.
  • Mount escapes? Any behaviour that allows sandbox code to escape a filesystem mount and read or alter files outside the mount point. This is particularly severe since mounts are run on the host/client connecting to a sandbox - accessing that environment is a very serious breach of the sandbox and security issue.

Weight both classes by where they land. In a pool worker the process dies, the parent replaces the child and raises an exception — contained. Nothing else is: in host/parent code (monty-pool, monty-proto decoding, monty-fs, the bindings), or in a Rust embedder calling the monty crate in-process, the same bug takes down the application. Scrutinise those hardest, especially anything handling a frame from a child.

crates/monty/src/heap.rs and crates/monty-fs/src/path_security.rs are the two most security-critical files; any change to either needs careful justification. Also check the public API: could a pydantic_monty or @pydantic/monty user misuse this to expose their host?

Report

Per finding: the attack, file:line, the sandboxed Python or hostile frame that triggers it, and the impact. Demonstrate with python-playground rather than asserting where you can. Say which areas you checked and found clean — coverage matters as much as findings.

Report only, unless the user asks for fixes.

Version History

  • 026b383 Current 2026-08-20 09:39

Same Skill Collection

.agents/skills/fastmod/SKILL.md
.agents/skills/fix-pr-comments/SKILL.md
.agents/skills/python-playground/SKILL.md
.agents/skills/review-general/SKILL.md
.agents/skills/review-usability/SKILL.md
.agents/skills/review-verbosity/SKILL.md
.agents/skills/writing-style/SKILL.md

Metadata

Files
0
Version
026b383
Hash
a72753ae
Indexed
2026-08-20 09:39

- 위키
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-25 16:27
浙ICP备14020137号-1 $방문자$