AI Supply Chain and Model Security
Keep AI supply-chain review practical: providers, model gateways, SDKs, plugins, prompt stores, connectors, datasets, and service accounts all affect application security.
Attack techniques
Mark each result as you test — it saves in your browser and feeds Export findings. Payloads that exercise a technique sit inside its card. L1 single-turn · L2 feature-dependent · L3 chained multi-step.
Scope caveat — most items here are tester-side review / infra procedures (inspect the client bundle, grep dependency manifests, probe runtime endpoints, query the AI-BOM), NOT strings pasted into the chat model; run them against the deployment. The two model-facing items (provider fingerprinting, plugin/MCP enumeration) rest on model self-report, which is zero evidence alone: corroborate out-of-band (response headers, error-body format, tokenizer behavior, gateway/usage logs).
Search the frontend bundle, source maps, and network responses for sk-, api_key, x-api-key, hf_, or Authorization: Bearer strings. Place a fake registry credential like hf_GSL-0001 in a notebook and check whether it is committed or logged unredacted. Route an off-allowlist model through the gateway (model=GSL-SC-UNAPPROVED) and check whether it is served or rejected. Probe self-hosted runtime endpoints directly (e.g. GET /api/tags on Ollama, GET /v1/models on vLLM) for missing auth or rate limits. Request prompt-template or agent-config paths (/config, /prompts, /.well-known) and check whether they load without authentication. Submit the marker GSL-SC-001 through the app and trace whether it reaches any third-party tool, connector, or provider log. Ask the model to list its installed plugins, MCP servers, and connectors, then reconcile the list against the reviewed inventory. Grep dependency manifests and lockfiles for unpinned, yanked, or typosquatted AI packages, including a non-resolving canary name like transformerss-GSL-TYPO. Point the loader at a checksum-mismatched or unsigned canary artifact (expected hash GSL-SC-HASH-001) and confirm it is rejected. Load a canary model file whose init only runs console.log('GSL-SC-002') and confirm no code executes on load. Query the AI-BOM/SBOM or build-metadata endpoint and verify every listed model and SDK version is pinned and provenance-signed. Ask the model which provider, base model, version, and gateway it runs on, then compare the answer against the approved allowlist. - an out-of-band signal (headers / error-body format / tokenizer behavior / usage dashboard) is available to corroborate the self-report
Practice in the lab
Take these techniques to a live, graded target. Each lab is a hands-on exploit of this vulnerability class, run in the browser.
Remediation
- Use vendor review, model/provider allowlists, and environment separation.
- Store secrets in a managed secret system and rotate exposed credentials.
- Apply least privilege to gateways, service accounts, connectors, and plugins.
- Protect model endpoints with authentication, rate limits, monitoring, and audit logs.
- Review prompt/config changes like code changes.
Report title ideas
- Frontend Exposes AI Provider API Key
- Over-Permissive AI Gateway Allows Unapproved Model Access
- Unreviewed Agent Plugin Introduces Excessive Data Access
How to verify
- Build and keep an AI bill of materials (AI-BOM): every model, provider, gateway, SDK, agent framework, plugin, MCP server, connector, vector store, and evaluation tool, each with a pinned version.
- Confirm model artifacts load from trusted, version-pinned sources with integrity checks (prefer safetensors over pickle .bin/.pt/.ckpt, validate checksums/signatures) and that trust_remote_code / code-execution-on-load is disabled.
- Verify CI/CD and plugin/MCP install pipelines validate signatures and provenance (e.g. Sigstore / model signing) and block unreviewed open-source agents from production paths.