トップ/記事一覧/baserCMSに脆弱性12件、追えるのは1件だけ CVE-2026-65875
basercms-cve-cover-ja

baserCMSに脆弱性12件、追えるのは1件だけ CVE-2026-65875

2026年7月30日、国産CMSのbaserCMSが脆弱性12件を一度に公表しました。うち3件は最高ランクの緊急で、ログインなしでデータベースを覗けるものも含まれます。ところが12件中11件は番号で調べても情報が出てきません。Dependabotの警告も飛ばず、日本語の報道もゼロ。対処は5.2.10か5.3.0への更新です。

ニュース2026年8月3日公開 本日更新
目次
この記事のポイント

2026年7月30日、国産CMSのbaserCMSが脆弱性12件を一度に公表しました。うち3件は最高ランクの緊急で、ログインなしでデータベースを覗けるものも含まれます。ところが12件中11件は番号で調べても情報が出てきません。Dependabotの警告も飛ばず、日本語の報道もゼロ。対処は5.2.10か5.3.0への更新です。

2026年7月30日、日本製のオープンソースCMS「baserCMS」の開発元が、12件の脆弱性を一度に公表しました。うち3件は開発元自身が最高ランクの「Critical(緊急)」と評価しており、ログインしていない相手がデータベースの中身を取り出せるもの、サーバー上で任意のプログラムを実行できるものが含まれます。影響を受けるのはバージョン5.0.0から5.2.8までで、修正版は同日公開された5.2.10と5.3.0です。

ただ、この記事で本当に書きたいのは12件の中身のほうではありません。この12件が、脆弱性を調べる標準的な手段のほとんどに載っていないことです。

脆弱性には通常、CVE番号という世界共通の管理番号が振られます。番号さえ分かれば、米国政府が運営するNVDや、番号を管理しているCVE.orgで詳細を引けます。ところが今回の12件は、1件はそもそもCVE番号が振られておらず、番号が振られた11件のうち10件は、CVE.orgで検索しても「そのような記録は存在しない」と返ってきます。実際に11件すべてを1件ずつ問い合わせて確認しました。追いかけられるのは、たった1件だけです。

さらに、12件すべてがGitHubの脆弱性データベース(グローバル版)に収録されていません。これは意味が重く、baserCMSを使っているプロジェクトでGitHubの自動通知機能(Dependabot)を有効にしていても、この12件については警告が飛んできません。2026年3月に公表された9件はきちんと収録されているので、仕組みが壊れているわけではなく、今回の分だけが抜けています。

そして、日本の脆弱性情報ポータルであるJVNに載っているのは12件中1件のみ。日本語の報道は、8月3日時点で見つかりませんでした。日本製のCMSの、日本語で書かれた告知が、日本語圏でほとんど可視化されていないという状態です。

12件の一覧

まず全体を並べます。深刻度は開発元がGitHub上で付けた評価です。「CVEの状態」の列は、8月3日時点でCVE.orgに記録が存在するかどうかを実際に問い合わせた結果です。

CVE番号内容深刻度ログインCVEの状態報告者
番号なしデータベース操作+
プログラム実行
緊急記載なし未採番DhiyaneshGeek
CVE-2026
-62950
ブログタグ経由の
データベース操作
緊急記載なし記録なしtuannm-1876
CVE-2026
-59872
管理APIの並び替え
経由のDB操作
緊急記載なし記録なしsdrk3nD
CVE-2026
-62951
ブログタグAPI経由の
DB操作
不要記録なしn11-Ryoma
CVE-2026
-62956
問い合わせフォーム
経由のDB操作
記載なし記録なしtuannm-1876
CVE-2026
-62969
DB復元機能経由の
プログラム実行
記録なしtoratako
CVE-2026
-62954
テーマ編集経由の
ファイル書き込み
記録なしvalmet083
CVE-2026
-62955
3月の修正の
すり抜け
記録なしtuannm-1876
arpitjain099
CVE-2026
-62952
PHPの場所指定経由の
プログラム実行
記録なしsmitocaru
CVE-2026
-62953
アップロード名経由の
ファイル設置
記録なしsmitocaru
CVE-2026
-65875
CSV書き出し経由の
数式の埋め込み
記載なし公開済みVCSLab
CVE-2026
-63012
管理APIの
権限確認の回避
記録なしtoratako
arpitjain099

