【重要なお知らせ】変数の仕様変更について


再仕様変更

以下のバージョン以上で、仕様が更に変更されました。

  • a-blog cms Ver. 3.1.12
  • a-blog cms Ver. 3.0.32
  • a-blog cms Ver. 2.11.61
  • a-blog cms Ver. 2.10.53

仕様変更前は、「raw」校正オプションが付与されていることは関係なく、「allow_dangerous_tag」校正オプションが付与されていなければ、危険なタグはサニタイズされて出力されていました。 これを上記のバージョンから仕様変更し「raw」校正オプションが付与されている場合のみ、危険なタグをサニタイズする処理が動作するようにしました。「raw」校正オプションが付与されていない場合はそもそもサニタイズ処理されるためです。

再仕様変更点まとめ

  • 「raw」校正オプションが付いている時のみ、危険タグをサニタイズするにように修正
  • 上記より「allow_dangerous_tag」校正オプションは、「raw」校正オプションとのセットで使用
  • private/config.system.yaml から「base_allowed_tags」が削除されました

概要

現行バージョンでも、危険なタグを含めてサニタイズ(エスケープ)処理されるようになっていますが、 raw校正オプション をつけた場合、サニタイズ処理はされずに出力されていました。

今回この仕様を変更し、raw校正オプションを指定していたとしても、標準で危険なタグを出力しないように仕様変更いたしました。 危険なタグを出力したい場合は、専用の校正オプション(allow_dangerous_tag)を付与する必要があります。

仕様変更される条件

以下のバージョン以上が対象になります。

  • Ver. 3.1.7
  • Ver. 3.0.29
  • Ver. 2.11.58
  • Ver. 2.10.50

また、private/config.system.yaml で、以下オプションが「on」になっている場合のみ仕様変更がされます。

strip_dangerous_tag: on

「strip_dangerous_tag」は、新規インストール時にはデフォルトで「有効(on)」になっています。アップデート時に有効にする場合は、手動で有効にしてください。

変数出力の新しい仕様

新しい仕様の有効化方法

private/config.system.yaml で設定します。

strip_dangerous_tag: on # on | off 変数から標準で危険なタグ(dangerous_tagsで指定)を削除するか指定

変数から削除されるタグ

private/config.system.yaml で設定されている許可されたタグ以外のタグは出力できなくなります。

base_allowed_tags: # 変数で出力できる全タグリスト
  - a
  - abbr
  - acronym
  - address
  - applet
  - area
  - article
  - aside
  - audio
  - b
  - base
  - basefont
  - bdi
  - bdo
  - big
  - blockquote
  - body
  - br
  - button
  - canvas
  - caption
  - center
  - cite
  - code
  - col
  - colgroup
  - data
  - datalist
  - dd
  - del
  - details
  - dfn
  - dialog
  - dir
  - div
  - dl
  - dt
  - em
  - embed
  - fieldset
  - figcaption
  - figure
  - font
  - footer
  - form
  - frame
  - frameset
  - h1
  - h2
  - h3
  - h4
  - h5
  - h6
  - head
  - header
  - hgroup
  - hr
  - html
  - i
  - iframe
  - img
  - input
  - ins
  - kbd
  - label
  - legend
  - li
  - link
  - main
  - map
  - mark
  - menu
  - meta
  - meter
  - nav
  - noframes
  - noscript
  - object
  - ol
  - optgroup
  - option
  - output
  - p
  - param
  - picture
  - pre
  - progress
  - q
  - rp
  - rt
  - ruby
  - s
  - samp
  - script
  - search
  - section
  - select
  - small
  - source
  - span
  - strike
  - strong
  - style
  - sub
  - summary
  - sup
  - svg
  - table
  - tbody
  - td
  - template
  - textarea
  - tfoot
  - th
  - thead
  - time
  - title
  - tr
  - track
  - tt
  - u
  - ul
  - var
  - video
  - wbr

この上で、危険なタグ(script, iframeなど)が自動で削除されます。

危険なタグを意図的に出力する

新しく追加された [allow_dangerous_tag]校正オプションを使用することで、意図的に危険なタグを出力できます。 例えばアナリティクスのスクリプトなどを管理画面で設定したい場合などに使用します。

