
2025年12月、MITREより「CWE Top 25:2025」が公開されました。本記事では、CWE Top 25 2025年版のうち、WebアプリケーションやAPIに直結する12項目をピックアップし、リスクと診断観点を整理します。
CWE Top 25とは
Webアプリケーションや業務システムを狙った攻撃は年々巧妙化していますが、実は“よく悪用される脆弱性”には一定の傾向があります。限られた工数の中で効果的に対策を進めるには、脆弱性を闇雲に潰すのではなく、被害につながりやすい弱点から優先して対応することが重要です。そこで参考になるのが、MITREが公開している「CWE Top 25」です。CWE(Common Weakness Enumeration、共通脆弱性タイプ)は、ソフトウェアに潜む弱点を体系的に整理したもので、CWE Top 25はその中でも特に危険度が高く、実際の攻撃にもつながりやすい弱点をランキング形式でまとめたものです。開発・運用の現場で「どこから手を付けるべきか」を判断するための指標として活用できます。
CWE Top 25は毎年アップデートされるため、年ごとの傾向を追うことで「長年狙われ続けている脆弱性」や「新たに注目されているリスク」も見えやすくなります。2024年版の内容は過去記事でも解説していますので、あわせてご覧ください。
「【CWE TOP 25 2024年版】にみる新たなセキュリティ脅威と指針」(https://www.sqat.jp/kawaraban/33156/)
CWE Top 25 2025年版
| 順位 | CWE ID | 脆弱性名称 |
|---|---|---|
| 1 | CWE-79 | 入出力の不適切な無害化(クロスサイトスクリプティング(XSS)) |
| 2 | CWE-89 | SQLコマンドの特殊要素の不適切な無害化(SQLインジェクション) |
| 3 | CWE-352 | クロスサイトリクエストフォージェリ(CSRF) |
| 4 | CWE-862 | 認可の欠如 |
| 5 | CWE-787 | 範囲外の書き込み |
| 6 | CWE-22 | 制限ディレクトリへのパス制限不備(パストラバーサル) |
| 7 | CWE-416 | 解放したメモリの使用 |
| 8 | CWE-125 | 範囲外の読み取り |
| 9 | CWE-78 | OSコマンドで使用される特殊要素の不適切な無効化(OSコマンドインジェクション) |
| 10 | CWE-94 | コード生成の不適切な制御(コードインジェクション) |
| 11 | CWE-120 | 入力サイズチェックなしのバッファコピー(古典的バッファオーバーフロー) |
| 12 | CWE-434 | 危険なタイプのファイルのアップロード許可 |
| 13 | CWE-476 | NULLポインター逆参照 |
| 14 | CWE-121 | スタックベースバッファオーバーフロー |
| 15 | CWE-502 | 不適切なデータ逆シリアル化 |
| 16 | CWE-122 | ヒープベースバッファオーバーフロー |
| 17 | CWE-863 | 不適切な認可 |
| 18 | CWE-20 | 不適切な入力検証 |
| 19 | CWE-284 | 不適切なアクセス制御 |
| 20 | CWE-200 | 権限を持たないユーザへの機密情報の漏洩 |
| 21 | CWE-306 | 重要な機能の使用に対する認証の欠如 |
| 22 | CWE-918 | サーバサイドリクエストフォージェリ(SSRF) |
| 23 | CWE-77 | コマンドで使用される特殊要素の不適切な無害化(コマンドインジェクション) |
| 24 | CWE-639 | ユーザ制御キーによる認可バイパス |
| 25 | CWE-770 | 制限やスロットリングなしのリソース割当 |
Web/APIに直結する“狙われやすい12項目”
CWE Top 25 2025年版には、メモリ安全性の弱点など幅広い項目が含まれていますが、脆弱性診断会社の視点で特に注目したいのは、WebアプリケーションやAPIに直結し、実被害につながりやすい脆弱性です。Web/APIは外部からアクセス可能な入口が多く、仕様変更や機能追加も頻繁に発生します。その結果、実装ミスや設計の抜けが生まれやすく、攻撃者にとっても狙いやすい領域になりがちです。ここでは、Top 25のうちWeb/APIに絡む以下の12項目をピックアップし、リスクと脆弱性診断の観点を整理します。
Web/APIで特に重要な12項目一覧
- CWE-79
- CWE-352
- CWE-862
- CWE-22
- CWE-434
- CWE-863
- CWE-20
- CWE-284
- CWE-200
- CWE-306
- CWE-918
- CWE-639
入力・出力の不備(攻撃の入口になりやすい)
CWE-79:クロスサイトスクリプティング(XSS)
コメント欄のような分かりやすい入力欄だけでなく、検索結果、プロフィール、管理画面のメモ欄など「入力した内容が表示される場所」全般が対象になります。XSSが成立すると、セッション情報の窃取によるアカウント乗っ取り、偽画面による情報詐取、管理者権限での操作悪用などにつながる可能性があります。特に管理画面で発生した場合、被害が大きくなりやすい点が特徴です。
脆弱性診断では、入力点の洗い出しに加え、“どこで入力が表示されるか(出力箇所)” を意識して確認します。実装側で「入力チェックをしている」つもりでも、表示時のエスケープが不十分なケースは多く、テンプレートの扱いや出力文脈(HTML/属性/JavaScript)まで含めた確認が重要になります。
SQAT.jpでは過去にもクロスサイトスクリプティングについて、初心者向けの解説記事を公開しています。こちらもあわせてご覧ください。
「クロスサイトスクリプティング(XSS)の脆弱性 -Webアプリケーションの脆弱性入門 1-」(https://www.sqat.jp/tamatebako/27269/)
CWE-20:不適切な入力検証
入力検証不備は、受け取った値が想定どおりかどうかの確認が不足している状態です。一見すると地味な問題に見えますが、WebアプリやAPIでは、入力値がそのままDB検索、権限判定、外部連携、ファイル処理などに渡ることが多く、他の脆弱性の引き金になりやすい“起点”です。特にAPIでは、フォーム入力だけでなくJSON形式のリクエスト、配列やネスト構造、数値・文字列の型違いなど、入力のバリエーションが増えます。その結果、「画面側では弾けているのにAPI直叩きで通ってしまう」「境界値や異常値で想定外の挙動になる」といった事故が起きやすくなります。
脆弱性診断では、正常系だけでなく、境界値・異常系・型違い・過剰な長さ・未定義パラメータなどを含めて入力を揺さぶり、想定外の処理やエラー露出が起きないかを確認します。
リクエスト偽装・処理のすり抜け(攻撃者が「操作」を作る)
CWE-352:クロスサイトリクエストフォージェリ(CSRF)
CSRFは攻撃者が用意したページやリンクを踏ませることで、ユーザ本人が操作したように見えるリクエストが送信され、設定変更や登録情報更新などが実行されてしまう可能性があります。特に危険なのは、パスワード変更、メールアドレス変更、権限変更、退会処理など「状態を変える操作」です。攻撃が成立しても操作主体が正規ユーザに見えるため、被害に気づきにくい点もCSRFの厄介なところです。
脆弱性診断では、重要操作にCSRFトークンが実装されているか、SameSite属性が適切か、Origin/Refererの扱いがどうなっているかなどを確認します。SPAやAPI中心の構成では「CSRFは関係ない」と思われがちですが、認証方式によっては成立するため、設計前提から整理して確認することが重要です。
SQAT.jpでは過去にもクロスサイトリクエストフォージェリについて、初心者向けの解説記事を公開しています。こちらもあわせてご覧ください。
「クロスサイトリクエストフォージェリ(CSRF/XSRF)とは?狙われやすいWebアプリケーションの脆弱性対策」(https://www.sqat.jp/tamatebako/12249/)
CWE-918:サーバサイドリクエストフォージェリ(SSRF)
SSRFは、サーバ側が外部へアクセスする仕組みを悪用され、攻撃者が任意の宛先にリクエストを送らせる脆弱性です。たとえば「指定したURLから画像を取得する」「外部APIのURLを登録する」といった機能がある場合、入力値の制御が不十分だとSSRFにつながる可能性があります。SSRFが危険なのは、外部から直接アクセスできない内部ネットワークや管理系サービスに到達できてしまう点です。環境によっては、クラウドのメタデータ(認証情報)取得など、重大な侵害につながるケースもあります。
脆弱性診断では、URL入力や外部通信の機能を洗い出し、許可リスト制御があるか、名前解決やリダイレクトがどう扱われるか、内部アドレス(localhostやプライベートIP)へのアクセスが可能かなどを確認します。外部連携機能は便利な反面、攻撃の入口になりやすいため、重点的な確認が必要です。
認証・認可の不備(ログインしていても守れていない)
CWE-306:重要な機能の使用に対する認証の欠如
重要な機能の使用に対する認証の欠如は、本来ログインが必要な操作が、認証なしで実行できてしまう状態です。代表例としては、管理者向けのAPIや運用機能が「画面からは触れない」ために見落とされ、URL直叩きで実行できてしまうケースが挙げられます。 この弱点があると、攻撃者はアカウントを用意する必要すらなく、いきなり機能を悪用できてしまいます。影響範囲は機能次第で、情報閲覧だけでなく、設定変更やデータ削除などにつながる可能性もあります。
脆弱性診断では、ログイン前に到達できるURL・APIを洗い出し、認証が正しくかかっているかを横断的に確認します。特に、管理系の機能や“メンテナンス用”に追加されたエンドポイントは、抜けが起きやすいポイントです。
CWE-862:認可の欠如
認可の欠如は、「ログインしているユーザが、その操作をしてよいか」の判定が不足している状態です。認証が正しく実装されていても、認可が抜けていると、一般ユーザが管理機能を実行できたり、他人の情報にアクセスできたりするリスクが生まれます。現代のWebアプリはAPI化が進み、画面とAPIが分離されているケースも多くあります。その結果、「画面上ではボタンが表示されないが、APIを直接叩くと通ってしまう」といった問題が発生しやすくなります。認可は“画面制御”ではなく“サーバ側判定”が必須です。
脆弱性診断では、ユーザ権限を切り替えながら同じAPIを試す、IDを変更して他人データに触れないか確認するなど、権限境界を意識したテストを行います。認可不備は事故につながりやすい一方で見落とされやすいため、重点的に確認すべき項目です。
CWE-863:不適切な認可
誤った認可は、認可チェック自体は存在するものの、判定条件が不十分・誤っている状態です。たとえば「ロール(一般/管理者)は見ているが、所属組織や契約単位の制御が抜けている」「閲覧は制御できているが更新だけ抜けている」など、複雑な仕様ほど起きやすい傾向があります。このタイプの問題は、単純な“認可チェックの抜け”よりも発見が難しく、機能仕様を理解したうえでテストしないと見落とされがちです。結果として、公開後に利用者からの指摘やインシデントで発覚することもあります。
脆弱性診断では、ロールだけでなく、組織・契約・所有権などの境界を整理し、境界を跨ぐ操作ができてしまわないかを確認します。実装だけでなく、設計段階での権限モデルの整理が重要になります。
CWE-284:不適切なアクセス制御
不適切なアクセス制御は、認証・認可・制限の仕組み全体が適切に機能していない状態を指す、非常に重要なカテゴリです。CWE-862やCWE-863、CWE-639などと密接に関係し、実際のインシデントでは“アクセス制御の穴”としてまとめて問題になるケースも少なくありません。アクセス制御の難しさは、実装ミスだけでなく、仕様変更や機能追加によって整合性が崩れやすい点にあります。APIが増えるほど確認対象も増え、権限チェックの一貫性を保つのが難しくなります。
脆弱性診断では、画面・API・直接URLアクセスなど複数経路からの到達性を確認し、「見えないはずの機能が触れてしまう」「アクセスできないはずの情報が見えてしまう」といった問題を洗い出します。アクセス制御は“守りの土台”であり、最優先で見直すべき領域です。
CWE-639:ユーザ制御キーによる認可バイパス
ユーザ制御キーによる認可バイパスは、ユーザが指定できるIDやキーを悪用し、認可を回避できてしまう問題です。いわゆるIDOR(Insecure Direct Object Reference)として知られるケースが多く、例えば「注文ID」「請求書ID」「ユーザID」などを変更するだけで他人の情報にアクセスできてしまうといった形で発生します。この脆弱性が厄介なのは、画面上では正しく動いて見えることが多い点です。正規ルートでは問題がなくても、パラメータを改ざんすると成立してしまうため、悪意ある操作を前提にした確認が欠かせません。
脆弱性診断では、IDやキーを意図的に変更し、他人データの閲覧・更新・削除ができないかを確認します。設計としては、IDを推測しにくくするだけでなく、サーバ側で必ず所有権チェックを行うことが重要です。
情報の露出(「次の攻撃」の起点になる)
CWE-200:権限を持たないユーザへの機密情報の漏洩
機密情報の露出は、権限のない相手に情報が見えてしまう状態です。例としては、APIレスポンスに不要な項目が含まれている、エラーメッセージに内部情報が出ている、管理画面の情報が一般ユーザから参照できる、といったケースが挙げられます。情報漏洩は、それ単体でも重大な事故ですが、攻撃者にとっては“次の攻撃を成功させる材料”になります。たとえば、ユーザ情報や内部構成が漏れることで、なりすましや権限突破、別の脆弱性悪用が容易になることがあります。
脆弱性診断では、画面表示だけでなくAPIレスポンスの内容、エラー出力、ログ出力の扱いまで含めて確認します。「返さなくてもよい情報を返していないか」を見直すことは、対策コストに対して効果が大きいポイントです。
ファイル・パスの取り扱い(“便利機能”が事故の原因になる)
CWE-22:パストラバーサル
パストラバーサルは、ファイル・パスの指定を悪用され、想定外のファイルにアクセスされてしまう脆弱性です。例えば、ダウンロード機能や画像表示機能で、パラメータがそのままファイル・パスに使われている場合に発生しやすく、設定ファイルや機密ファイルの閲覧につながる可能性があります。この問題は、アプリケーション内部の設定情報や秘密鍵などの露出を招くことがあり、被害が“情報漏えい”に留まらず、侵入やなりすましの起点になることもあります。
脆弱性診断では、パス指定のパラメータを揺さぶり、制限ディレクトリ外の参照ができないかを確認します。設計としては、ファイルはIDで管理し、サーバ側で実体パスに変換する方式が安全です。
CWE-434:危険なタイプのファイルのアップロード許可
危険なファイルアップロードは、攻撃者が悪意あるファイルをアップロードできてしまう脆弱性です。拡張子チェックだけで判定している場合、実体がスクリプトや実行形式であってもすり抜けられることがあり、Webシェル設置やマルウェア配布などにつながる危険があります。また、アップロードしたファイルがそのまま公開ディレクトリに置かれている場合、アクセスされるだけで攻撃が成立するケースもあります。ファイル機能はユーザにとって便利な一方で、攻撃者にとっても“侵入口”になりやすい領域です。
脆弱性診断では、アップロード可能な拡張子・MIME・実体判定、保存先、参照方法、実行可否などを確認します。特に「アップロード後にどう扱われるか(公開されるか、変換されるか)」まで含めて評価することが重要です。
【補足】なぜこの12項目が脆弱性診断で重要なのか
ここまで見てきた12項目は、いずれもWebアプリやAPIで発生しやすく、攻撃者が外部から試行しやすい弱点です。また、認可やアクセス制御のように、仕様・設計・実装が絡み合う領域は、チェック漏れが起きやすい一方で、発見が遅れると影響が大きくなりがちです。 そのため、開発時のレビューや自動テストだけでなく、第三者視点での脆弱性診断によって「実際に攻撃が成立するか」を確認し、優先度を付けて改善していくことが有効です。
現場での優先度付け(Web/API向け)
CWE Top 25に含まれる弱点は幅広く、すべてを一度に潰すのは現実的ではありません。そこで重要になるのが、「被害が大きいもの」「攻撃者が試しやすいもの」から優先して対策する考え方です。ここでは、WebアプリケーションやAPIを前提に、現場で取り組みやすい優先順位を整理します。
認可
まず最優先に見直したいのは、認可(Authorization)に関する脆弱性です。認証(ログイン)が正しく動いていても、「そのユーザがその操作をしてよいか」の判定が甘いと、他人の情報閲覧や不正更新、管理機能の悪用につながります。特にAPIが増えるほど、権限チェックの抜けや判定ミスが起きやすく、事故の原因になりがちです。認可の問題は、攻撃が成立すると影響範囲が大きく、かつログ上は正規ユーザの操作に見えることもあります。Web/APIにおけるセキュリティの土台として、まずは認可を最優先で点検することが重要です。
入出力・CSRF
次に優先したいのは、入出力の取り扱い(XSSや入力検証不備など)と、CSRFです。
入力値は、画面表示・DB操作・外部連携など多くの処理に影響するため、わずかな実装ミスが攻撃の入口になりやすい領域です。またXSSは、利用者のアカウント乗っ取りや管理画面の悪用につながる可能性があり、優先度の高い脆弱性です。CSRFについても、状態変更系の操作(変更・更新・削除)がある限り、対策の抜けがあると被害につながります。「ログインしているから安全」ではなく、“正しい意図の操作かどうか”を担保できているかを確認する必要があります。
SSRF・ファイル関連
SSRFやファイル関連の脆弱性は、システムに該当機能がある場合、優先度を一段階上げて確認すべき項目です。たとえば、URL入力を受け付ける機能(外部連携、Webhook、画像取得など)がある場合、SSRFが成立すると内部ネットワークへのアクセスや情報取得につながる可能性があります。また、ファイルアップロード/ダウンロード機能がある場合は、危険なファイルの混入やパストラバーサルによる情報漏えいなど、攻撃の入口になりやすい要素が揃っています。利便性の高い機能ほどリスクも増えやすいため、仕様として存在するなら“重点確認対象”として扱うのが安全です。
情報露出・認証の欠如
最後に、見落とし厳禁として挙げたいのが「情報露出」と「認証欠如」です。機密情報の露出は、単体でも重大な事故ですが、攻撃者にとっては次の攻撃を成立させるための材料にもなります。APIレスポンスの過剰返却やエラーメッセージの出し方など、“つい残ってしまう情報”が原因になることも少なくありません。また、重要機能の認証欠如は、成立すると攻撃者がログインすらせずに機能を悪用できてしまいます。管理用のエンドポイントや運用機能など、「利用者が限られるから大丈夫」と思われがちな部分ほど抜けが起きやすいため、公開前後での棚卸しが重要です。
Web/APIは定期診断が有効
Web/APIは機能追加や仕様変更が多く、開発時点で対策していたとしても、改修のたびに新しい抜けが生まれる可能性があります。だからこそ、開発段階での対策に加えて、第三者視点の脆弱性診断で「実際に攻撃が成立するか」を確認し、優先度を付けて改善することが効果的です。定期的に診断を実施することで、仕様変更による取りこぼしを早期に発見し、インシデントを未然に防ぐことにつながります。
後編では、CWE Top 25 2025年版で目立つもう一つのポイントとして、メモリ領域の安全に関わる脆弱性が上位に増えている背景を整理します。なぜ今メモリ系が注目されているのか、どのように備えるべきかを、診断・運用の観点も含めて解説します。
―後編に続く―
BBSecでは
「どこが危ないのか」を把握しないまま対策を進めると、重要な弱点が残ったり、修正の手戻りが増えたりすることがあります。Webアプリケーション/APIの脆弱性診断により、実際に攻撃が成立するポイントを洗い出し、優先度を付けて改善につなげることが可能です。まずは現状の課題や診断範囲について、お気軽にご相談ください。

限定キャンペーン実施中!
今なら新規お申込みで 初回診断料金 10%OFF!
短期間での診断が可能な「SQAT® with Swift Delivery」で、あなたの企業をサイバー脅威から守りませんか?
Security NEWS TOPに戻る
バックナンバー TOPに戻る






