深刻度の内訳は緊急3件・高8件・中1件です。「ログイン」の欄に「記載なし」と書いたものは、公表文に必要な権限がはっきり書かれていないという意味で、不要だという意味ではありません。分からないところは分からないままにしています。

影響バージョンについても補足が必要です。開発元の公式告知は「5.0.0から5.2.8まで」としていますが、GitHub上の12件の記載はばらばらで、「5.2.8」「5.2.3以下」「5.2.x(最新版)」「5.2.2」が混在しています。報告者ごとに検証したバージョンが違うためと思われます。判断に使うなら、範囲が最も広い公式告知の「5.0.0から5.2.8まで」を見るのが安全です。

誰が狙い、何をして、何が失われるか

CMSの脆弱性を最初に踏みに来るのは、公開されたばかりの穴の場所を読んで、その条件に合うサイトを機械的に探し回るプログラムです。今回のように、どのファイルのどの機能に問題があるかまで公表されると、それを読んだ側が探索プログラムを組むのは難しくありません。baserCMSは管理画面のURLの形や配布されているテーマのファイル名に特徴があるため、外から「これはbaserCMSだ」と見分けること自体は容易です。

当たりを引いた相手がやるのは、サイトの裏側にあるデータを引き抜くか、サーバーの上に自分のプログラムを置くかのどちらかです。今回の12件には両方が揃っています。データベースへの不正な問い合わせが5件、サーバー上でのプログラム実行やファイル設置につながるものが4件。特にログイン不要とされているブログタグAPIの1件は、条件が何も要らない分だけ手を出されやすい部類です。

失うものは、サイトの性格によって変わります。baserCMSは問い合わせフォームの機能を標準で持ち、送信内容をデータベースに溜めます。企業サイトなら、フォームから届いた氏名・電話番号・相談内容がまとめて持ち出される可能性があります。今回はその問い合わせデータを扱う部分にも1件(CVE-2026-62956)含まれています。運営する側では、サーバーにプログラムを置かれると、そこを踏み台に詐欺サイトへの誘導や迷惑メールの送信が始まり、検索結果からの除外やドメインの信用失墜まで進みます。復旧には数日から数週間かかります。

緊急とされた3件

12件のうち、開発元が最高ランクを付けた3件から見ていきます。

CVE番号が振られていない1件: データベース操作とプログラム実行

12件のうちこれだけ、CVE番号が存在しません。管理用のGHSA-cg65-f2m7-9fqjという識別子しかありません。中身はデータベース処理を担う部分の欠陥で、不正な問い合わせの実行と、任意のプログラムの実行の両方につながるとされています。開発元の評価は「緊急」で、報告者はDhiyaneshGeek氏です。

番号がないということは、脆弱性の管理ツールでも、資産管理の台帳でも、この1件を指し示す方法がないということです。「baserCMSの脆弱性に対応済みか」を番号で照合する運用をしている組織では、この1件だけが必ず抜け落ちます。12件のうち最も危険な部類のものが、最も追跡しにくい状態に置かれています。

CVE-2026-62950: ブログのタグ機能からデータベースを操作できる

