[緊急警告] HAXcms Node.js版に認証不要のCritical脆弱性!フロントエンド開発者も要確認
HAXcms Node.js版に認証不要の「Critical」脆弱性、その深刻さとは?
HAXcmsのNode.js版バックエンドに、認証なしでウェブサイトを完全に掌握されてしまう「GHSA-6c8g-9hfh-pq5h (CVE-2026-46395)」という極めて危険な脆弱性が発見されました。これは深刻度「Critical」と評価されており、管理者パスワードの強度に関わらず影響を受けるため、HAXcmsのNode.js版を利用中のフロントエンド開発者や運用担当者は、即座に対応が必要です。
脆弱性のメカニズム:秘密鍵が丸見えになる二重のバグ
この脆弱性の根源は、セキュリティ処理を行う`hmacBase64()`という関数に潜んでいました。この関数は、本来システム内部でのみ保持されるべき「秘密鍵(プライベートキー)」を、誰でも簡単に盗み出せる状態にしてしまっていたのです。具体的には、以下の二つのバグが組み合わさって悪用を可能にしていました。
一つ目は、本来ランダムな値で生成されるべき秘密鍵が、常に「0」という固定値として使われていた点です。そして二つ目の致命的なバグは、その生成された結果の末尾に、**本来決して公開されてはならない実際の秘密鍵そのもの**がそのまま付加されてしまっていたことです。これにより、システムが生成する認証トークン(JWTなど)には、無意味なデータに続けて「本物の秘密鍵」がそのまま含まれることになりました。
さらに問題なのは、この秘密鍵を含むトークンが、`/system/api/connectionSettings`という特定のURLにアクセスするだけで、**認証なしで誰でも取得できてしまう**点です。攻撃者はたった1回のHTTPリクエストで秘密鍵を盗み出し、その鍵を使って自分自身を管理者と偽る「偽の認証トークン(JWT)」を自由に生成できてしまいます。
結果として、攻撃者は管理者として、サイトのコンテンツの変更、ファイルのアップロード、さらにはサイト自体の削除といった、あらゆる操作を完全に行える状態になります。あなたがどんなに複雑で強力な管理者パスワードを設定していても、この脆弱性の前では無意味になってしまうのです。しかも、このような不正なアクセスは通常のログインログには記録されにくいため、乗っ取られても気づきにくいという、二重の危険性があります。
フロントエンド開発者への影響と重要性
HAXcmsをNode.js環境で利用し、そのフロントエンド開発やコンテンツ管理に携わっているエンジニアの皆さんにとって、この脆弱性は見過ごせません。サイトのコンテンツが書き換えられるだけでなく、不正なスクリプトが埋め込まれたり、個人情報などの重要データが漏洩したりするリスクがあります。また、あなたの開発・運用するサイトが不正な活動の踏み台にされる可能性もゼロではありません。幸いなことに、この脆弱性はPHP版のHAXcmsには影響しないことが確認されていますのでご安心ください。
今すぐ取るべき対応策
HAXcmsのNode.js版をご利用の場合は、ベンダーが提供する最新の修正パッチを速やかに適用してください。この対応が、あなたの管理するウェブサイトとユーザーの安全を守る上で最も重要です。PHP版のHAXcmsをご利用の場合は、この脆弱性の影響を受けませんので、特に追加の対応は不要です。
さいごに
フロントエンド開発とバックエンドは密接に連携しており、特にHAXcmsのようなCMSでは、どちらか一方の脆弱性がサイト全体に壊滅的な影響を及ぼすことがあります。このようなCriticalな脆弱性は常に新しいものが発見されるため、利用しているライブラリやフレームワーク、CMSの脆弱性情報を日頃からチェックし、最新の状態を保つことが、現代のウェブ開発者にとって不可欠な責務と言えるでしょう。