Back to skill

Security audit

dotnet-onion-api

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed .NET scaffolding helper that writes project files, runs normal .NET build/test commands, and checks public package/version sources for compatibility.

Install this if you want an opinionated .NET ONION architecture scaffolder. Expect it to create or modify many project files, run dotnet build/test commands, and contact public package/documentation sources to resolve current versions. Review the chosen target framework and package table before it writes files.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (3)

Vague Triggers

Medium
Confidence
91% confidence
Finding
The skill description includes broad trigger phrases such as creating a new .NET project or adding a feature end-to-end, which are common developer requests and can cause the skill to activate in situations where the user did not explicitly ask for this specific scaffold behavior. In an agent setting, over-broad activation can lead to unintended file generation, command execution, or project modifications beyond the user's intent.

Vague Triggers

Medium
Confidence
93% confidence
Finding
The 'When to use this skill' section uses ambiguous trigger scope and permissive phrases like 'If unsure... ask once — don't guess,' but does not define hard stop conditions or negative examples. That makes accidental invocation more likely, especially for ordinary .NET requests that may not warrant full project scaffolding or command execution.

External Transmission

Medium
Category
Data Exfiltration
Content
3. If unsure which is the current LTS, fetch the latest .NET support policy via context7 (`mcp__plugin_context7_context7__resolve-library-id` → `query-docs` for ".NET release schedule" / "dotnet support policy") or WebFetch `https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core`. Quote the version you picked back to the user before generating.
4. Pin EF Core, ASP.NET Core, and `Microsoft.Extensions.*` package versions to the **latest stable for that TFM** — look them up via context7 (`Microsoft.EntityFrameworkCore`, `Microsoft.AspNetCore.Authentication.JwtBearer`, etc.) rather than guessing. Never hand-paste a version you don't have a source for.
5. State the chosen TFM and package versions in your reply before writing files, so the user can object before scaffolding.
6. Concrete resolution commands when context7 is unavailable: `dotnet package search <PackageId> --take 1` or WebFetch `https://api.nuget.org/v3-flatcontainer/<package-id-lowercase>/index.json` (last non-preview entry = latest stable). Never write a version string you did not just resolve this session — no versions from memory, no wildcards, no invented numbers.

**API-drift guard.** The version you resolved in this step decides the API shape — training-data memory is the least trustworthy source in this workflow. Highest-risk hallucination zones:
Confidence
89% confidence
Finding
The skill explicitly instructs the agent to query external services such as Microsoft support policy pages, NuGet, and context7 to resolve framework and package versions. In a security-sensitive or privacy-sensitive environment, this causes outbound network access based on user-triggered activity, which can leak metadata about the task and create supply-chain or trust-boundary concerns if external content is consumed without policy checks.

Static analysis

No suspicious patterns detected.