設定例

「allow_dangerous_tag」と「raw」校正オプションを指定します。「raw」校正オプションを指定しないと、scriptタグがエスケープされるので「raw」の指定も必要になります。

<!-- BEGIN_MODULE Blog_Field -->
{script_body_start}[raw|allow_dangerous_tag]
<!-- END_MODULE Blog_Field -->

危険なタグを追加する

危険なタグはデフォルトでは「script」と「iframe」が指定されていますが、追加することができます。 「config.system.yaml」で以下のように配列で追加します。

dangerous_tags: ['script', 'iframe', 'style'] # 変数から標準で削除するタグを指定

ご不明な点があったときは

この件についてなにかご不明な点がございましたら、お問い合わせフォームまでご連絡ください。

日々使いやすいシステムとなるよう改善を勤めておりますので、皆様からの貴重なフィードバック、お待ちしております。

JVNで報告されたVer. 3.1系の脆弱性への対応について


a-blog cms Ver. 3.1系で脆弱性が見つかりました。 該当の状況に当てはまる場合は大変お手数ですが以下のご対応をお願いいたします。

JVN識別番号

  • JVN#48966481

今回は見つかった脆弱性は「URL偽装の脆弱性」になります。

URL偽装の脆弱性

内容

Ver. 3.1.0 で追加された「CMS-6194 登録ドメイン以外でもサイトが表示できるように仕様変更」機能により、 URLを偽装した状態でのアクセスログが監査ログに残り、ログ確認画面では該当URLがリンクになっているため、管理者が偽装されたURLのリンクを踏む危険性があります。

攻撃条件

  • config.system.yaml の「allow_unregistered_domain」が「on」であること(デフォルト値)

影響を受けるバージョン

  • a-blog cms Ver. 3.1.0 〜 Ver. 3.1.8(Ver.3.1.x系)

対応方法

private/config.system.yaml」に以下行を追加ください。 これにより、登録ドメイン以外でのアクセスは404となり、CMSが動作せずログも残らないようになります。

allow_unregistered_domain: off

またこちらの設定値は、Ver. 3.1.9 よりデフォルトで「off」になっております。

最後に

この度はご迷惑をおかけしてしまい大変申し訳ございません。
該当する問題がありましたら、お早めにバージョンアップのご検討をお願いいたします。 また、迅速にご報告いただいたユーザーの皆さま、誠にありがとうございました。

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

本件に関するお問い合わせ先

本件についてご不明点などありましたら以下のお問い合わせよりご連絡ください。

有限会社アップルップル
メールアドレス:info@a-blogcms.jp
お問い合わせフォーム:https://www.a-blogcms.jp/contact/

JVNで報告された脆弱性への対応について

JVN#48443978

a-blog cms で脆弱性が見つかりました。 該当の状況に当てはまる場合は大変お手数ですが以下のご対応をお願いいたします。

JVN識別番号

  • JVN#48443978

今回は見つかった脆弱性は「Ping送信機能のディレクトリトラバーサル」になります。

Ping機能の脆弱性

内容

編集者以上で利用できるPing送信機能を使用する事で、任意のファイル情報を閲覧することが可能。

攻撃条件

  • 攻撃者が編集者以上の権限でログイン可能なこと

