今週(9/21〜9/27)は、WordPressプラグイン「The Events Calendar」の深刻な脆弱性が話題になりました。コメントを1件送るだけでサーバー上のコマンドを実行されうるもので、Wordfenceの無料版にも9月21日に防御ルールが配られています。9月22日には予告どおりChrome 154が出ました。
読む章の目安です。WordPressサイトを持っているなら1章を最優先で。CSSを書くなら2章、プライバシーまわりの動向は3章、デザインは4章です。AIツールとフレームワークは、今週は制作に直結する大きな発表がありませんでした。
The Events Calendar に未認証RCE — コメント1件でサーバーを取られる
イベント管理プラグイン「The Events Calendar」に、深刻度CVSS 9.8の脆弱性が2件見つかりました。どちらもログイン不要で、細工したコメントをイベントページに送るだけでリモートコード実行に至ります。 利用サイトは60万件以上とされています。
出典: SecurityWeek — Unauthenticated RCE Flaws Could Expose WordPress Sites to Takeover / SC Media — Flaws in The Events Calendar plugin enable unauthenticated RCE

原因はテンプレートの作りにあります。 イベント単体ページのテンプレートが、コメント欄も含めたページ全体をGutenbergのブロックパーサに通していたため、匿名の訪問者が書いたコメントまで解析対象に入っていました。そこへ細工した内容を送ると、PHPのオブジェクト注入が成立します。CVEは CVE-2026-78006 と CVE-2026-78159 の2件で、それぞれ別の攻撃経路です。
時系列は次のとおりです。 開発元のStellarWPが8月25日に1つ目、9月10日に2つ目を修正し、完全に直っているのは 6.17.4.1 です。Wordfenceの有料ユーザーには先に防御ルールが配られ、無料版には9月21日に配布されました。発見にはWordfenceのAI調査エージェント「Argus」が使われたと説明されています。
成立条件は「公開中のイベントページでコメントを受け付けていること」です。 裏を返すと、イベントページのコメントを閉じていれば、この経路は塞がっています。とはいえ根本解決は更新なので、6.17.4.1 未満なら今日中に上げてください。 使っていないのに有効化したままなら、停止して削除するのがいちばん確実です。
先週はWordPress本体の段落整形まわりでコメント経由のXSSが直り、今週はプラグインでコメント経由のRCEです。 2週続けて入口がコメント欄でした。受け付ける必要がないサイトなら、この機会に閉じてしまうのも手だと思います。
💡 今すぐ試せる: 管理画面のプラグイン一覧で The Events Calendar のバージョンを確認する。6.17.4.1 未満なら更新、使っていなければ停止・削除。あわせて「設定 → ディスカッション」でコメントの受付範囲を見直す
Chrome 154 公開(9/22)— カルーセルのマーカーをタブとして扱える
9月22日にChrome 154が公開されました。2週間サイクルになって2回目のリリースです。
目を引いたのが scroll-marker-group に2つ目の値が入ったことです。カルーセルの下に並ぶ「●●●」を、これまではナビゲーションのリンク群(links、既定)として扱っていましたが、tabs を指定するとタブUIとして扱われます。 タブとして扱われる場合、タブ移動でマーカー全部を順に通過せず、アクティブなマーカーだけがタブストップになり、左右の矢印キーで切り替えられます。
See the Pen CSSだけのカルーセル — scroll-marker-group と tabs モード by BaseKENT (@basekent) on CodePen.
.carousel {
display: flex;
overflow-x: auto;
scroll-snap-type: x mandatory;
scroll-marker-group: after; /* マーカーの並びを後ろに作る */
}
.slide::scroll-marker {
content: ""; /* content がないと生成されない */
width: 10px; height: 10px; border-radius: 999px;
background: #cbd5e1;
}
.slide::scroll-marker:target-current { background: var(--brand); }
/* Chrome 154〜: 役割を選べる */
.carousel { scroll-marker-group: after tabs; }
カルーセルのインジケータは、これまでJavaScriptで現在位置を管理して書いていた部分です。 :target-current で「いま表示中のマーカー」を指定できるので、表示位置の追跡もCSS側に任せられます。デモではマーカーをクリックすると該当スライドまでスクロールしますが、JavaScriptは1行も書いていません。
links と tabs の違いはキーボード操作に出ます。 スライドが10枚あるとき、リンク群だとタブキーで10回通過することになります。タブとして扱えば、タブキーは1回で抜け、中の移動は矢印キーになります。スライド数が多いカルーセルほど、tabs を指定する意味があります。
このほか、下線の位置を調整する text-decoration-inset、Iterator.includes()、ポップオーバーやダイアログが意図せず閉じてしまう問題の改善などが入りました。
💡 今すぐ試せる: 自作カルーセルのインジケータを scroll-marker-group に置き換えられるか試す。未対応ブラウザでは●が出ないだけで、横スクロールのカルーセルとしては動くので、段階的に入れられる
Chrome 154 の Private Verification Tokens — プライベートモードのCAPTCHAを減らす
同じChrome 154で、Private Verification Tokens(PVT) のオリジントライアルが始まりました。通常のブラウジングで「この利用者は怪しくない」と確認できた信頼を、プライベートブラウジングに持ち込むための仕組みです。
通常モードでトークンを発行しておき、プライベートモードではそれを使う。受け取る側は「正規の利用者だ」とだけ分かり、誰なのかは分からない、という低エントロピーな設計とされています。狙いはCAPTCHAの削減です。
プライベートモードで何度もCAPTCHAを出される、という体験の改善が目的ですが、制作側の関心は別のところにあると思っています。 ボット判定のためにCAPTCHAを置いていたフォームは、将来的に判定の材料が増える可能性があります。今はオリジントライアルの段階なので様子見で構いませんが、問い合わせフォームの離脱率をCAPTCHAのせいだと考えている場合は、選択肢が増えるかもしれないという頭の置き方でいいと思います。
💡 今すぐ試せる: 自サイトのフォームでCAPTCHAを出している箇所を洗い出し、実際にどれくらい弾けているか(送信数と迷惑メール数)を記録しておく。判定方法が変わったときに比較できる
Figma のオートレイアウトに縦方向のラップ(9/25)
9月25日、Figmaのオートレイアウトで縦方向のフローでもラップができるようになりました。
これまでラップは横方向のフローでしか使えず、縦に積んだ要素があふれたときは手で配置し直すしかありませんでした。CSSでいえば flex-direction: column に flex-wrap: wrap を効かせた状態にあたります。
8月第4週号で Around / Evenly が入り、今回の縦ラップで、オートレイアウトとFlexboxの対応関係がまた一段揃いました。 デザインデータの構造がCSSに寄っていくほど、受け取った側が実装に翻訳する手間は減ります。縦ラップは高さの指定が要る点もCSSと同じなので、デザイン側で高さが決まっていないままラップを使うと、実装時に「ここは何を基準に折り返すのか」の確認が発生します。そこだけ注意です。
💡 今すぐ試せる: 縦に並べた要素を手作業で2列に割っているデザインデータがあれば、縦ラップで組み直せないか試す
今週のひとこと
コメント欄が2週続けて攻撃の入口になりました。訪問者から自由に文字を受け取る場所は、それだけで攻撃面になるということだと思います。使っていないコメント欄は閉じる、使うなら本体もプラグインも更新を切らさない。そのくらいの整理でだいぶ変わります。来週は9月29日(火)にFirefox 157が控えています。



