validate-post-migration-data
Pass
Audited by Gen Agent Trust Hub on Sep 28, 2026
Risk Level: SAFECOMMAND_EXECUTIONEXTERNAL_DOWNLOADSINDIRECT_PROMPT_INJECTIONDYNAMIC_EXECUTION
Full Analysis
- External Tool Installation and Execution: The skill identifies, validates, and potentially installs the
sqlcmdutility using the Windows Package Manager (winget). While this is a common administrative pattern, it involves executing external binaries and modifying the system environment (PATH) at runtime. - The
Find-CompatibleGoSqlcmdfunction executes everysqlcmdbinary found on the system path to verify its version and help flags. - If a compatible version is not found, the skill attempts to install the official package via
winget install sqlcmd. - Command Execution via PowerShell: The skill dynamically constructs and executes PowerShell commands to interact with SQL databases through the
sqlcmdexecutable. - It uses local
.sqlfiles to batch queries and captures output to local files for comparison. - To mitigate risks, the skill explicitly avoids SQL authentication (passwords), requiring Windows Integrated or Entra authentication, and uses the
QUOTENAMEfunction to wrap database identifiers. - Indirect Prompt Injection Surface: The skill processes data and metadata from external SQL databases, which serves as a potential surface for indirect prompt injection if those databases contain adversarial content.
- Ingestion points: Data is ingested from SQL Server catalog metadata and user-table content through
sqlcmdqueries described inSKILL.md. - Boundary markers: The skill uses strict pipe-delimited rows with record-type prefixes (
META,INVENTORY,COUNT,ERROR,CUTOFF) andSET NOCOUNT ONto structure the output. - Capability inventory: The agent has the capability to execute shell commands via the
&operator and write to the local file system usingsqlcmdoutput parameters. - Sanitization: The skill employs
QUOTENAMEfor all catalog-derived identifiers and implements a custom encoding scheme for nullable text, replacing characters like|and line breaks to prevent delimiter injection. - Dynamic Query Assembly: The skill assembles SQL query batches and PowerShell arguments at runtime.
- It uses a pseudocode pattern to join SQL fragments with explicit newlines to prevent command concatenation issues (e.g.,
GOSETerrors). - The logic ensures that sensitive connection properties or tokens are not persisted in log files or command-line arguments.
Audit Metadata