影響を受けるバージョン

  • a-blog cms Ver. 3.1.9 以下のバージョン (Ver.3.1.x系)
  • a-blog cms Ver. 3.0.30 以下のバージョン (Ver.3.0.x系)
  • a-blog cms Ver. 2.11.59 以下のバージョン (Ver.2.11.x系)
  • a-blog cms Ver. 2.10.51 以下のバージョン (Ver.2.10.x系)
  • a-blog cms Ver. 2.9.x 以下のバージョン(フィックスバージョンはありません

ワークアラウンド(回避方法)

以下ファイルを削除することで、Ping送信機能を無効にでき、今回の脆弱性を回避できます。

php/ACMS/POST/PingWeblogUpdate.php

CMSバージョンアップによる対応

Ping送信機能を利用したい場合は、CMSのアップデートをご検討ください。

各マイナーバージョン毎にフィックスバージョンがリリースしております。 「影響を受けるバージョン」 よりも新しいフィックスバージョンにアップデートを行なってください。

最後に

この度はご迷惑をおかけしてしまい大変申し訳ございません。
該当する問題がありましたら、お早めにバージョンアップのご検討をお願いいたします。 また、迅速にご報告いただいたユーザーの皆さま、誠にありがとうございました。

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

本件に関するお問い合わせ先

本件についてご不明点などありましたら以下のお問い合わせよりご連絡ください。

有限会社アップルップル
メールアドレス:info@a-blogcms.jp
お問い合わせフォーム:https://www.a-blogcms.jp/contact/

JVNで報告された脆弱性への対応について

サムネイル

a-blog cms で複数の脆弱性が見つかりました。 該当の状況に当てはまる場合は大変お手数ですが以下のご対応をお願いいたします。

JVN識別番号

  • JVN#70977403

今回は見つかった脆弱性は以下になります。

  • エントリー編集ページのクロスサイトスクリプティング(XSS)
  • Webhook機能のサーバーサイドリクエストフォージェリ(SSRF)
  • Webhook機能のコードインジェクション
  • スケジュールのラベル設定画面のクロスサイトスクリプティング(XSS)
  • フォーム機能(テンプレート指定)のディレクトリ・トラバーサル

エントリー編集ページのクロスサイトスクリプティング

内容

攻撃者が投稿者以上でログインし、エントリーに不正なコードを入力して保存して公開することにより、クロスサイトスクリプティングが発生します。

攻撃条件

  • 攻撃者が 投稿者以上の権限でログイン可能なこと(* 不正ログインされる脆弱性はありません)
  • 攻撃者が記事を公開できること

影響を受けるバージョン

  • a-blog cms Ver. 3.1.11 以下のバージョン (Ver.3.1.x系)
  • a-blog cms Ver. 3.0.31 以下のバージョン (Ver.3.0.x系)
  • a-blog cms Ver. 2.11.60 以下のバージョン (Ver.2.11.x系)
  • a-blog cms Ver. 2.10.52 以下のバージョン (Ver.2.10.x系)
  • a-blog cms Ver. 2.9.x 以下のバージョン(フィックスバージョンはありません

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

応急処置として、信頼されないユーザーにログインされるリスクを下げるため、 コンフィグ > アクセス設定かIPアドレスによるログイン制限をかけたり、ユーザーのパスワードを複雑なものに変更ください。

CMSバージョンアップによる対応

各マイナーバージョン毎にフィックスバージョンがリリースしております。 「影響を受けるバージョン」 よりも新しいフィックスバージョンにアップデートを行なってください。

対応バージョンの仕様変更

今回の対応で意図的に危険なタグを許可する校正オプション「」の仕様が変更されました。

今までの仕様

  • 変数は「allow_dangerous_tag」校正オプションを付与しないと、全ての変数で危険なタグの削除を行う
  • 上記より管理画面の変数も「allow_dangerous_tag」校正オプションを付与する必要がありました

新しい仕様

  • 「allow_dangerous_tag」校正オプションを付与しなくても「raw」校正オプションが付与されていなければ、特にエスケープ処理のみで、危険なタグを削除したいしないように変更
  • 基本管理画面は「raw」校正オプションはついていないので、管理画面の変数に「allow_dangerous_tag」校正オプションを付与する必要がなくなりました。

まとめると、新しい仕様では「raw」校正オプションが付与されている場合のみ、 危険なタグを削除するかを「allow_dangerous_tag」校正オプションのあり・なしで設定するということになります。

詳しくはこちらをご覧くささい。 【重要なお知らせ】変数の仕様変更について

Webhook機能のサーバーサイドリクエストフォージェリ

内容

攻撃者が管理者権限でログインして、Webhookの設定を不正に変更することで、サーバーサイドリクエストファージュリが発生します。

攻撃条件

  • 攻撃者が 管理者権限でログイン可能なこと(* 不正ログインされる脆弱性はありません)
  • Hook機能が有効なこと(config.server.php「HOOK_ENABLE」デフォルトは無効です)

影響を受けるバージョン

  • a-blog cms Ver. 3.1.11 以下のバージョン (Ver.3.1.x系)
  • a-blog cms Ver. 3.0.31 以下のバージョン (Ver.3.0.x系)

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

config.server.php を修正することで、Webhook機能を無効(デフォルト無効)にできます。 もしWebhook機能を使用したい場合は、CMSのアップデートをご検討ください。

define('HOOK_ENABLE', 0); // 0 で無効

CMSバージョンアップによる対応

各マイナーバージョン毎にフィックスバージョンがリリースしております。 「影響を受けるバージョン」 よりも新しいフィックスバージョンにアップデートを行なってください。

対応バージョンの仕様変更

セキュリティを高めるため、今回の脆弱性に対応したバージョンでは、Webhookの仕様変更がされています。

変更点1

WebhookのリクエストURLは、「.env」で許可したホストのみ保存・実装できるようになっております。 Webhookを利用する場合は「.env」で以下のように許可ホストを設定ください。


WEBHOOK_WHITE_LIST=hooks.slack.com,xxxxx.com # Webhookでリクエスト可能なホストをカンマ区切りで指定ください。

変更点2

ログのレスポンス表示は、デフォルトで表示できないようになっております。


レスポンスのログを表示するには、「.env」で「WEBHOOK_RESPONSE_VIEW」を「enable」に変更ください。

WEBHOOK_RESPONSE_VIEW=enable # (disabled|enable) WebhookのログにHTTPレスポンス情報を表示するかどうか設定します。セキュリティのため、確認する時のみ「enable」に設定ください。

Webhook機能のコードインジェクション

内容

攻撃者が管理者権限でログインして、Webhookのペイロード設定を不正に変更することで、コードインジェクションが発生します。

攻撃条件

  • 攻撃者が 管理者権限でログイン可能なこと(* 不正ログインされる脆弱性はありません)
  • Hook機能が有効なこと(config.server.php「HOOK_ENABLE」デフォルトは無効です)

影響を受けるバージョン

  • a-blog cms Ver. 3.1.11 以下のバージョン (Ver.3.1.x系)
  • a-blog cms Ver. 3.0.31 以下のバージョン (Ver.3.0.x系)

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

config.server.php を修正することで、Webhook機能を無効(デフォルト無効)にできます。 もしWebhook機能を使用したい場合は、CMSのアップデートをご検討ください。

define('HOOK_ENABLE', 0); // 0 で無効

CMSバージョンアップによる対応

各マイナーバージョン毎にフィックスバージョンがリリースしております。 「影響を受けるバージョン」 よりも新しいフィックスバージョンにアップデートを行なってください。

対応バージョンの仕様変更

今回の問題に対応するため、ペイロードのカスタマイズで利用するテンプレートエンジンをTwigに変更しました。 新しいテンプレートは Twig を使ったテンプレート表記に変更ください。


スケジュールのラベル設定画面のクロスサイトスクリプティング

内容

攻撃者が編集者でログインし、スケジュール機能の「ラベル設定」画面で、不正な値を設定することにより、クロスサイトスクリプティングが発生します。

攻撃条件

  • 攻撃者が 編集者以上の権限でログイン可能なこと(* 不正ログインされる脆弱性はありません)
  • スケジュールを編集できること
  • 別の編集者・管理者がスケジュールのラベル設定画面を閲覧すること

影響を受けるバージョン

  • a-blog cms Ver. 3.1.11 以下のバージョン (Ver.3.1.x系)
  • a-blog cms Ver. 3.0.31 以下のバージョン (Ver.3.0.x系)
  • a-blog cms Ver. 2.11.60 以下のバージョン (Ver.2.11.x系)
  • a-blog cms Ver. 2.10.52 以下のバージョン (Ver.2.10.x系)
  • a-blog cms Ver. 2.9.x 以下のバージョン(フィックスバージョンはありません

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

以下ファイルの修正をしてください。

php/ACMS/GET/Admin/Schedule/Labels.php: 36行目付近

修正前

$Tpl->add('label:loop', array(
    'sort'  => $sort,
    'name'  => isset($_label[0]) ? $_label[0] : '',
    'key'   => isset($_label[1]) ? $_label[1] : '',
    'class' => isset($_label[2]) ? $_label[2] : '',
    )
);

修正後

$Tpl->add('label:loop', array(
    'sort'  => $sort,
    'name'  => isset($_label[0]) ? $_label[0] : '',
    'key'   => isset($_label[1]) ? $_label[1] : '',
    'classStr' => isset($_label[2]) ? $_label[2] : '', // この行を修正 class => classStr
    )
);

ablogcms/themes/system/admin/schedule/edit-label.html: 74行目付近

修正前

<input type="text" name="schedule_label_class[]" value="{class}" class="acms-admin-form-width-full" />

修正後

<input type="text" name="schedule_label_class[]" value="{classStr}" class="acms-admin-form-width-full" /> <!-- class => classStr に変更 -->

CMSバージョンアップによる対応

各マイナーバージョン毎にフィックスバージョンがリリースしております。 「影響を受けるバージョン」 よりも新しいフィックスバージョンにアップデートを行なってください。

フォーム機能(テンプレート指定)のディレクトリ・トラバーサル

内容

攻撃者が編集者以上でログインし、フォーム設定を不正な値に設定し、実際にフォームで送信することで、 フォームのログ表示に任意のファイルの情報が表示されるディレクトリ・トラバーサルの脆弱性が発生します。

攻撃条件

  • 攻撃者が 編集者以上の権限でログイン可能なこと(* 不正ログインされる脆弱性はありません)
  • テンプレートにフォーム機能が設置されていること . 攻撃者がフォームのログを確認できること

影響を受けるバージョン

  • a-blog cms Ver. 3.1.11 以下のバージョン (Ver.3.1.x系)
  • a-blog cms Ver. 3.0.31 以下のバージョン (Ver.3.0.x系)
  • a-blog cms Ver. 2.11.60 以下のバージョン (Ver.2.11.x系)
  • a-blog cms Ver. 2.10.52 以下のバージョン (Ver.2.10.x系)
  • a-blog cms Ver. 2.9.x 以下のバージョン(フィックスバージョンはありません

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

フォームの設定を変更されないように以下3つのファイル変更を行います。

  • php/ACMS/POST/Form/Update.php
  • php/ACMS/POST/Form/Insert.php
  • php/ACMS/POST/Form/Duplicate.php

各3つのファイルの「postメソッド」の先頭に「die();」を挿入してフォームを作成・更新・複製できないようにします。

public function post()
{
    die();
    ...

CMSバージョンアップによる対応

各マイナーバージョン毎にフィックスバージョンがリリースしております。 「影響を受けるバージョン」 よりも新しいフィックスバージョンにアップデートを行なってください。

最後に

この度はご迷惑をおかけしてしまい大変申し訳ございません。
該当する問題がありましたら、お早めにバージョンアップのご検討をお願いいたします。 また、迅速にご報告いただいたユーザーの皆さま、誠にありがとうございました。

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

本件に関するお問い合わせ先

本件についてご不明点などありましたら以下のお問い合わせよりご連絡ください。

有限会社アップルップル
メールアドレス:info@a-blogcms.jp
お問い合わせフォーム:https://www.a-blogcms.jp/contact/

【重要なお知らせ】Ver. 3.1.14 〜 Ver. 3.1.33 で発見された脆弱性について


概要

Ver. 3.1.14 〜 Ver. 3.1.33 のバージョンで、脆弱性が発見されました。 クリティカルな問題になりますので、大変お手数ですが該当バージョンのお使いの方は以下対応をお願いいたします。

該当するバージョン

  • Ver. 3.1.14 〜 Ver. 3.1.33

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

該当バージョンをお使いで、アップデートがすぐ難しいという方はバージョンにあったパッチを以下よりダウンロードして適応をお願いします。

適応ファイル

  • php/main.php

パッチダウンロード

CMSバージョンアップによる対応

Ver. 3.1.34 が 2024/12/25 にリリースされています。このバージョンにアップデートすることで、今回の問題に対応できます。

この度はご不便をおかけしてしまい大変申し訳ございませんでした。

本件に関するお問い合わせ先

本件についてご不明点などありましたら以下のお問い合わせよりご連絡ください。

有限会社アップルップル
メールアドレス:info@a-blogcms.jp
お問い合わせフォーム:https://www.a-blogcms.jp/contact/