多くの脆弱性修正したバージョンをリリース

多くの脆弱性修正したバージョンをリリース

この記事では、2025年4月30日にリリースされたバージョンについて紹介いたします。 今回りリースしたバージョンでは、多くの脆弱性を修正されております。お早めにバージョンアップのご検討をお願いいたします。

リリースしたバージョン

  • Ver. 3.1.44
  • Ver. 3.0.48
  • Ver. 2.11.76
  • Ver. 2.10.64
  • Ver. 2.9.52
  • Ver. 2.8.86

Ver. 3.1.44 リリースノート

修正点

  • CMS-7118 インクルードの変数にバックスラッシュが入った文字列を渡すと、変数が空になってしまう問題を修正
  • CMS-7119 jQuery の $.ajax() を利用するとクロスオリジンのリクエストでも X-Csrf-Token ヘッダーが付与されてしまう問題の修正
  • CMS-7120 バージョンの切り替え時(承認含む)、コメントがあった場合コメントが削除されてしまう問題を修正
  • CMS-7121 Category_Insert モジュールで SQL_Select::setOrder メソッドの第2引数に無効な値を指定している問題の修正
  • CMS-7123 カスタムフィールドのテキスト置換を行うとphpエラーが発生する問題を修正
  • CMS-7130 セキュリティ修正によりメディア変数 {hoge@thumbnail} への resizeImg 校正オプションが動作しなくなっている問題の修正
  • CMS-7131 静的書き出しで必要ない余分なリクエストを除外するように改善 & エントリー書き出しのインターバル時間を調整
  • CMS-7133 引用ユニットで、OGP画像のパスが長すぎると画像URLの保存に失敗し、画像が出力されない問題を修正
  • CMS-7134 非公開ユニットにリンクを追加するとモーダルが少し奥まっている問題を修正
  • CMS-7143 監査ログでリクエストをより調査しやすいように、詳細情報を残すレベルをERRORからNOTICEに変更
  • CMS-7144 メディアモーダルを閉じたときにフォーカスがモーダルを表示するために利用したボタンに戻らない問題の修正
  • CMS-7156 メディアの中心点の設定が、カスタムフィールドからだとリセットされてしまう問題の修正
  • CMS-7171 正常なアクセスであっても、Undefined constant "MIME_TYPE" or "IS_DEVELOPMENT" エラーが発生してしまう問題を修正
  • CMS-7170 Ver. 3.1.37 のセキュリティ修正より、Xログインの OAuth 認証ができない問題の修正
  • CMS-7172 ルール毎に設定した管理メニュー設定がコンフィグやモジュールID管理画面で反映されない問題を修正

セキュリティフィックス

  • CMS-7177 .htaccessのリダイレクトの安全性を向上
  • CMS-7137 CSRFトークンのセッションID更新タイミングを調整
  • CMS-7150 .htaccess と jsonレスポンスのセキュリティ・パフォーマンス系ヘッダーの安全性を向上
  • CMS-7145 ソルト発行と、認証URL周り処理のセキュリティ向上
  • CMS-7127 Content-Typeが正しく設定されていないJSON出力を修正
  • CMS-7163 URLが入る変数のXSS対策
  • CMS-7159 投稿者権限で一部必要ない管理画面を表示できてしまう問題を修正(実行は不可)
  • CMS-7125 テキストユニット(編集画面)のXSS対策(投稿者以上限定)
  • CMS-7152 プレビュー機能のXSS対策(投稿者以上限定)
  • CMS-7154 テンプレート書き出し機能のトラバーサル・RCE対策(編集者以上限定)
  • CMS-7161 ナビゲーションモジュールの「http://」によるテンプレート取得機能を廃止・SSRF対策(管理者限定)
  • CMS-7165 モジュールユニット機能のパストラバーサル対策(管理者限定)
  • CMS-7167 Webhook機能のSSTI対策(管理者限定)
  • CMS-7173 特定のPOSTモジュールのSSRF・XSS対策

Ver. 3.0系以下の修正点は、リリースノート をご覧ください

Ver. 3.1系、Ver. 3.0系のセキュリティ修正について

以下修正項目は、ログイン前提の脆弱性になります。信頼されないユーザーが投稿者権限以上をもつ場合は必ずアップデートをお願いします。