ブログのタグを扱う処理で、並び替えの指定に使われる値をそのままデータベースへの問い合わせ文に組み込んでいました。この形の欠陥は「SQLインジェクション」と呼ばれ、開発者が意図していない問い合わせをデータベースに実行させられます。会員情報、問い合わせの内容、非公開の記事など、そのサイトのデータベースに入っているものは原則として取り出せる状態です。開発元の評価は10点満点中9.1で「緊急」。報告者はtuannm-1876氏です。(開発元のアドバイザリ GHSA-h68w-vjc3-82wv

CVE-2026-59872: 管理APIの並び替え指定から同じことができる

管理用のAPIで、並び順や絞り込み条件として渡された値を検証しないままデータベースへの問い合わせに使っていました。前項と同じ種類の欠陥が、別の場所にもあったということです。開発元の評価は「緊急」、報告者はsdrk3nD氏。今回の12件では、この形の欠陥が合計5件見つかっています。一箇所の書き間違いではなく、値の扱い方が全体として揃っていなかったことを示しています。(開発元のアドバイザリ GHSA-w8m6-r35w-9xrq

残る9件

CVE-2026-62951: ログインなしで届くブログタグAPI

12件のうち、公表文に「ログイン不要」と明記されている唯一の件です。ブログタグのAPIで、並び替えの指定からデータベースへの不正な問い合わせが通ります。認証の扱いにも問題があるとされており、外から条件なしで叩ける分、今回の中では最も自動探索の対象になりやすい1件です。報告者はn11-Ryoma氏。(開発元のアドバイザリ GHSA-vppr-96xg-c6fh

CVE-2026-62956: 問い合わせフォームのデータを扱う部分

メールフォームから届いたメッセージを扱う処理で、並び替えの指定から同じくデータベースを操作できます。企業サイトで最も個人情報が集まる場所がここです。報告者はtuannm-1876氏。(開発元のアドバイザリ GHSA-pqpg-933x-f4c5

CVE-2026-62969: データベース復元機能からのプログラム実行

バックアップからデータベースを復元する機能を悪用すると、サーバー上で任意のプログラムを実行できます。管理権限が必要ですが、成功すればサーバーそのものを掌握されます。報告者はtoratako氏。(開発元のアドバイザリ GHSA-5hvm-279m-gg7r

CVE-2026-62954: テーマ編集からファイルを書き込める

テーマのファイルを扱うAPIで、保存先の指定を検証していませんでした。本来書き込めない場所にファイルを置け、置いたものがプログラムとして動く場所であれば、そのまま乗っ取りにつながります。報告者はvalmet083氏。(開発元のアドバイザリ GHSA-26mh-9qwx-cxvq

CVE-2026-62955: 3月に直したはずの穴が塞がりきっていなかった

今回の12件で、性質としていちばん重いのはこれかもしれません。2026年3月に公表・修正されたCVE-2026-30940の対策が、迂回できることが分かったというものです。ファイルの実際の場所を確かめる処理の使い方に穴があり、3月の修正を通り抜けられます。報告者はtuannm-1876氏とarpitjain099氏。(開発元のアドバイザリ GHSA-2pj4-v76f-wjvx

3月の修正を適用したから安全、と考えていた運用者にとっては前提が崩れる話です。「対応済み」の記録が残っていても、実際には塞がっていなかったということが起こり得ます。

CVE-2026-62952: PHPの場所指定を使った任意プログラムの実行

PHPの実行ファイルの場所を指定する値を検証しておらず、そこに別のプログラムを指定することで任意の実行ファイルを動かせます。報告者はsmitocaru氏。(開発元のアドバイザリ GHSA-vq8m-9cq4-5qh2

CVE-2026-62953: アップロードするファイル名で場所を指定できる

アップロード時のファイル名を十分に整えていないため、名前の中に階層を遡る記述を混ぜることで、意図しない場所にファイルを置けます。前項と同じ報告者のsmitocaru氏によるものです。(開発元のアドバイザリ GHSA-h26f-xjhf-995v

CVE-2026-65875: 12件で唯一、公的なデータベースから追える1件

CSV形式でデータを書き出す機能で、入力された値をそのまま書き出していました。書き出したファイルを表計算ソフトで開くと、値の先頭に置かれた記号のせいで中身が数式として解釈され、実行されてしまいます。攻撃を受けるのはサイトのサーバーではなく、ファイルを開いた担当者のパソコンです。報告者はVCSLab(Viettel Cyber Security)のLe Nguyen Anh Quan氏・Do Ich Nam氏・Nguyen Ngoc Minh氏。(開発元のアドバイザリ GHSA-96gq-h93q-hhq2

この1件だけがJPCERT/CCの調整を経ており、JVNVU#94952030として公表され、CVE.orgにもNVDにも記録があります。12件のうち唯一、番号で調べれば情報にたどり着ける件です。深刻度でいえば、12件の中で上位ではありません。

CVE-2026-63012: 管理APIの権限確認をすり抜けられる

管理用APIのすべての入口で、認証の仕組みの切り替わりを悪用すると権限の確認を回避できます。開発元の評価は12件で唯一の「中」ですが、影響範囲が「管理APIの全エンドポイント」と広い点は見ておく価値があります。報告者はtoratako氏とarpitjain099氏。(開発元のアドバイザリ GHSA-wgvx-x5g3-9v29

番号で調べても、ほとんど何も出てこない

ここからが本題です。今回の12件は、脆弱性を追いかけるための標準的な経路のほとんどから抜け落ちています。実際に確かめた結果を並べます。

調べる場所12件のうち載っている数確認方法
開発元のGitHub12件GitHub APIで全件取得
開発元の公式サイト12件セキュリティ情報ページ
CVE.org
(番号の管理元)
1件11番号を個別に照会
→10件が「記録なし」
NVD
(米政府の脆弱性DB)
1件同上
GitHubの脆弱性DB
(Dependabotの情報源)
0件12件すべて「記録なし」
JVN
(日本のポータル)
1件JVNVU#94952030 のみ
日本語の報道0件8月3日時点

CVE番号が振られているのに記録が存在しない、という状態について補足します。CVE番号は、実際に公開される前に「予約」しておくことができます。今回の10件はその予約段階のまま止まっていて、番号だけが開発元の告知に書かれ、記録の中身がまだ公開されていない状態です。いずれ公開される見込みはありますが、8月3日時点では引けません。

実務上いちばん影響が大きいのは、GitHubの脆弱性データベースに1件も載っていないことだと考えます。ここはDependabotという自動通知機能の情報源で、composerで管理しているPHPのプロジェクトなら、危険なバージョンを使っていると自動で警告が飛んできます。その警告が、今回の12件については飛びません。

仕組み自体が壊れているわけではないことも確かめました。2026年3月に公表された9件は、きちんとグローバル版に収録されています。今回の12件はGitHub上の開発元のページには載っているものの、全体のデータベースに引き上げられていない、という状態です。手順の途中で止まっているように見えます。

つまり、自動的に気づける経路がほぼ塞がっています。気づくには、開発元のGitHubか公式サイトを自分で見に行くしかありません。この構図は、依存している部品の危険を自分で数えに行かなければ分からないという、OSSサプライチェーン スキャナーで扱っている問題そのものです。

なお、今回の12件は8月3日時点でCISAの悪用確認済み脆弱性カタログには登録されていません。baserCMSは過去に一度も登録されたことがなく、実際に攻撃されているという報告も見つかりませんでした。

今やること

baserCMS 5系を使っているなら、5.2.10か5.3.0に上げてください。どちらも7月30日に公開されています。5.3.0はPHP 8.5とCakePHP 5.2に対応した機能追加版で、5.2.10は5.2系のまま修正だけを取り込んだ版です。大きく作りを変えたくないなら5.2.10で足ります。

ここでひとつ、注意すべき点があります。GitHub上の12件の記載では、修正版が「5.3.0」としか書かれておらず、5.2.10がどこにも出てきません。機械的にこの情報を読む道具を使っている場合、5.2.10に上げても「まだ危険なバージョンだ」と判定される可能性があります。5.2.10で修正されていることは、開発元のリリースとフォーラムの告知で確認できます。

更新後の動作確認は普段より丁寧にしたほうがよさそうです。開発元のフォーラムには、更新後にトークンの検証エラーが出る、テーマが変更できなくなる、といった報告が上がっています。本番に当てる前に、複製した環境で試すことをおすすめします。

加えて、すでに侵入されていないかの確認もしておくべきです。今回はサーバー上にファイルを置ける種類のものが4件含まれています。更新は今後の侵入を防ぐだけで、すでに置かれたファイルは消えません。管理者の一覧に見覚えのないアカウントがないか、テーマやアップロード先のディレクトリに覚えのない.phpファイルが増えていないかを見てください。

最後に。2026年のbaserCMSは、3月に9件、7月に12件と、まとめて公表される形が続いています。次に同じことが起きたときも、自動の通知は当てにできないかもしれません。使っている以上は、開発元のセキュリティ情報ページを定期的に見に行く運用にしておくのが確実です。

参照元

avatar-m-1

堀川 慎

Backend Engineer / AWS / Django / Go