Helix3テンプレートフレームワーク – 複数の重大な脆弱性
安全なバージョン: Helix3 3.1.2以降 · via JoomShaper (account required)
ひと目でわかる基本情報
plg_ajax_helix3)どのような脆弱性ですか?
Helix3は、JoomShaperが提供する従来型のテンプレートフレームワークです。システムプラグインと、それに付属するAJAXプラグイン(plg_ajax_helix3)として動作します。このAJAXプラグインに複数の脆弱性が見つかりました。いずれもJoomla標準のcom_ajaxエンドポイント経由で、認証なしに呼び出せてしまいます。
報告されている主な内容は次のとおりです。認証なしでのファイルの書き込み(saveアクションを悪用したパス操作)、任意のファイルの削除(remove/remove_image)、テンプレート設定の上書き(import)、そしてログイン後にはコード実行に至る権限昇格です。権限昇格は、画像アップロード機能が.phpファイルまで受け付けていたことによるものです。このほか、格納型・反射型のXSSと、ソースコードに残されたGoogle FontsのAPIキーも指摘されています。
修正版は2026年6月29日にHelix3 3.1.1として公開され、その後3.1.2がリリースされています。更新する際は、そのまま3.1.2へ上げてください。CVE番号は公表の時点で申請済みでしたが、まだ割り当てられていませんでした。報告者はmySites.guruのPhil Taylor氏です。
自分のサイトは影響を受けますか? – 確認方法
- 管理画面を開く
Joomlaの管理画面にログインします(URLの末尾が
/administratorのページです)。 - プラグイン一覧を開く
システム›プラグインを開きます(拡張機能›管理›管理からでも開けます)。
- 「Helix3」で絞り込む
Helix3または「System – Helix3 Framework」で検索し、表示されているバージョン番号を確認します。 - バージョンを判定する
表示されたバージョンが3.1.2より古い場合は更新してください。3.1.1より前のバージョンは、いつ攻撃を受けてもおかしくない状態です。
脆弱性を塞ぐ手順
- 更新画面を開く
システム›更新›拡張機能を開き、更新を確認をクリックします。
- Helix3を更新する
一覧からHelix3を選び、更新をクリックします。バージョン3.1.2はJoomShaperの更新サーバーから配信されます。
- 更新できたか確認する
システム›プラグインで、3.1.2(またはそれ以降)と表示されていることを確認します。
公式の入手先: via JoomShaper (account required). 必要な最低バージョン: Helix3 3.1.2以降.
すでに攻撃を受けている場合は?
.htaccessなど)、テンプレートスタイルの設定値に生じた説明のつかない変更です。判断がつかないときは、専門業者にサイトの駆除を依頼し、すべてのパスワードを変更してください。よくある症状:挿入された「Custom Javascript」によるサイト改ざん
この脆弱性では、次のような兆候がよく見られます。攻撃者はHelix3のテンプレートオプション、具体的にはCustom Code›Custom Javascriptの入力欄に、悪意のあるJavaScriptを直接書き込みます。ページを開くとこのコードがページ全体を上書きし、改ざん画面が表示されます。たとえば「Hacked by trenggalek6etar」「Hacked by antonkill」といった「Hacked by …」のメッセージです。
document.addEventListener("DOMContentLoaded", function(){
document.title = "hacked by trenggalek6etar";
document.body.innerHTML =
'<div style="position:fixed;inset:0;'
+ 'background:#0a0a0a;z-index:2147483647">'
+ ' … HACKED BY trenggalek6etar … '
+ '</div>';
});
確認方法:管理画面の拡張機能›テンプレート›スタイル›(お使いのHelix3スタイル)›Custom Code›Custom Javascriptを開きます。document.title = "hacked by…"やdocument.body.innerHTML = …のような身に覚えのないコードがあれば、サイトは侵害されています。そのコードを削除し、Helix3の更新で原因をふさぎ、すべてのパスワードを変更してください。
サイトの復旧でお困りですか。対応できる専門家はJoomlaサービスプロバイダーディレクトリで探せます。
データベースのバックアップからテンプレートオプションを復元する
Helix3は、ロゴ・配色・レイアウト・カスタム CSS/JSなどすべてのテンプレートオプションを、params列にJSON形式で保存します。この列があるのはテーブル#__template_stylesで、スタイル1件につき1行です。改ざんや更新の失敗、誤ったリセットで設定が失われた場合は、テーブル全体ではなくこのparamsの値だけをデータベースのバックアップから書き戻します。
- 有効なスタイルを特定する
フロントエンドのスタイルは
client_id = 0です。そのうち有効なスタイルはhome = 1になっています。そのIDを控えておきます。 - バックアップ側の行を探す
ダンプファイルの
#__template_stylesから、テンプレート名が同じ行を見つけます。 - 現在の値を退避する
先に、稼働中の行の
paramsの値をコピーして保管します。 - paramsを上書きする
その1行の
paramsだけを、バックアップの値に置き換えます。 - 確認する
トップページが正常に表示され(HTTP 200)、オプションが元に戻っていることを確認します。
SELECT id, template, home FROM #__template_styles WHERE client_id = 0;
UPDATE #__template_styles SET params = '<バックアップのJSON>' WHERE id = 12;
古いparamsの値を保管してあれば元に戻せます。また、データベースを変更する前のバックアップは必須です。
出典 & 参考リンク
- 解析と変更履歴に対する指摘 – mySites.guru(Phil Taylor)技術的な詳細を含む最初の報告
- JoomShaper(開発元)更新はJoomlaの更新機能、またはJoomShaperのアカウントから入手できます
最終的には、各開発元の公式発表が優先されます。本ページは、公開されている情報を中立的な立場で整理したものです。
関連する脆弱性
同じ種類の脆弱性が見つかっている他の拡張機能です。お使いのサイトに導入されていないか確認してください。
このサイトのサポーター
htprotect.orgは、特定の開発元に依存しない無料の情報サイトです。運営は以下の皆さまに支えられています。

ドイツのJoomla専門ホスティング事業者 – 活発なコミュニティサポートを行い、JCEの脆弱性を狙った最初の攻撃を発見しました。
fc-hosting.deJoomlaとWordPressサイトの改ざん復旧、保守、セキュリティ対策を専門としています。
website-bereinigung.deこのプロジェクトを支援する
ホスティングやJoomla関連のサービスを運営されている方へ – htprotect.orgを支援し、サポーターとしてこのページに掲載されませんか。どのようなご支援も、影響を受けた方々により早く警告を届け、より早く保護することにつながります。
掲載は不要で、そっと支援したいという方へ。ささやかなカンパも同じようにありがたくお受けしています。
Berlinの情報セキュリティコンサルティング – 中小企業向けにセキュリティ診断、リスクマネジメント、ISO 27001対応を支援します。
isari-consult.de