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 sqlcmd utility 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-CompatibleGoSqlcmd function executes every sqlcmd binary 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 sqlcmd executable.
  • It uses local .sql files 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 QUOTENAME function 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 sqlcmd queries described in SKILL.md.
  • Boundary markers: The skill uses strict pipe-delimited rows with record-type prefixes (META, INVENTORY, COUNT, ERROR, CUTOFF) and SET NOCOUNT ON to structure the output.
  • Capability inventory: The agent has the capability to execute shell commands via the & operator and write to the local file system using sqlcmd output parameters.
  • Sanitization: The skill employs QUOTENAME for 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., GOSET errors).
  • The logic ensures that sensitive connection properties or tokens are not persisted in log files or command-line arguments.
Audit Metadata
Risk Level
SAFE
Analyzed
Sep 28, 2026, 08:20 PM