これらの修正は、メンテナンスポリシー に沿って、Ver. 3.1系、Ver. 3.0系でのみ修正されております。

  • CMS-7150 .htaccess と jsonレスポンスのセキュリティ・パフォーマンス系ヘッダーの安全性を向上
  • CMS-7127 Content-Typeが正しく設定されていないJSON出力を修正
  • CMS-7163 URLが入る変数のXSS対策
  • CMS-7159 投稿者権限で一部必要ない管理画面を表示できてしまう問題を修正(実行は不可)
  • CMS-7125 テキストユニット(編集画面)のXSS対策(投稿者以上限定)
  • CMS-7152 プレビュー機能のXSS対策(投稿者以上限定)
  • CMS-7154 テンプレート書き出し機能のトラバーサル・RCE対策(編集者以上限定)
  • CMS-7161 ナビゲーションモジュールの「http://」によるテンプレート取得機能を廃止・SSRF対策(管理者限定)
  • CMS-7165 モジュールユニット機能のパストラバーサル対策(管理者限定)
  • CMS-7167 Webhook機能のSSTI対策(管理者限定)

Ver. 2.8系 〜 Ver. 3.1系のセキュリティ修正について

以下修正項目は、ログイン不要の脆弱性になります。アップデートもしくは後述の応急処置の対応をお願いします。

この修正はサポートが終了している、Ver. 2.8 から Ver. 2.11 でもフィックスバージョンをリリースしております。

  • CMS-7173 特定のPOSTモジュールのSSRF・XSS対策

ワークアラウンド(応急処置)

config.server.phpHOOK_ENABLE1 に設定します。

define('HOOK_ENABLE', 1);

extension/acms/Hook.php を修正します。

public function beforePostFire($thisModule)
{
    $thisModule->Post->delete('protocol'); // この行を追加
}

extension/acms/Hook.php が存在しない場合は、php/ACMS/User/Hook.php を修正します。

謝辞

以下当該脆弱性をご報告いただいた haidv35 (Dinh Viet Hai) at Viettel Cyber Security 氏に感謝申し上げます。ご協力ありがとうございました。
This issue was reported by haidv35 (Dinh Viet Hai) at Viettel Cyber Security. We appreciate your cooperation.

  • CMS-7127 Content-Typeが正しく設定されていないJSON出力を修正
  • CMS-7163 URLが入る変数のXSS対策
  • CMS-7159 投稿者権限で一部必要ない管理画面を表示できてしまう問題を修正(実行は不可)
  • CMS-7125 テキストユニット(編集画面)のXSS対策(投稿者以上限定)
  • CMS-7152 プレビュー機能のXSS対策(投稿者以上限定)
  • CMS-7154 テンプレート書き出し機能のトラバーサル・RCE対策(編集者以上限定)
  • CMS-7161 ナビゲーションモジュールの「http://」によるテンプレート取得機能を廃止・SSRF対策(管理者限定)
  • CMS-7165 モジュールユニット機能のパストラバーサル対策(管理者限定)
  • CMS-7167 Webhook機能のSSTI対策(管理者限定)

以下当該脆弱性をご報告いただいた vcth4nh from VCSLab of Viettel Cyber Security (Vu Chi Thanh) 氏に感謝申し上げます。ご協力ありがとうございました。
This issue was reported by vcth4nh from VCSLab of Viettel Cyber Security (Vu Chi Thanh). We appreciate your cooperation.

  • CMS-7173 特定のPOSTモジュールのSSRF・XSS対策

最後に

できるだけ早めのバージョンアップをご検討ください。 当プロジェクトの安全性向上にご協力くださった皆さまに深く感謝申し上げます。

今後もご報告いただいた内容に対して真摯に受け止め修正と改善を行ってまいります。
今後ともどうぞよろしくお願いいたします。

イメージビューアー(Highslide JS)

現在では、a-blog cms ではSmartPhotoをデフォルトのイメージビューアーとして設定されていることから非推奨になりました

a-blog cmsでは、サムネイル画像を拡大表示させるイメージビューワー(Highslide JS)の設定が標準で実装されています。(Ver. 1.2.1より)

a-blog cms Ver. 1.2.1に同梱されているHighslideのバージョンは4.1.8です。(インストールパッケージ内「お読みください.pdf」参照)

