Skip to content

Security checks

What ai_stp checks, which engines it uses, and which risks each check reduces.

ai_stp runs a staged, non-executing safety suite before a public component can be treated as verified. A passed scan reduces known risk; it is not a guarantee that an artifact is harmless. Required checks block publication when they fail or cannot run. Optional checks produce visible warnings or incomplete coverage.

Result states

  • Passed — the engine completed without a policy finding.
  • Failed — a blocking finding was detected; the catalog shows the sanitized reason.
  • Warning — a non-blocking finding needs review.
  • Not run / degraded — the engine did not produce a verdict; required coverage remains pending.
  • Not applicable / skipped — the check does not apply and is excluded from the percentage.

Check inventory

FamilyChecksMethod or technologyRisk reduced
Integrity and provenancestructure, digest, license, tags, source_repoPydantic schemas, canonical serialization, SHA-256, repository/commit pinningTampered or misrepresented artifacts; OWASP A08 Software and Data Integrity Failures
Safe extractionartifact_unpack, path_denylistBounded archive extraction, path normalization, deny rulesZip-slip, traversal, unsafe files; A01 Broken Access Control, A08
Secretssecrets_heuristic, secrets_gitleaksOwned pattern/entropy rules and GitleaksEmbedded tokens, passwords and private keys; A02 Cryptographic Failures
Prompt and hidden contentpi_content_pack, content_hiddenOwned prompt-injection and invisible-content rulesPrompt injection and covert instructions; OWASP LLM01 Prompt Injection, LLM02 Sensitive Information Disclosure
Generic SASTsast_opengrepOwned rules executed with OpengrepInjection, unsafe subprocess and code patterns; A03 Injection, A04 Insecure Design
MCP and hooksmcp_config_static, hook_schema_static, hook_command_argvSchema validation, URL/transport policy, argv analysisSSRF, command injection, excessive capability; A03, A10 SSRF, LLM06 Excessive Agency
Agent skillsskill_static_gateOwned rules plus NVIDIA SkillSpector and Cisco Skill Scanner when availableMalicious instructions, exfiltration and undeclared permissions; LLM01, LLM02, LLM06
Language SASTshell_obfuscation, sast_shellcheck, sast_bandit, sast_gosec, sast_eslint_securityShellCheck, Bandit, gosec, eslint-plugin-securityLanguage-specific injection and insecure coding patterns; A03, A04
Dependenciessca_osv, sca_pip_audit, sca_govulncheck, sca_cargo_audit, sca_cargo_deny, sca_npm_auditOSV-Scanner, pip-audit, govulncheck, cargo-audit, cargo-deny, native npm auditKnown vulnerable or prohibited dependencies; A06 Vulnerable and Outdated Components, LLM05 Supply Chain Vulnerabilities
Documentsdocument_pdfStatic PDF action, JavaScript and suspicious-string inspectionActive document content and embedded prompt injection; A03, LLM01
Malwaremalware_clamav, malware_yaraClamAV, YARAKnown malware and policy signatures; A08
Setupssetup_pin_aggregateExact component pins and aggregate component evidenceA setup hiding an unsafe or unverified dependency; A06, A08, LLM05

Checks are selected by component kind, detected languages and files, and the minimal, standard, or strict profile. External CLI engines run only when the platform enables them; an unavailable engine never becomes a pass.

Why a check failed

The expanded catalog view shows a sanitized reason next to every failed, warning, degraded, or not-run check. Sensitive values, secret material and local paths are never exposed. Use the check identifier when reporting an issue to the component author.

The normative policy is maintained in docs/contracts/validation-policy.md; the catalog page is its reader-oriented projection.

ai_stp