python-exploitation SKILL.md skillA
python-exploitation from lu1sdv/skillsmd is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.
mdr add lu1sdv/skillsmd/python-exploitation@git:20260608.bf3685cPins git:20260608.bf3685c in mdr.lock. Pin the fingerprint instead.
- Audit grade
- A, 17 of 17 checks passed
- Kind
- SKILL.md skill
- Repository
- lu1sdv/skillsmd
- Path
python-exploitation/SKILL.md- Versions recorded
- 2
- Latest version
- git:20260608.bf3685c, committed Jun 8, 2026
- First version recorded
- Jun 8, 2026
- Size
- 7,512 bytes
- Repository stars
- 2
- License
- none declared
Use when escaping a Python sandbox or pyjail, bypassing import/builtins/attribute or character/byte blacklists, recovering builtins after __builtins__ is stripped, exploiting pickle/marshal/PyYAML/multiprocessing deserialization, Python-template SSTI (Jinja2/RestrictedPython/str.format), bypassing PEP 578 audit hooks, crafting or abusing CPython bytecode and code objects, exfiltrating with no stdout, or reversing .pyc files. CTF / security-research focused; covers CPython 3.8–3.13.
Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.
What the file says
# Python Exploitation & Sandbox Escape ## Overview Offensive Python: breaking out of `eval`/`exec` jails, restricted unpicklers, template sandboxes, and audit-hook cages. Core principle — **a sandbox only removes *names*, never *reachability*.** Almost every escape is: find any live object → walk its attribute/frame graph back to a callable or `__globals__` that still holds the real `__builtins__` → import `os`. The single most common mistake (yours and other models'): **hardcoding subclass indices like `[104]`.** They drift across version and import order. Always filter by `__name__` / predicate. ## When to Use - An app runs attacker-influenced code through `eval`, `exec`, `compile`, an AST allowlist, `RestrictedPython`, or a custom pyjail - You face an import / builtins / attribute / dunder / character / byte / length blacklist - A deserialization sink: `pickle`, `marshal`, `PyYAML`, `multiprocessing`, `numpy.load`, `fickling` - Template SSTI in Jinja2 / Mako / `str.format` - An audit hook (PEP 578) or bytecode-opcode verifier guards the runtime - Reversing or weaponizing `.pyc` / raw bytecode …
Read the whole file at its exact version.
How to install
mdr add lu1sdv/skillsmd/python-exploitation@sha256:3cad6a060ec9af34The line at the top of this page pins the label git:20260608.bf3685c, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.
[](https://markdownregistry.com/a/art_lymmhqhmvb4omqad)
3 badge image fetches in 30 days. What the badge shows.
Versions
The registry has recorded 2 versions of this file, all committed on Jun 8, 2026.
| version | committed | commit | size | audit | |
|---|---|---|---|---|---|
| git:20260608.bf3685c latest | 2026-06-08 | bf3685c | 7,512 B | A | view · diff |
| git:20260608.3442224 | 2026-06-08 | 3442224 | 6,720 B | A | view |
Audit of the latest version
- pass: Frontmatter block present
- pass: Frontmatter declares a name
- pass: Frontmatter declares a description
- pass: Size between 200 bytes and 200 KB (7512 bytes)
- pass: No zero-width or bidi control characters
- pass: No instruction hidden inside an HTML comment
- pass: No link to an exfiltration or paste host
- pass: No credential-shaped string
- pass: No instruction to send local credentials anywhere
- pass: No text hidden with inline styles
- pass: No prompt-injection phrasing
- pass: No curl or wget piped into a shell
- pass: No recursive delete of root, home or parent
- pass: No instruction to read or print local credentials
- pass: No base64 blob over 200 characters
- pass: No link to a raw IP address
- pass: No script tag
Source
lu1sdv/skillsmd · 2 stars · license none declared · pushed 2026-11-05 · branch main
API
GET https://markdownregistry.com/api/v1/artifacts/art_lymmhqhmvb4omqad GET https://markdownregistry.com/api/v1/resolve?ref=lu1sdv/skillsmd/python-exploitation GET https://markdownregistry.com/api/v1/blob/3cad6a060ec9af34ff2c2679f608ea03c77436e1f3a4246a20877a97a68254e4
Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.
Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.