v2026.2.12
リリースサマリー
| 項目 | 内容 |
|---|---|
| リリース日 | 2026年2月12日 |
| 主な新機能 | Plugin管理(uninstall)、ログのタイムゾーン表示、Discord role-based routing |
| 重要な修正 | SSRF対策強化、Session管理ハードニング、多数のセキュリティ修正 |
| 対象チャンネル | Discord、Telegram、WhatsApp、Slack、Signal |
| 破壊的変更 | ⚠️ あり — 下記参照 |
| 推奨度 | ⭐⭐⭐⭐⭐ セキュリティ強化のため全ユーザー推奨 |
アップデートすべき?
全ユーザーにアップデート推奨。 このリリースはSSRF対策やSession管理など多数のセキュリティ修正を含んでおり、外部からの攻撃リスクが軽減されます。
破壊的変更の影響
Hook payload sessionKey拒否がデフォルトに。 Webhook(POST /hooks/agent)を使っている場合、リクエスト内の sessionKey が無視されるようになりました。
- Webhookを使っていない人 → 影響なし。何もしなくてOK
- Webhookを使っている人 → 固定のsessionKeyで運用したい場合は
hooks.defaultSessionKeyを設定。従来通りリクエスト内のsessionKeyを使いたい場合はhooks.allowRequestSessionKey: trueを明示的に設定
詳細
2026年2月12日にリリースされたv2026.2.12では、セキュリティ強化、plugin管理機能の追加、メッセージング機能の改善が行われました。
新機能
Plugin管理機能の追加
openclaw plugins uninstall コマンドが追加され、インストール済みのpluginを安全にアンインストールできるようになりました。
openclaw plugins uninstall <plugin-id>💡 ポイント: --dry-runオプションで削除される内容を事前確認でき、--keep-filesオプションでファイルを残したままアンインストール可能です。
ログのタイムゾーン表示対応
openclaw logs --local-time オプションが追加され、ログのタイムスタンプをローカルタイムゾーンで表示できるようになりました。
Telegram blockquote対応
Telegramチャンネルで、blockquoteがネイティブの<blockquote>タグとしてレンダリングされるようになりました(従来は削除されていました)。
Discord role-based routing
Discordで、ユーザーのロールに基づいたallowlistやagent routingが可能になりました。これにより、特定のロールを持つユーザーのみがbotにアクセスできるよう制限したり、ロールごとに異なるagentにルーティングしたりできます。
セキュリティ強化
このリリースでは、複数の重要なセキュリティ修正が含まれています:
SSRF対策の強化
- Gateway OpenResponses APIで、
input_file/input_imageのURL入力に対してSSRF拒否ポリシーを実装 - ホスト名allowlist(
files.urlAllowlist/images.urlAllowlist)による制限 - Browser/Web toolsのコンテンツをデフォルトで信頼されないものとして扱うように変更
- Link処理でloopback/内部ホストパターンとプライベートIPv6アドレスをブロック
💡 ポイント: 外部URLから取得したコンテンツに含まれる指示がprompt injectionとして実行されるリスクが軽減されました。
Session管理の強化
- Transcriptパス解決のハードニング
- 安全でないsession ID/ファイルパスの拒否
- Agent sessionsディレクトリ外へのアクセスを防止
その他のセキュリティ修正
- Nostrプロファイル API経由の未認証リモート設定改ざんを修正
- bundled
soul-evilhookを削除 - Sandbox skill同期先を
skills/ルートに制限 - Webhook/デバイストークン検証で定数時間比較を使用
- Browser control HTTPルートで認証を必須化
- WhatsApp credential filesのパーミッションを
0o600に強制
Hook session routingの変更
Hookのsessionルーティングがセキュリティ監査項目に追加され、設定推奨値が明確化されました:
hooks.defaultSessionKeyの設定を推奨hooks.allowedSessionKeyPrefixes: ["hook:"]との併用を推奨- セキュリティ監査でHTTP APIエンドポイントの明示的session-keyルーティングを警告
破壊的変更
Hook payload sessionKey拒否
POST /hooks/agentが、デフォルトでpayload内のsessionKeyオーバーライドを拒否するようになりました。
移行方法:
- 固定hookコンテキストを維持する場合:
hooks.defaultSessionKeyを設定(hooks.allowedSessionKeyPrefixes: ["hook:"]との併用を推奨) - 従来の動作が必要な場合:
hooks.allowRequestSessionKey: trueを明示的に設定
改善
Config管理の改善
maxTokensのような数値フィールドがconfig redaction処理で誤って削除される問題を修正/configでの設定ラウンドトリップ検証エラーを解消${VAR}形式の環境変数参照を保持(openclaw config set/apply/patchでシークレットをディスクに保存しないように改善)$schemaキーをconfig fileで受け入れ(JSON Schema editorツールとの互換性)
Gateway安全性の向上
- WebSocketペイロード/バッファ制限を引き上げ(5,000,000バイトの画像添付に対応)
- 再起動前にアクティブなturnをdrainしてメッセージ損失を防止
- install時にauth tokenを自動生成(launchd再起動ループを防止)
undefined/nullトークンの設定を防止- Control UI assetがグローバルインストール時にも解決されるように改善
Cron機能の改善
複数のcron関連のバグ修正と信頼性向上:
- One-shot
atジョブがgateway再起動後に再実行されないように修正 nextRunAtMsが進んだ際のスキップ問題を修正- ジョブ実行中に
onTimerが発火した際のタイマー再設定 - 複数ジョブ同時トリガー時の重複実行を防止
- スケジューラーエラーの分離(1つのジョブエラーが全体に波及しない)
- 隔離ジョブでのmodel override保持
チャンネル別の改善
WhatsApp:
- Markdown bold/strikethrough → WhatsApp formatting変換
- Media単独送信対応
- 音声メッセージのMIME typeデフォルト値設定
Telegram:
/compactコマンドをネイティブメニューに追加- Model picker editMessageTextでno-textメッセージを処理
REACTION_INVALIDを非致命的警告として扱う
Slack:
- デフォルト
replyToModeを"off"から"all"に変更 - チャンネルメッセージがbot mentionで始まる場合のcontrolコマンド検出
- Thread返信メタデータをinboundメッセージfooterに含める
Discord:
- DM reactionsを処理(以前は無視されていた)
- Administrator権限をフル権限として扱う
- Threadでの
replyToModeを尊重 - WebSocket接続用のgateway proxyサポート追加(
channels.discord.proxy)
Signal:
- E.164検証を強制(誤入力を早期検出)
- Mentionプレースホルダーを
@uuid/@phoneとしてレンダリング
その他のバグ修正
- 長時間実行チャンネルsessionでの
historyLimit適用(context overflowを防止) - Subprocess cleanup時のfile descriptor leak修正
- Cache TTLバイパスによる二重compactionを防止
- Context表示で最後のAPI呼び出しのcache tokenを使用
- Followup-runner sessionの
totalTokensをpost-compaction contextと整合 - 以前に接続されていなかった9つのplugin lifecycle hookを接続
- Tool実行パスから
before_tool_callとafter_tool_callhookをdispatch
詳細なchangelogは公式CHANGELOGリポジトリを参照してください。