metamesh のセキュリティ脆弱性を発見した方への報告ガイド。
公開バージョンは小さいので、現状は 最新の main ブランチのみ がセキュリティ更新の対象。
| バージョン | サポート状況 |
|---|---|
main (latest) |
✅ アクティブにメンテナンス |
| 過去の tag (v0.x) | ❌ 個別メンテナンスは行わない |
PyPI 公開後は、最新マイナーリリースのみサポート対象に切り替える予定 (詳細は Issue #29 解決時に更新)。
公開 Issue / PR / Discussion で脆弱性内容を投稿しないでください。 修正前に詳細が公開されると、悪用のリスクが高まります。
- リポジトリの Security タブ を開く
- "Report a vulnerability" を選択
- 詳細を入力して送信
PVR は GitHub が提供する non-public な報告経路で、メンテナのみが内容を閲覧できます。
PVR が利用できない場合は、リポジトリ所有者の GitHub プロフィールに記載のメールアドレス宛に報告してください。件名には [metamesh security] を含めてください。
迅速な対応のため、可能な範囲で以下の情報を含めてください:
- 影響範囲: どの component (MCP server / SPARQL query / extension parser / 等) に影響するか
- 再現手順: 最小限のコード or オントロジー入力で再現できる手順
- 攻撃シナリオ: 想定される悪用方法
- 影響度の見積もり: 情報漏洩 / 任意コード実行 / DoS / etc.
- 環境情報: Python バージョン、OS、metamesh バージョン (commit SHA)
個人 OSS のため、商用製品レベルの SLA は提供できません。ベストエフォートでの対応:
| ステップ | 目安 |
|---|---|
| 初回応答 | 報告から 7 日以内 |
| 影響範囲の確定 | 14 日以内 |
| 修正 PR 作成 | Critical: 30 日以内 / High: 60 日以内 / Medium 以下: 90 日以内 |
| 公開 (CVE / advisory 発行) | 修正 PR merge 後すみやかに |
metamesh は以下を 信頼する 前提で設計されています:
- ✅
METAMESH_ONTOLOGY_ROOTが指すディレクトリの内容 (ユーザー自身が書いたファイル) - ✅ Claude Desktop / Code 経由で渡される MCP リクエスト (ローカルプロセス間通信)
- ✅ ローカルファイルシステムの read/write 権限
逆に以下は 信頼しません:
- ❌ 任意 SPARQL クエリ →
query_conceptでINSERT/DELETE/DROP/LOAD等の Update 系操作はブロック (read-only 契約、PR #24 で実装) - ❌ 任意 JSON-LD 入力 → rdflib の parse セキュリティ機能に依拠
- ❌ 外部ネットワーク → metamesh 自体は外部 API を呼び出さない (ユーザーが書く Skill が呼び出す可能性はある)
- Secret scanning: GitHub Native + gitleaks-action で全 commit history を CI で検査
- SPARQL Update 防止:
query_conceptでの書き込み系操作をブロック (src/metamesh/queries/concept.py) - 依存関係の更新: Dependabot で pip / GitHub Actions を週次更新
- Static analysis: CodeQL workflow で Python コードの脆弱性パターンを CI で検出
- CI workflow 権限最小化: 全 workflow で
permissions: contents: readを default に明示し、書き込みが必要な job のみ個別に追加権限 (例:security-events: write) を付与
責任ある開示 (Coordinated Disclosure) に従って報告してくださった方には、このセクションでお名前 (希望者のみ) と修正 PR / advisory への謝辞リンクを記載します。