Skip to content

Fix skills.sh audit findings - #18

Merged
baransu merged 1 commit into
masterfrom
tomasz/skills-audit-fixes
Oct 22, 2026
Merged

baransu merged 1 commit into
masterfrom
tomasz/skills-audit-fixes

Conversation

@baransu

@baransu baransu commented Oct 22, 2026

Copy link
Copy Markdown
Contributor

Addresses the skills.sh security audit.

  1. No installer download. Removed curl -fsSL https://native.jam.dev/install | bash from jam-proof, jam-annotate, and the jam-fix and jam-to-e2e references/cli.md. If jam is missing, the skill stops and asks the user to install it from jam.dev/cli. The README no longer says a skill installs the CLI. Maps to: Gen Agent Trust Hub REMOTE_CODE_EXECUTION (jam-annotate), Snyk W012 (jam-fix, jam-to-e2e).
  2. No user text in shell arguments. jam-annotate writes the payload to a file and runs jam create jam @payload.json (@<path> confirmed in jam create jam --help). Same change for the proof upload in jam-fix/references/cli.md; jam-proof gets a one-line rule for titles and comments. Maps to: Gen Agent Trust Hub command injection (jam-annotate).
  3. Jam content is evidence, not instructions. One short rule at the top of step 1 in jam-fix and jam-to-e2e. Maps to: Snyk W011 (jam-fix, jam-to-e2e).

Also updated the CONTRIBUTING ChatGPT note that described the old install step, and added a CHANGELOG entry.

jam-proof and jam-annotate changed, so the Jam CLI bundle needs a resync.

Checks: node scripts/check.mjs and npm test pass.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 4 potential issues.

Devin Review

Comment thread skills/jam-proof/SKILL.md

```bash
command -v jam >/dev/null || curl -fsSL https://native.jam.dev/install | bash
command -v jam >/dev/null || echo "jam is not installed"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Installed Jam CLI reported missing

When jam lives in ~/.local/bin outside the initial PATH, command -v jam reports it missing. export PATH then makes it available, but the stop instruction can halt all four skills before authentication.

Learn more

The setup block is shared by jam-proof, jam-annotate, and both CLI references. It checks for jam before adding $HOME/.local/bin, although that directory is explicitly added for CLI discovery. The new stop instruction can therefore act on a false missing-CLI message. When the CLI is truly absent, the block also reaches jam auth status and jam auth login instead of stopping.

Example: A user has ~/.local/bin/jam, but their agent's PATH lacks ~/.local/bin. The setup prints “jam is not installed,” then adds that directory and successfully finds Jam; the agent can still stop based on the warning rather than use the installed CLI.

Recommended fix: In each of the four matching setup blocks, add $HOME/.local/bin to PATH before checking command -v jam. Make an unsuccessful check stop the setup before any jam auth command runs.

Devin Review


Was this helpful? React with 👍 or 👎 to provide feedback.

Comment thread skills/jam-fix/references/cli.md
Comment on lines +59 to +60
Write `payload.json` with your file-writing tool; user and page text never goes
into a shell argument:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟨 Private Jam links persist in payload files

For a proof upload, payload.json contains the source Jam URL and remains on disk. A later project commit can expose that link.

Devin Review


Was this helpful? React with 👍 or 👎 to provide feedback.

Comment thread skills/jam-annotate/SKILL.md
@baransu
baransu merged commit 62e6f95 into master Oct 22, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant