[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-semgrep-llm-security":3,"mdc-e8etpo-key":39,"related-repo-semgrep-llm-security":730,"related-org-semgrep-llm-security":766},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":25,"repoUrl":26,"updatedAt":27,"license":28,"forks":29,"topics":30,"repo":34,"sourceUrl":37,"mdContent":38},"llm-security","apply LLM security guidelines","Security guidelines for LLM applications based on OWASP Top 10 for LLM 2025. Use when building LLM apps, reviewing AI security, implementing RAG systems, or asking about LLM vulnerabilities like 'prompt injection' or 'check LLM security'. IMPORTANT: Always consult this skill when building chatbots, AI agents, RAG pipelines, tool-using LLMs, agentic systems, or any application that calls an LLM API (OpenAI, Anthropic, Gemini, etc.) — even if the user doesn't explicitly mention security. Also use when users import 'openai', 'anthropic', 'langchain', 'llamaindex', or similar LLM libraries.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"semgrep","Semgrep","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fsemgrep.png",[12,16,19,22],{"name":13,"slug":14,"type":15},"Security","security","tag",{"name":17,"slug":18,"type":15},"Compliance","compliance",{"name":20,"slug":21,"type":15},"LLM","llm",{"name":23,"slug":24,"type":15},"Risk Assessment","risk-assessment",257,"https:\u002F\u002Fgithub.com\u002Fsemgrep\u002Fskills","2026-04-06T18:52:50.687939",null,28,[31,32,14,33],"agents","claude-code","skills",{"repoUrl":26,"stars":25,"forks":29,"topics":35,"description":36},[31,32,14,33],"A collection of skills for AI coding agents from Semgrep","https:\u002F\u002Fgithub.com\u002Fsemgrep\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Fllm-security","---\nname: llm-security\ndescription: \"Security guidelines for LLM applications based on OWASP Top 10 for LLM 2025. Use when building LLM apps, reviewing AI security, implementing RAG systems, or asking about LLM vulnerabilities like 'prompt injection' or 'check LLM security'. IMPORTANT: Always consult this skill when building chatbots, AI agents, RAG pipelines, tool-using LLMs, agentic systems, or any application that calls an LLM API (OpenAI, Anthropic, Gemini, etc.) — even if the user doesn't explicitly mention security. Also use when users import 'openai', 'anthropic', 'langchain', 'llamaindex', or similar LLM libraries.\"\n---\n\n# LLM Security Guidelines (OWASP Top 10 for LLM 2025)\n\nSecurity rules for building secure LLM applications, based on the OWASP Top 10 for LLM Applications 2025.\n\n## How to Use This Skill\n\n**Proactive mode** — When building or reviewing LLM applications, automatically check for relevant security risks based on the application pattern. You don't need to wait for the user to ask about LLM security.\n\n**Reactive mode** — When the user asks about LLM security, use the mapping below to find relevant rule files with detailed vulnerable\u002Fsecure code examples.\n\n### Workflow\n1. Identify what the user is building (see \"What Are You Building?\" below)\n2. Check the priority rules for that pattern\n3. Read the specific rule files from `rules\u002F` for code examples\n4. Apply the secure patterns or flag vulnerable ones\n\n## What Are You Building?\n\nUse this to quickly identify which rules matter most for the user's task:\n\n| Building... | Priority Rules |\n|-------------|---------------|\n| **Chatbot \u002F conversational AI** | Prompt Injection (LLM01), System Prompt Leakage (LLM07), Output Handling (LLM05), Unbounded Consumption (LLM10) |\n| **RAG system** | Vector\u002FEmbedding Weaknesses (LLM08), Prompt Injection (LLM01), Sensitive Disclosure (LLM02), Misinformation (LLM09) |\n| **AI agent with tools** | Excessive Agency (LLM06), Prompt Injection (LLM01), Output Handling (LLM05), Sensitive Disclosure (LLM02) |\n| **Fine-tuning \u002F training** | Data Poisoning (LLM04), Supply Chain (LLM03), Sensitive Disclosure (LLM02) |\n| **LLM-powered API** | Unbounded Consumption (LLM10), Prompt Injection (LLM01), Output Handling (LLM05), Sensitive Disclosure (LLM02) |\n| **Content generation** | Misinformation (LLM09), Output Handling (LLM05), Prompt Injection (LLM01) |\n\n## Categories\n\n### Critical Impact\n- **LLM01: Prompt Injection** (`rules\u002Fprompt-injection.md`) - Prevent direct and indirect prompt manipulation\n- **LLM02: Sensitive Information Disclosure** (`rules\u002Fsensitive-disclosure.md`) - Protect PII, credentials, and proprietary data\n- **LLM03: Supply Chain** (`rules\u002Fsupply-chain.md`) - Secure model sources, training data, and dependencies\n- **LLM04: Data and Model Poisoning** (`rules\u002Fdata-poisoning.md`) - Prevent training data manipulation and backdoors\n- **LLM05: Improper Output Handling** (`rules\u002Foutput-handling.md`) - Sanitize LLM outputs before downstream use\n\n### High Impact\n- **LLM06: Excessive Agency** (`rules\u002Fexcessive-agency.md`) - Limit LLM permissions, functionality, and autonomy\n- **LLM07: System Prompt Leakage** (`rules\u002Fsystem-prompt-leakage.md`) - Protect system prompts from disclosure\n- **LLM08: Vector and Embedding Weaknesses** (`rules\u002Fvector-embedding.md`) - Secure RAG systems and embeddings\n- **LLM09: Misinformation** (`rules\u002Fmisinformation.md`) - Mitigate hallucinations and false outputs\n- **LLM10: Unbounded Consumption** (`rules\u002Funbounded-consumption.md`) - Prevent DoS, cost attacks, and model theft\n\nSee `rules\u002F_sections.md` for the full index with OWASP\u002FMITRE references.\n\n## Quick Reference\n\n| Vulnerability | Key Prevention |\n|--------------|----------------|\n| Prompt Injection | Input validation, output filtering, privilege separation |\n| Sensitive Disclosure | Data sanitization, access controls, encryption |\n| Supply Chain | Verify models, SBOM, trusted sources only |\n| Data Poisoning | Data validation, anomaly detection, sandboxing |\n| Output Handling | Treat LLM as untrusted, encode outputs, parameterize queries |\n| Excessive Agency | Least privilege, human-in-the-loop, minimize extensions |\n| System Prompt Leakage | No secrets in prompts, external guardrails |\n| Vector\u002FEmbedding | Access controls, data validation, monitoring |\n| Misinformation | RAG, fine-tuning, human oversight, cross-verification |\n| Unbounded Consumption | Rate limiting, input validation, resource monitoring |\n\n## Key Principles\n\n1. **Never trust LLM output** - Validate and sanitize all outputs before use\n2. **Least privilege** - Grant minimum necessary permissions to LLM systems\n3. **Defense in depth** - Layer multiple security controls\n4. **Human oversight** - Require approval for high-impact actions\n5. **Monitor and log** - Track all LLM interactions for anomaly detection\n\n## References\n\n- [OWASP Top 10 for LLM Applications 2025](https:\u002F\u002Fgenai.owasp.org\u002Fllm-top-10\u002F)\n- [MITRE ATLAS - Adversarial Threat Landscape for AI Systems](https:\u002F\u002Fatlas.mitre.org\u002F)\n- [NIST AI Risk Management Framework](https:\u002F\u002Fwww.nist.gov\u002Fitl\u002Fai-risk-management-framework)\n",{"data":40,"body":41},{"name":4,"description":6},{"type":42,"children":43},"root",[44,53,59,66,77,87,94,128,134,139,263,269,275,365,371,459,472,478,630,636,689,695],{"type":45,"tag":46,"props":47,"children":49},"element","h1",{"id":48},"llm-security-guidelines-owasp-top-10-for-llm-2025",[50],{"type":51,"value":52},"text","LLM Security Guidelines (OWASP Top 10 for LLM 2025)",{"type":45,"tag":54,"props":55,"children":56},"p",{},[57],{"type":51,"value":58},"Security rules for building secure LLM applications, based on the OWASP Top 10 for LLM Applications 2025.",{"type":45,"tag":60,"props":61,"children":63},"h2",{"id":62},"how-to-use-this-skill",[64],{"type":51,"value":65},"How to Use This Skill",{"type":45,"tag":54,"props":67,"children":68},{},[69,75],{"type":45,"tag":70,"props":71,"children":72},"strong",{},[73],{"type":51,"value":74},"Proactive mode",{"type":51,"value":76}," — When building or reviewing LLM applications, automatically check for relevant security risks based on the application pattern. You don't need to wait for the user to ask about LLM security.",{"type":45,"tag":54,"props":78,"children":79},{},[80,85],{"type":45,"tag":70,"props":81,"children":82},{},[83],{"type":51,"value":84},"Reactive mode",{"type":51,"value":86}," — When the user asks about LLM security, use the mapping below to find relevant rule files with detailed vulnerable\u002Fsecure code examples.",{"type":45,"tag":88,"props":89,"children":91},"h3",{"id":90},"workflow",[92],{"type":51,"value":93},"Workflow",{"type":45,"tag":95,"props":96,"children":97},"ol",{},[98,104,109,123],{"type":45,"tag":99,"props":100,"children":101},"li",{},[102],{"type":51,"value":103},"Identify what the user is building (see \"What Are You Building?\" below)",{"type":45,"tag":99,"props":105,"children":106},{},[107],{"type":51,"value":108},"Check the priority rules for that pattern",{"type":45,"tag":99,"props":110,"children":111},{},[112,114,121],{"type":51,"value":113},"Read the specific rule files from ",{"type":45,"tag":115,"props":116,"children":118},"code",{"className":117},[],[119],{"type":51,"value":120},"rules\u002F",{"type":51,"value":122}," for code examples",{"type":45,"tag":99,"props":124,"children":125},{},[126],{"type":51,"value":127},"Apply the secure patterns or flag vulnerable ones",{"type":45,"tag":60,"props":129,"children":131},{"id":130},"what-are-you-building",[132],{"type":51,"value":133},"What Are You Building?",{"type":45,"tag":54,"props":135,"children":136},{},[137],{"type":51,"value":138},"Use this to quickly identify which rules matter most for the user's task:",{"type":45,"tag":140,"props":141,"children":142},"table",{},[143,162],{"type":45,"tag":144,"props":145,"children":146},"thead",{},[147],{"type":45,"tag":148,"props":149,"children":150},"tr",{},[151,157],{"type":45,"tag":152,"props":153,"children":154},"th",{},[155],{"type":51,"value":156},"Building...",{"type":45,"tag":152,"props":158,"children":159},{},[160],{"type":51,"value":161},"Priority Rules",{"type":45,"tag":163,"props":164,"children":165},"tbody",{},[166,183,199,215,231,247],{"type":45,"tag":148,"props":167,"children":168},{},[169,178],{"type":45,"tag":170,"props":171,"children":172},"td",{},[173],{"type":45,"tag":70,"props":174,"children":175},{},[176],{"type":51,"value":177},"Chatbot \u002F conversational AI",{"type":45,"tag":170,"props":179,"children":180},{},[181],{"type":51,"value":182},"Prompt Injection (LLM01), System Prompt Leakage (LLM07), Output Handling (LLM05), Unbounded Consumption (LLM10)",{"type":45,"tag":148,"props":184,"children":185},{},[186,194],{"type":45,"tag":170,"props":187,"children":188},{},[189],{"type":45,"tag":70,"props":190,"children":191},{},[192],{"type":51,"value":193},"RAG system",{"type":45,"tag":170,"props":195,"children":196},{},[197],{"type":51,"value":198},"Vector\u002FEmbedding Weaknesses (LLM08), Prompt Injection (LLM01), Sensitive Disclosure (LLM02), Misinformation (LLM09)",{"type":45,"tag":148,"props":200,"children":201},{},[202,210],{"type":45,"tag":170,"props":203,"children":204},{},[205],{"type":45,"tag":70,"props":206,"children":207},{},[208],{"type":51,"value":209},"AI agent with tools",{"type":45,"tag":170,"props":211,"children":212},{},[213],{"type":51,"value":214},"Excessive Agency (LLM06), Prompt Injection (LLM01), Output Handling (LLM05), Sensitive Disclosure (LLM02)",{"type":45,"tag":148,"props":216,"children":217},{},[218,226],{"type":45,"tag":170,"props":219,"children":220},{},[221],{"type":45,"tag":70,"props":222,"children":223},{},[224],{"type":51,"value":225},"Fine-tuning \u002F training",{"type":45,"tag":170,"props":227,"children":228},{},[229],{"type":51,"value":230},"Data Poisoning (LLM04), Supply Chain (LLM03), Sensitive Disclosure (LLM02)",{"type":45,"tag":148,"props":232,"children":233},{},[234,242],{"type":45,"tag":170,"props":235,"children":236},{},[237],{"type":45,"tag":70,"props":238,"children":239},{},[240],{"type":51,"value":241},"LLM-powered API",{"type":45,"tag":170,"props":243,"children":244},{},[245],{"type":51,"value":246},"Unbounded Consumption (LLM10), Prompt Injection (LLM01), Output Handling (LLM05), Sensitive Disclosure (LLM02)",{"type":45,"tag":148,"props":248,"children":249},{},[250,258],{"type":45,"tag":170,"props":251,"children":252},{},[253],{"type":45,"tag":70,"props":254,"children":255},{},[256],{"type":51,"value":257},"Content generation",{"type":45,"tag":170,"props":259,"children":260},{},[261],{"type":51,"value":262},"Misinformation (LLM09), Output Handling (LLM05), Prompt Injection (LLM01)",{"type":45,"tag":60,"props":264,"children":266},{"id":265},"categories",[267],{"type":51,"value":268},"Categories",{"type":45,"tag":88,"props":270,"children":272},{"id":271},"critical-impact",[273],{"type":51,"value":274},"Critical Impact",{"type":45,"tag":276,"props":277,"children":278},"ul",{},[279,297,314,331,348],{"type":45,"tag":99,"props":280,"children":281},{},[282,287,289,295],{"type":45,"tag":70,"props":283,"children":284},{},[285],{"type":51,"value":286},"LLM01: Prompt Injection",{"type":51,"value":288}," (",{"type":45,"tag":115,"props":290,"children":292},{"className":291},[],[293],{"type":51,"value":294},"rules\u002Fprompt-injection.md",{"type":51,"value":296},") - Prevent direct and indirect prompt manipulation",{"type":45,"tag":99,"props":298,"children":299},{},[300,305,306,312],{"type":45,"tag":70,"props":301,"children":302},{},[303],{"type":51,"value":304},"LLM02: Sensitive Information Disclosure",{"type":51,"value":288},{"type":45,"tag":115,"props":307,"children":309},{"className":308},[],[310],{"type":51,"value":311},"rules\u002Fsensitive-disclosure.md",{"type":51,"value":313},") - Protect PII, credentials, and proprietary data",{"type":45,"tag":99,"props":315,"children":316},{},[317,322,323,329],{"type":45,"tag":70,"props":318,"children":319},{},[320],{"type":51,"value":321},"LLM03: Supply Chain",{"type":51,"value":288},{"type":45,"tag":115,"props":324,"children":326},{"className":325},[],[327],{"type":51,"value":328},"rules\u002Fsupply-chain.md",{"type":51,"value":330},") - Secure model sources, training data, and dependencies",{"type":45,"tag":99,"props":332,"children":333},{},[334,339,340,346],{"type":45,"tag":70,"props":335,"children":336},{},[337],{"type":51,"value":338},"LLM04: Data and Model Poisoning",{"type":51,"value":288},{"type":45,"tag":115,"props":341,"children":343},{"className":342},[],[344],{"type":51,"value":345},"rules\u002Fdata-poisoning.md",{"type":51,"value":347},") - Prevent training data manipulation and backdoors",{"type":45,"tag":99,"props":349,"children":350},{},[351,356,357,363],{"type":45,"tag":70,"props":352,"children":353},{},[354],{"type":51,"value":355},"LLM05: Improper Output Handling",{"type":51,"value":288},{"type":45,"tag":115,"props":358,"children":360},{"className":359},[],[361],{"type":51,"value":362},"rules\u002Foutput-handling.md",{"type":51,"value":364},") - Sanitize LLM outputs before downstream use",{"type":45,"tag":88,"props":366,"children":368},{"id":367},"high-impact",[369],{"type":51,"value":370},"High Impact",{"type":45,"tag":276,"props":372,"children":373},{},[374,391,408,425,442],{"type":45,"tag":99,"props":375,"children":376},{},[377,382,383,389],{"type":45,"tag":70,"props":378,"children":379},{},[380],{"type":51,"value":381},"LLM06: Excessive Agency",{"type":51,"value":288},{"type":45,"tag":115,"props":384,"children":386},{"className":385},[],[387],{"type":51,"value":388},"rules\u002Fexcessive-agency.md",{"type":51,"value":390},") - Limit LLM permissions, functionality, and autonomy",{"type":45,"tag":99,"props":392,"children":393},{},[394,399,400,406],{"type":45,"tag":70,"props":395,"children":396},{},[397],{"type":51,"value":398},"LLM07: System Prompt Leakage",{"type":51,"value":288},{"type":45,"tag":115,"props":401,"children":403},{"className":402},[],[404],{"type":51,"value":405},"rules\u002Fsystem-prompt-leakage.md",{"type":51,"value":407},") - Protect system prompts from disclosure",{"type":45,"tag":99,"props":409,"children":410},{},[411,416,417,423],{"type":45,"tag":70,"props":412,"children":413},{},[414],{"type":51,"value":415},"LLM08: Vector and Embedding Weaknesses",{"type":51,"value":288},{"type":45,"tag":115,"props":418,"children":420},{"className":419},[],[421],{"type":51,"value":422},"rules\u002Fvector-embedding.md",{"type":51,"value":424},") - Secure RAG systems and embeddings",{"type":45,"tag":99,"props":426,"children":427},{},[428,433,434,440],{"type":45,"tag":70,"props":429,"children":430},{},[431],{"type":51,"value":432},"LLM09: Misinformation",{"type":51,"value":288},{"type":45,"tag":115,"props":435,"children":437},{"className":436},[],[438],{"type":51,"value":439},"rules\u002Fmisinformation.md",{"type":51,"value":441},") - Mitigate hallucinations and false outputs",{"type":45,"tag":99,"props":443,"children":444},{},[445,450,451,457],{"type":45,"tag":70,"props":446,"children":447},{},[448],{"type":51,"value":449},"LLM10: Unbounded Consumption",{"type":51,"value":288},{"type":45,"tag":115,"props":452,"children":454},{"className":453},[],[455],{"type":51,"value":456},"rules\u002Funbounded-consumption.md",{"type":51,"value":458},") - Prevent DoS, cost attacks, and model theft",{"type":45,"tag":54,"props":460,"children":461},{},[462,464,470],{"type":51,"value":463},"See ",{"type":45,"tag":115,"props":465,"children":467},{"className":466},[],[468],{"type":51,"value":469},"rules\u002F_sections.md",{"type":51,"value":471}," for the full index with OWASP\u002FMITRE references.",{"type":45,"tag":60,"props":473,"children":475},{"id":474},"quick-reference",[476],{"type":51,"value":477},"Quick Reference",{"type":45,"tag":140,"props":479,"children":480},{},[481,497],{"type":45,"tag":144,"props":482,"children":483},{},[484],{"type":45,"tag":148,"props":485,"children":486},{},[487,492],{"type":45,"tag":152,"props":488,"children":489},{},[490],{"type":51,"value":491},"Vulnerability",{"type":45,"tag":152,"props":493,"children":494},{},[495],{"type":51,"value":496},"Key Prevention",{"type":45,"tag":163,"props":498,"children":499},{},[500,513,526,539,552,565,578,591,604,617],{"type":45,"tag":148,"props":501,"children":502},{},[503,508],{"type":45,"tag":170,"props":504,"children":505},{},[506],{"type":51,"value":507},"Prompt Injection",{"type":45,"tag":170,"props":509,"children":510},{},[511],{"type":51,"value":512},"Input validation, output filtering, privilege separation",{"type":45,"tag":148,"props":514,"children":515},{},[516,521],{"type":45,"tag":170,"props":517,"children":518},{},[519],{"type":51,"value":520},"Sensitive Disclosure",{"type":45,"tag":170,"props":522,"children":523},{},[524],{"type":51,"value":525},"Data sanitization, access controls, encryption",{"type":45,"tag":148,"props":527,"children":528},{},[529,534],{"type":45,"tag":170,"props":530,"children":531},{},[532],{"type":51,"value":533},"Supply Chain",{"type":45,"tag":170,"props":535,"children":536},{},[537],{"type":51,"value":538},"Verify models, SBOM, trusted sources only",{"type":45,"tag":148,"props":540,"children":541},{},[542,547],{"type":45,"tag":170,"props":543,"children":544},{},[545],{"type":51,"value":546},"Data Poisoning",{"type":45,"tag":170,"props":548,"children":549},{},[550],{"type":51,"value":551},"Data validation, anomaly detection, sandboxing",{"type":45,"tag":148,"props":553,"children":554},{},[555,560],{"type":45,"tag":170,"props":556,"children":557},{},[558],{"type":51,"value":559},"Output Handling",{"type":45,"tag":170,"props":561,"children":562},{},[563],{"type":51,"value":564},"Treat LLM as untrusted, encode outputs, parameterize queries",{"type":45,"tag":148,"props":566,"children":567},{},[568,573],{"type":45,"tag":170,"props":569,"children":570},{},[571],{"type":51,"value":572},"Excessive Agency",{"type":45,"tag":170,"props":574,"children":575},{},[576],{"type":51,"value":577},"Least privilege, human-in-the-loop, minimize extensions",{"type":45,"tag":148,"props":579,"children":580},{},[581,586],{"type":45,"tag":170,"props":582,"children":583},{},[584],{"type":51,"value":585},"System Prompt Leakage",{"type":45,"tag":170,"props":587,"children":588},{},[589],{"type":51,"value":590},"No secrets in prompts, external guardrails",{"type":45,"tag":148,"props":592,"children":593},{},[594,599],{"type":45,"tag":170,"props":595,"children":596},{},[597],{"type":51,"value":598},"Vector\u002FEmbedding",{"type":45,"tag":170,"props":600,"children":601},{},[602],{"type":51,"value":603},"Access controls, data validation, monitoring",{"type":45,"tag":148,"props":605,"children":606},{},[607,612],{"type":45,"tag":170,"props":608,"children":609},{},[610],{"type":51,"value":611},"Misinformation",{"type":45,"tag":170,"props":613,"children":614},{},[615],{"type":51,"value":616},"RAG, fine-tuning, human oversight, cross-verification",{"type":45,"tag":148,"props":618,"children":619},{},[620,625],{"type":45,"tag":170,"props":621,"children":622},{},[623],{"type":51,"value":624},"Unbounded Consumption",{"type":45,"tag":170,"props":626,"children":627},{},[628],{"type":51,"value":629},"Rate limiting, input validation, resource monitoring",{"type":45,"tag":60,"props":631,"children":633},{"id":632},"key-principles",[634],{"type":51,"value":635},"Key Principles",{"type":45,"tag":95,"props":637,"children":638},{},[639,649,659,669,679],{"type":45,"tag":99,"props":640,"children":641},{},[642,647],{"type":45,"tag":70,"props":643,"children":644},{},[645],{"type":51,"value":646},"Never trust LLM output",{"type":51,"value":648}," - Validate and sanitize all outputs before use",{"type":45,"tag":99,"props":650,"children":651},{},[652,657],{"type":45,"tag":70,"props":653,"children":654},{},[655],{"type":51,"value":656},"Least privilege",{"type":51,"value":658}," - Grant minimum necessary permissions to LLM systems",{"type":45,"tag":99,"props":660,"children":661},{},[662,667],{"type":45,"tag":70,"props":663,"children":664},{},[665],{"type":51,"value":666},"Defense in depth",{"type":51,"value":668}," - Layer multiple security controls",{"type":45,"tag":99,"props":670,"children":671},{},[672,677],{"type":45,"tag":70,"props":673,"children":674},{},[675],{"type":51,"value":676},"Human oversight",{"type":51,"value":678}," - Require approval for high-impact actions",{"type":45,"tag":99,"props":680,"children":681},{},[682,687],{"type":45,"tag":70,"props":683,"children":684},{},[685],{"type":51,"value":686},"Monitor and log",{"type":51,"value":688}," - Track all LLM interactions for anomaly detection",{"type":45,"tag":60,"props":690,"children":692},{"id":691},"references",[693],{"type":51,"value":694},"References",{"type":45,"tag":276,"props":696,"children":697},{},[698,710,720],{"type":45,"tag":99,"props":699,"children":700},{},[701],{"type":45,"tag":702,"props":703,"children":707},"a",{"href":704,"rel":705},"https:\u002F\u002Fgenai.owasp.org\u002Fllm-top-10\u002F",[706],"nofollow",[708],{"type":51,"value":709},"OWASP Top 10 for LLM Applications 2025",{"type":45,"tag":99,"props":711,"children":712},{},[713],{"type":45,"tag":702,"props":714,"children":717},{"href":715,"rel":716},"https:\u002F\u002Fatlas.mitre.org\u002F",[706],[718],{"type":51,"value":719},"MITRE ATLAS - Adversarial Threat Landscape for AI Systems",{"type":45,"tag":99,"props":721,"children":722},{},[723],{"type":45,"tag":702,"props":724,"children":727},{"href":725,"rel":726},"https:\u002F\u002Fwww.nist.gov\u002Fitl\u002Fai-risk-management-framework",[706],[728],{"type":51,"value":729},"NIST AI Risk Management Framework",{"items":731,"total":765},[732,744,751],{"slug":733,"name":733,"fn":734,"description":735,"org":736,"tags":737,"stars":25,"repoUrl":26,"updatedAt":743},"code-security","write and review secure code","Security guidelines for writing secure code. Use when writing code, reviewing code for vulnerabilities, or asking about secure coding practices like 'check for SQL injection' or 'review security'. IMPORTANT: Always consult this skill when writing or reviewing any code that handles user input, authentication, file operations, database queries, network requests, cryptography, or infrastructure configuration (Terraform, Kubernetes, Docker, GitHub Actions) — even if the user doesn't explicitly mention security. Also use when users ask to 'review my code', 'check this for bugs', or 'is this safe'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[738,741,742],{"name":739,"slug":740,"type":15},"Code Review","code-review",{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},"2026-04-06T18:52:52.030224",{"slug":4,"name":4,"fn":5,"description":6,"org":745,"tags":746,"stars":25,"repoUrl":26,"updatedAt":27},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[747,748,749,750],{"name":17,"slug":18,"type":15},{"name":20,"slug":21,"type":15},{"name":23,"slug":24,"type":15},{"name":13,"slug":14,"type":15},{"slug":8,"name":8,"fn":752,"description":753,"org":754,"tags":755,"stars":25,"repoUrl":26,"updatedAt":764},"run Semgrep scans and create rules","Run Semgrep static analysis scans and create custom detection rules. Use when asked to scan code with Semgrep, find security vulnerabilities, write custom YAML rules, or detect specific bug patterns. IMPORTANT: Also use this skill when users ask to 'scan for bugs', 'check code quality', 'find vulnerabilities', 'static analysis', 'lint for security', 'audit this code', or want to enforce coding standards — even if they don't mention Semgrep by name. Semgrep is the right tool for pattern-based code scanning across 30+ languages.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[756,759,760,761],{"name":757,"slug":758,"type":15},"Code Analysis","code-analysis",{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":762,"slug":763,"type":15},"Static Analysis","static-analysis","2026-04-06T18:52:49.360762",3,{"items":767,"total":821},[768,774,781,788,807],{"slug":733,"name":733,"fn":734,"description":735,"org":769,"tags":770,"stars":25,"repoUrl":26,"updatedAt":743},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[771,772,773],{"name":739,"slug":740,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"slug":4,"name":4,"fn":5,"description":6,"org":775,"tags":776,"stars":25,"repoUrl":26,"updatedAt":27},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[777,778,779,780],{"name":17,"slug":18,"type":15},{"name":20,"slug":21,"type":15},{"name":23,"slug":24,"type":15},{"name":13,"slug":14,"type":15},{"slug":8,"name":8,"fn":752,"description":753,"org":782,"tags":783,"stars":25,"repoUrl":26,"updatedAt":764},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[784,785,786,787],{"name":757,"slug":758,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":762,"slug":763,"type":15},{"slug":789,"name":789,"fn":790,"description":791,"org":792,"tags":793,"stars":804,"repoUrl":805,"updatedAt":806},"install-mfw","install and configure Semgrep Malware Firewall","Install the mfw (Semgrep Malware Firewall) CLI via the curl|sh installer and walk the user through setup — trust store, PATH shims, shell integration, and the background daemon — asking questions at real decision points. Detects when the user's shell rc files are *managed* (symlinked into nix \u002F home-manager \u002F chezmoi \u002F GNU stow \u002F a dotfiles git repo) and, instead of clobbering them, adds mfw's source line to the right source-of-truth. Use when the user wants to install, set up, or onboard mfw on this machine.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[794,797,800,803],{"name":795,"slug":796,"type":15},"CLI","cli",{"name":798,"slug":799,"type":15},"Deployment","deployment",{"name":801,"slug":802,"type":15},"Onboarding","onboarding",{"name":13,"slug":14,"type":15},9,"https:\u002F\u002Fgithub.com\u002Fsemgrep\u002Fguardian","2026-07-21T05:37:19.475723",{"slug":808,"name":808,"fn":809,"description":810,"org":811,"tags":812,"stars":818,"repoUrl":819,"updatedAt":820},"setup-semgrep-plugin","set up the Semgrep plugin","Set up the Semgrep plugin by installing Semgrep, authenticating, and verifying compatibility",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[813,816,817],{"name":814,"slug":815,"type":15},"Local Development","local-development",{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},1,"https:\u002F\u002Fgithub.com\u002Fsemgrep\u002Fcursor-plugin","2026-04-06T18:52:53.29796",5]