Security considerations: tool text can contain characters nobody sees
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 1/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 72/100
- issue の種類
- ドキュメント
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- markdown
調査の方向性
既存のセキュリティに関する考慮事項と関連するissue #11、#159、#313を読み、この注記に適した箇所を見つけてください。ツールのテキスト内にある不可視のUnicode文字と、実装者に推奨される予防措置について、短い非規範的な説明を追加してください。セキュリティに関する考慮事項に要求されたガイダンスが含まれ、規範的な要件が新たに導入されていなければ完了です。
索引モデルが issue の本文から書いたものです。
説明
This isn't a new attack, and it may be a minor thing, but I would like the security considerations to mention it so implementers of guardrails and agents don't forget it.
A tool's title, description and the strings inside its schemas can contain characters that take no space on screen but are still part of the text: Unicode tag characters (U+E0000 to U+E007F), which can spell out ASCII, zero-width characters, and bidirectional controls that reorder what a reader sees. A hidden instruction is no stronger than a visible one, but it gets past anything that only looks at what a person or a pattern matcher sees: a code review, a tool list in a UI, or a guardrail that matches keywords.
That matters most when something else registers tools on a page the site owner trusts, like a third-party script (#159). Tool names are already limited to ASCII, so they aren't affected, and a length limit (#73, #219) doesn't help, since a few hundred of these fit under any limit.
I work on a guardrail system myself, and the systems that run on ordinary machines with local models tend to depend on mechanical matching or on small models. That is because running a large model for both the agent and the guardrail makes inference too slow to use. Those are the systems where this is a real problem, since a small model or a matcher can be easier to confuse with text it can't see than a large one is. They should normalize text before they match on it, stripping or decoding these characters, and a host that shows a title or description to the user for approval shouldn't show something different from what it gives the model. So a short note for implementers would be enough. I'm not asking for a normative rule. Related: #11 and #313.
- 主要言語
- Bikeshed
- スター
- 4.7k
- フォーク
- 328
- 平均マージ
- 2日 15時間
- マージ済み PR(30日)
- 16
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
webmachinelearning/webmcp のほかの issue
-
Say how an agent should weigh annotations that the page wrote about itself対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
webmachinelearning/webmcp#353 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 67/100
webmachinelearning/webmcp#343 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
Agenda+ i18n-tracker
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
webmachinelearning/webmcp#273 · コメント 3 件 ·
メンテナーはふだん 1 日以内に返信
-
a11y-tracker Agenda+
難易度 2/5 1〜3時間 初心者へのやさしさ 67/100
webmachinelearning/webmcp#272 · コメント 4 件 · リアクション 2 件 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
webmachinelearning/webmcp#234 · コメント 5 件 ·
メンテナーはふだん 1 日以内に返信
webmachinelearning/webmcp の issue をすべて見る
似ている issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 68/100
quarkusio/quarkus-agent-mcp#296 ·
メンテナーはふだん 1 日以内に返信
-
Uninstall guide omits the CloudWatch log groups AWS CodeBuild creates for useCodeBuild pipelinesオープンbug documentation
難易度 1/5 1〜3時間 初心者へのやさしさ 88/100
awslabs/visual-asset-management-system#552 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 75/100
NetAppDocs/data-services-backup-recovery#175 ·
メンテナーはふだん 1 日以内に返信
-
netbox status: needs triage type: documentation
難易度 1/5 1時間未満 初心者へのやさしさ 76/100
netbox-community/netbox#23460 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 84/100
DataTalksClub/machine-learning-zoomcamp#739 ·
メンテナーはふだん 2 日以内に返信