Repository navigation
release-1.2.2J
·
1386 commits
to main
since this release
1.2.2J(セキュリティ修正版)
1.2.1J に対するセキュリティ修正のみを含むリリースです。1.0.23J から 1.2.1J までをお使いのサイト(1.0 系を含む)は、1.2.2J へのアップデートをお願いします。 1.0.22J 以前は今回の SQL の問題の影響は受けませんが、ファイルブラウザの問題(1.0.14J.r9 以降)は該当し、保守も終了しているため、あわせてアップデートを推奨します。
修正内容
- 一部の処理で、データベースへ渡す値が安全化(エスケープ・整数化)されないまま SQL に組み込まれていた問題を修正しました(SQL インジェクション)。ログインせずに届く経路も含まれます。詳細はセキュリティアドバイザリ GHSA-r3c4-xc8q-3656 をご覧ください。
- DBAPI の仕様(値は呼び出し側で安全化してから渡す)は変えていません。プラグイン・モジュール・スニペットは、そのままお使いいただけます。
あわせて、管理機能まわりの次の点を厳格化しました。
- ファイルブラウザ: システム設定「ウェブユーザーのファイルブラウザ利用」を正しく反映するようにしました。これまでは「いいえ」でも、フロント側でログインしたウェブユーザーがファイルブラウザに到達できました(ログインしていない人は、これまでも使えません)。
- アクセス記録: 管理画面のアクセス記録に保存する IP アドレスを、正しい IP アドレスの形式に限定しました。
- データベースのテーブル操作: 「最適化」「中身を空にする」の対象をサーバー側でも確認し、画面に表示している対象以外は実行しないようにしました。
- ログ: デバッグ時や、フォームの確認用トークンの検証に失敗した時に、トークンの値をログや画面へ出さないようにしました。
アップデートの手順は、どのバージョンからでも通常と同じです(アップデート方法:全ファイルを上書きし、/install/ でアップデートを実行)。1.2.1J からの場合はデータベースの変更がないため、変更した次の 13 ファイルを置き換えるだけでも更新できます。
manager/includes/accesscontrol.inc.phpmanager/includes/csrf_token.phpmanager/includes/document.parser.class.inc.phpmanager/includes/extenders/ex_dbapi.php(コメントのみ)manager/includes/helpers.phpmanager/includes/version.inc.phpmanager/media/browser/mcpuk/browser.phpmanager/media/browser/mcpuk/connectors/ConnectorKernel.phpmanager/processors/chunk/save_htmlsnippet.processor.phpmanager/processors/db/optimize_table.processor.phpmanager/processors/pm/delete_message.processor.phpmanager/processors/pm/send_message.processor.phpmanager/processors/save_settings.processor.php
アップグレード時の注意
- ファイルを置き換えたあと、管理画面にログインしてシステム設定を一度保存してください。保存するまでは、表側がメンテナンス画面になります。
- フロント側でウェブユーザーにファイルブラウザを使わせている場合(フロントのフォームにリッチテキストエディタを組み込んでいるサイトなど): アップデート後も使わせるには、システム設定の「ウェブユーザーのファイルブラウザ利用」を「はい」に変更してください(既定は「いいえ」)。それ以外のサイトと、管理画面のユーザーには影響ありません。
- 独自のプラグインやスニペットで
where()やdb()->select()などに値を渡している場合は、これまでどおりdb()->escape()または(int)で安全化してから渡してください。
1.2 系の今後について
1.2.2J を 1.2 系の最終版とする予定です。今後の修正と、管理画面での入力の扱いの系統的な見直し(#493)は 1.3 系で行います。
1.3 系(main ブランチ)をお使いの場合
1.3 系の配布リリースはまだありませんが、main ブランチから直接運用している場合も、同じ問題への対策は main に取り込み済みです(#505、#517)。最新の main に更新してください。
Full Changelog: release-1.2.1J...release-1.2.2J