Safeguard
AI Security•

Tabletop script: your AI assistant installs a fake package

A 45 minute tabletop script for a coding assistant that recommends a nonexistent package an attacker then registers: detection, scope, policy fixes.

Safeguard Security Team
4 min read

An AI package confusion tabletop tests what happens when a coding assistant suggests a package name that did not exist, someone registers it with malicious code, and a developer installs it. This script runs 45 minutes with three injects and a fictional package, acme-fastjson-utils.

The risk in one paragraph

Language models sometimes suggest package names that look plausible but are not real. If an attacker registers such a name, anyone who installs without checking gets the attacker's code. This is a form of the lookalike risk SLSA lists under threat H, using a compromised package, which covers tricking users into a lookalike package. The drill is not about blaming the tool. It is about whether your process checks names before installs happen.

Setup

  • Facilitator, scribe, a developer who uses an assistant, a platform engineer, a security lead.
  • Premise: a developer accepted an assistant's suggestion and ran an install. The package is new, has a handful of downloads and a postinstall script.

Injects

Inject 1, minute 5. A review comment says "I do not recognise this dependency." The pull request adds acme-fastjson-utils.

Ask:

  • Who checks new dependencies in review, and against what?
  • What signals would you look for: age, maintainers, download history, repository link?
  • Is there a rule requiring approval for new packages?

Inject 2, minute 18. The package was already installed on the developer's laptop and in a preview build yesterday.

Ask:

  • What could the install script have read on a laptop, and in CI?
  • How do you search machines and pipelines for the name?
  • Which credentials do you rotate first?

Inject 3, minute 32. Three other developers say the assistant suggested the same name to them.

Ask:

  • How do you tell the team without causing panic?
  • Do you block the name at your registry proxy?
  • Do your assistant settings allow commands that install packages without human approval?

Controls to discuss

ControlWhat it does
Registry proxy with an allow listBlocks names nobody approved
New package review ruleForces a human check on unfamiliar names
Install scripts disabled by defaultLimits what a bad package can do on install
Assistant permissionsRequires approval before shell commands run
Lockfile only installs in CIPrevents surprise additions

Which of these exist today? Record the answer for each. See also prompt injection policy controls for coding agents and how to check a new dependency during pull request review.

Debrief

Choose three fixes and record them in an after-action report. A good minimum is a new package rule, install script limits and assistant command approval.

Safeguard provides dependency scanning, policies and gates, and MCP Guardrail for agent tool use, which can enforce some of these checks. A free scan shows the packages your project already depends on.

Try it yourself

Click through it at your own pace, or open it full screen. Watch how an assistant gets a check on a dependency before it is used, then compare with your own workflow.

Quick check

Is this scenario realistic or theoretical?

It is a plausible attack path with a simple cause, an unchecked name, so it is a good rehearsal even if you have not seen it yourself.

Should we ban AI assistants?

Banning is rarely necessary. Add review, registry controls and command approval so a wrong suggestion cannot run unattended.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.