What’s new in v25.2LTS-patch20260828
Bug fixes
- heartbeatのcalloutに認証ヘッダー(
X-Xaas-Api-Key)が付与されておらず、axisノードからのheartbeat POSTがfrontal側で常に拒否される問題を修正しました。あわせて、heartbeat_urlにHTTPS以外を指定した場合に起動時に一度だけ警告ログを出力するようにしました。 - ClosedLoopの再起動処理(
PHASE_OPERATION)で、DB更新がトランザクション開始されずcommitされない問題を修正しました。 collect_trigger_jobのタイムスタンプ基準時刻がターゲット/レコードごとにずれる問題、およびコレクタージョブキューのoff-by-one問題を修正しました(v23.2LTS系からの移植)。ADD COLUMNでDATETIME型かつNOT NULLカラムを追加する際、モデル定義のserver_defaultがDDLへ反映されずMySQL strict modeで失敗する問題を修正しました。あわせて、NOT NULLかつserver_default未指定の場合は早期にエラーを返すようにしました。- 収束済み(
LIFE_STILLBIRTH/LIFE_DEAD)のscheduleレコードについて、planテーブルのみ削除されlifeテーブルが無期限に蓄積する問題を修正しました。削除後の対象life取得時にInternalErrorになる問題もあわせて修正しました。 PUT /accountsにexpire_updateフラグを追加し、secret_update=false時でもexpire_days/api_expireのみを更新できるようにしました。- deep_monitoringのトレースログが
deep_monitoring_body_max_size設定を無視してbodyを全出力していた問題を修正しました。 - pluginインストール時のチャンク分割calloutに、非チャンク側と同じタイムアウト設定を適用するようにしました。
セキュリティ対応
/interactiveshellWebSocketが無認証で任意コード実行・SQL実行・シェル起動を許していた問題を修正し、認証を必須化しました。- Parametermappersの登録処理に認証チェックが欠落しており、無認証で登録したformatterがゲートウェイ通過時に実行されてしまう問題を修正しました。
axis_authorization()がクライアント指定のX-Xaas-Auth-Pathヘッダーと実際のリクエストパスの一致を検証しておらず、低権限トークンで別パスへ認可バイパスできた問題を修正しました。/terminalsWebSocketが無認証で管理対象ネットワーク機器へのSSH接続・コマンド実行を許していた問題を修正し、認証を必須化しました。/subscribersWebSocketが無認証でGraphQL全体クエリや内部Redis pub/subの購読を許していた問題を修正し、認証を必須化しました(あわせて内部ループバッククライアントにも内部資格情報を付与)。- レスポンスへセキュリティヘッダー(
X-Frame-Options/X-Content-Type-Options/Cache-Control/Pragma)を付与し、JSON応答へのcharset=UTF-8指定をPOST/PUT限定から全般に拡大しました。
Modules
依存moduleの更新
- 以下のmoduleのバージョンを更新しました。
aiohttp 3.14.1 -> 3.14.3
asyncssh 2.19.0 -> 2.23.1