デモ

1. 設定の編集

この機能の設定は、/js/config.jsの以下の箇所にあります。設定を変更する場合は、適用しているテーマ内にJavaScriptファイルを別途作成してください。詳しくは「組み込みJSについて:設定を編集する」を参照してください。

    // イメージビューワー ( Highslide )
    hsMark              : 'a[rel=highslide]',
    hsConfig            : // http://highslide.com/ref/hs.overrides
    {
        align       : 'center',
        outlineType : 'rounded-white'
        //dimmingOpacity  : 0.25,
        //dimmingDuration : 25
    },
    hsLang  :
    {
        loadingText     : '読み込み中...',
        loadingTitle    : 'クリックでキャンセルします',
        fullExpandTitle : '実寸で表示します',
        restoreTitle    : 'クリックで元の大きさに戻ります'
    },


hsMark highslideを適用させるHTMLの要素・属性を指定します。
hsConfig highslideの表示設定です。記述できる値は以下のとおりです。allowSizeReduction anchor align targetX targetY outlineType outlineWhileAnimating captionId captionText captionEval captionOverlay headingId headingText headingEval headingOverlay dragByHeading autoplay numberPosition transitions dimmingOpacity contentId width height allowWidthReduction allowHeightReduction preserveContent maincontentId maincontentText maincontentEval objectType cacheAjax objectWidth objectHeight objectLoadTime swfOptions wrapperClassName minWidth minHeight maxWidth maxHeight slideshowGroup easing easingClose fadeInOut src参考:http://highslide.com/ref/hs.overrides
hsLang highslideの画面に表示させるメッセージの設定です。

2. HTMLの編集

config.jsで指定した要素・属性をHTMLに記述します。

例)hsMarkで「a[rel=highslide]」と指定した場合

<a href="sample.html" rel="highslide"><img src="xxx.gif" alt="xxx" width="10" height="10" /></a>

このように記述すると、アンカーリンクをクリックしたときにHighslideが適用されます。

イメージビューアー(prettyPhoto)

現在では、a-blog cms ではSmartPhotoをデフォルトのイメージビューアーとして採用していることから非推奨になりました

a-blog cmsでは、サムネイル画像を拡大表示させるイメージビューワー(prettyPhoto)の設定が標準で実装されています。

デモ

1. 設定の編集

管理ページ > カスタマイズ管理:コンフィグ > モジュール:Entry_Bodyイメージビューワーの部分を「 rel="prettyPhoto[{unit_eid}]"」にします。

この機能の設定は、/js/config.jsの以下の箇所にあります。設定を変更する場合は、適用しているテーマ内にJavaScriptファイルを別途作成してください。詳しくは「組み込みJSについて:設定を編集する」を参照してください。

    //----------------------------------
    // イメージビューア ( prettyPhoto )
    ppMark  : 'a[rel^="prettyPhoto"]',
    ppConfig    :
    {
        animation_speed: 'fast',
        slideshow: false,
        autoplay_slideshow: false,
        opacity: 0.80,
        show_title: false,
        allow_resize: true,
        default_width: 500,
        default_height: 344,
        counter_separator_label: '/',
        theme: 'light_square',
        hideflash: false,
        wmode: 'opaque',
        autoplay: true,
        modal: false,
        overlay_gallery: true,
        keyboard_shortcuts: true,
        changepicturecallback: function(){},
        callback: function(){},
        markup: (省略),
        gallery_markup: (省略),
        image_markup: (省略),
        flash_markup: (省略),
        quicktime_markup: (省略),
        iframe_markup: (省略),
        inline_markup: (省略),
        custom_markup: ''
    },
    ppCaption2Title : true,


ppMark prettyPhotoを使用する場合のrel属性値
ppConfig prettyPhotoの設定値参考:prettyPhoto documentation
ppCaption2Title ユニット画像のキャプションをタイトルとして使用するかの設定

2. 補足

a-blog cmsのバージョンアップ(Ver. 1.6.2.1以前)をしたサイトで、下記のエラーが表示されることがあります。

index.js : loadClosure is not function

対応としては、Ver. 1.7.0以上へのバージョンアップか、もしくはhighslideをprettyPhotoに変更をしてください。