- ブラウザURL入力
- DNS名前→IP
- ルータ経路選択
- ロードバランサ振り分け
- Nginx受け口
- アプリ処理今ここ
- DB保存
コースの最後に、ここまでの一覧を CWE 番号で横に並べます。つながる一覧と、つながらない一覧が出ます。
まず結論
同じ CWE 番号が、一覧ごとに別の項目名の下に載ります。XSS(CWE-79)は Web 2025 では A05:2025 Injection に、LLM 2026 では LLM10:2026 Improper Output Handling に入り、SSRF(CWE-918)は API 2023 では独立項目 API7、Web 2025 では A01:2025 の一部です。
CWE の置き方も一覧ごとに違います。Web 2025 は集計の単位、API 2023 は参考リンク、LLM 2026 は印つきの付録で、Mobile・CI/CD・Kubernetes は項目に CWE を対応づけていません。番号を読む前に、何を数えた一覧かを読みます。
API Security Top 10 2023 は Injection を項目に入れていません。その理由として原文(Methodology and Data の API Specific Risks 節)が書いているのはどれですか。
当てることが目的ではありません。外した予測ほど記憶に残るので、直感で選んでください。
共通の番号は、一覧ごとに置き場所が違う
注入がなぜ起きるかは、第4期の「なぜ入力がコードになるのか」と「命令として読まれる入力」で扱いました。ここでは原理に戻らず、その弱点が各一覧のどの項目に、どの番号で載るかだけを並べます。
並べる鍵は CWE 番号です。ただし、この回で作る表が数えたのは保存した原文の中に書かれた CWE 番号の出現です。発生件数でも危険度でもありません。そして一覧ごとに、CWE を置いた場所の意味が違います。
- Web 2025: 各カテゴリ末尾の List of Mapped CWEs。スコア表の件数と一致する、集計の単位です。
- API 2023: 各項目末尾の References の External。集計の単位ではなく参考リンクです(API 2023 は提供データが0件)。
- LLM 2026: 付録 A の対応表。付録自身が
It replaces the per-entry *Related Frameworks and Taxonomies* sectionsと書き、本文からは外されています。● と ○ の印が付きます。 - Mobile 2024・CI/CD・Kubernetes 2025: 項目に CWE を対応づけていません。
- ・Mobile 2024・CI/CD・Kubernetes 2025 は項目に CWE を対応づけておらず、この表に入らない
- ・件数は各カテゴリのスコア表と一覧の箇条による(Web 2025 導入文は A05 を38と書き、表と食い違う)
対照表スクリプトの出力
保存した原文(Web 2025 と Web 2021 は OWASP/Top10 コミット 3a31f35、API 2023 は 33cea37、LLM 2026 は 9253e38。いずれも 2026-09-28 取得)から CWE 番号を抜き出し、一覧・項目ごとに数えました。環境は macOS(Darwin arm64)、Python 3.14.6、Docker は使っていません。同じスクリプトを2回実行し、2回の出力は一致しました。
[per-list CWE counts] (distinct CWE ids per list, and per item)web2025: distinct=249 sum_over_items=249 per_item={'A01': 40, 'A02': 16, 'A03': 6, 'A04': 32, 'A05': 37, 'A06': 39, 'A07': 36, 'A08': 14, 'A09': 5, 'A10': 24}api2023: distinct=20 sum_over_items=22 per_item={'API1': 2, 'API10': 3, 'API2': 2, 'API3': 2, 'API4': 3, 'API5': 1, 'API6': 0, 'API7': 1, 'API8': 7, 'API9': 1}llm2026: distinct=22 sum_over_items=48 per_item={'LLM01': 4, 'LLM02': 7, 'LLM03': 5, 'LLM04': 4, 'LLM05': 4, 'LLM06': 5, 'LLM07': 4, 'LLM08': 4, 'LLM09': 5, 'LLM10': 6}mobile2024: distinct=0 sum_over_items=0 per_item={'m1': 0, 'm10': 0, 'm2': 0, 'm3': 0, 'm4': 0, 'm5': 0, 'm6': 0, 'm7': 0, 'm8': 0, 'm9': 0}mobile2024(url-only): distinct=1 sum_over_items=1 per_item={'m1': 0, 'm10': 0, 'm2': 0, 'm3': 0, 'm4': 1, 'm5': 0, 'm6': 0, 'm7': 0, 'm8': 0, 'm9': 0}cicd: distinct=0 sum_over_items=0 per_item={'CICD-SEC-01': 0, 'CICD-SEC-02': 0, 'CICD-SEC-03': 0, 'CICD-SEC-04': 0, 'CICD-SEC-05': 0, 'CICD-SEC-06': 0, 'CICD-SEC-07': 0, 'CICD-SEC-08': 0, 'CICD-SEC-09': 0, 'CICD-SEC-10': 0}cicd(url-only): distinct=0 sum_over_items=0 per_item={'CICD-SEC-01': 0, 'CICD-SEC-02': 0, 'CICD-SEC-03': 0, 'CICD-SEC-04': 0, 'CICD-SEC-05': 0, 'CICD-SEC-06': 0, 'CICD-SEC-07': 0, 'CICD-SEC-08': 0, 'CICD-SEC-09': 0, 'CICD-SEC-10': 0}k8s2025: distinct=0 sum_over_items=0 per_item={'K01': 0, 'K02': 0, 'K03': 0, 'K04': 0, 'K05': 0, 'K06': 0, 'K07': 0, 'K08': 0, 'K09': 0, 'K10': 0}k8s2025(url-only): distinct=0 sum_over_items=0 per_item={'K01': 0, 'K02': 0, 'K03': 0, 'K04': 0, 'K05': 0, 'K06': 0, 'K07': 0, 'K08': 0, 'K09': 0, 'K10': 0}
distinct は種類、sum_over_items は項目ごとの件数の和です。3行を読み比べます。
- web2025: 249 と 249。1つの CWE は1つのカテゴリにしか入りません。 各カテゴリの値はスコア表の CWEs Mapped と一致しました。
- api2023: 種類20、延べ22。CWE-285 と CWE-319 が2項目に重なり、API6 は0件です。
- llm2026: 種類22、延べ48(● 20・○ 28)。CWE-1427 は LLM01:2026 の ● のほか、LLM03・LLM05・LLM07 の ○ にも載ります。1つの CWE が複数の項目に載る一覧です。
mobile2024(url-only) の1は、M4 の参考リンクが CWE-20 の定義ページを URL で1件指しているものです。M4 以外の Mobile の項目に、CWE の定義ページへのリンクはありませんでした。CI/CD と Kubernetes は0件です。
Web 2025 の10カテゴリの List of Mapped CWEs を全部集めた結果(スクリプト出力)として正しいのはどれですか。
注入を3つの一覧で横に並べる
同じ見方で「注入」を並べます。
Web 2025 は A05:2025 Injection に XSS まで入れます。A05 の本文です。
Injection includes Cross-site Scripting (high frequency/low impact) with more than 30k CVEs and SQL Injection (low frequency/high impact) with more than 14k CVEs.
既存クイズ security-owasp-top10-5・-15 が教える「XSS はインジェクションに統合」は 2021 版の A03:2021 の話で、2021 版の導入文も Cross-site Scripting is now part of this category in this edition. と書きます。2025 版では番号が A05 に変わり、XSS は引き続きその中です。
API 2023 は Injection を項目にしていません。
For example, we didn't include risks such as "Vulnerable and Outdated Components" or "Injection", even though you might find them in API based applications. These risks are generic, they don't behave differently in APIs, nor their exploitation is different.
LLM 2026 は2つに分けます。付録 A で、入力側の LLM01:2026 Prompt Injection は ● CWE-1427、出力側の LLM10:2026 Improper Output Handling は ● CWE-1426・CWE-116・CWE-79 です。
逆向きの関係もあります。Web 2025 の導入文は、CWE 10個の一覧にしない理由として there are multiple CWEs for common vulnerabilities と書きます。A05:2025 だけで CWE は37あります。1つの CWE が1つの名前に対応するわけでも、1つの名前が1つの CWE に対応するわけでもありません。
番号でたどると、名前が入れ替わる
対照表のうち、2つ以上の一覧に載る CWE の節から抜きます。
[crosswalk] CWE ids that appear in >= 2 lists:CWE-20: api2023:API10, mobile2024(url-only):m4, web2025:A05CWE-79: llm2026:LLM10, web2025:A05CWE-639: api2023:API1, web2025:A01CWE-798: llm2026:LLM08, web2025:A07CWE-915: api2023:API3, web2025:A08CWE-918: api2023:API7, web2025:A01total=26
CWE-79 と CWE-918 の行を読みます。
- CWE-79: Web 2025 では入力の中和を扱う A05:2025 Injection、LLM 2026 では出力を扱う LLM10:2026 に入ります。同じ番号が、入力の名前と出力の名前の両方で呼ばれます。
- CWE-918: API 2023 では API7:2023 という独立項目です。Web 2025 では A01:2025 Broken Access Control の40個の1つで、導入文が
Server-Side Request Forgery (SSRF) has been rolled into this category.と書きます。2021 版では A10:2021 として独立していました(This category is added from the Top 10 community survey (#1).)。
ほかの行も同じ型です。CWE-915 は API3:2023 では認可の名前、A08:2025 Software or Data Integrity Failures では完全性の名前です。CWE-798 は A07:2025 と LLM08:2026 の ○(supporting)に載ります。
LLM Top 10 2026 の付録 A で、CWE-79(XSS)はどの項目に、どの印で対応づけられていますか。
CWE-918(SSRF)
API 2023 では API7 として独立しています。Web 2025 では A01 Broken Access Control の40個の1つで、独立項目ではありません。2021 版では A10 として独立していました。
CWE-79(XSS)
Web 2025 では A05 Injection の37個の1つです。LLM 2026 では出力の扱いを扱う LLM10 に ● で入り、LLM01 Prompt Injection の ● は CWE-1427 という別の番号です。
同じ番号が、ある一覧では独立項目になり、別の一覧では大きな項目の中に入ります。この差は弱点の性質の差でしょうか。
弱点そのものは同じ番号です。違っているのは一覧の側の何かを考えてください。
この章のまとめ
- 同じ CWE が一覧ごとに別の名前で載る。CWE-79 は A05:2025 Injection と LLM10:2026 の ●、CWE-918 は API7:2023 と A01:2025 の一部。
- CWE の置き方が違う。Web 2025 は集計の単位(延べ249・種類249、重複なし)、API 2023 は参考リンク(種類20)、LLM 2026 は付録の印つき対応(種類22、1つの CWE が最大4項目)。
- Mobile・CI/CD・Kubernetes は項目に CWE を対応づけていない(Mobile M4 の参考リンク1件を除く)。CWE だけでは全部をつなげない。
- API 2023 が Injection を外した理由は generic だから。「API では起きない」ではない。
- 既存クイズの A03・A10 は 2021 版の番号。2025 版では A05 と A01 に当たる。
- 番号を読む前に、何を数えた一覧かと版を読む。
自分の現場で確かめる
読んだだけでは身につきません。手元の環境で実際に見てみてください。
理解度チェック
読んだ直後は「分かった」と感じやすいものです。実際に解いて確かめてください。
API Security Top 10 2023 の CWE の置き方として、保存した原文で確かめられるのはどれですか。
用語集(4語)
- CWE
- Common Weakness Enumeration。弱点の種類に振られた番号。LLM 2026 付録 A は版 4.20 を明記して対応づけている。本回の CWE 名は OWASP 各文書の表記による。
- List of Mapped CWEs
- Web 2025 の各カテゴリ末尾にある CWE の一覧。スコア表の CWEs Mapped と件数が一致し、カテゴリ間で重複しない。
- ● primary / ○ supporting
- LLM 2026 付録 A の凡例。● は中心となる対応、○ は寄与するが中心ではない対応。1つの CWE が複数項目に載る。
- generic なリスク(API 2023)
- API 2023 が Injection などを外すときの語。API でも見つかりうるが、API で挙動も悪用も変わらないものを指す。
出典(一次ソース)
- OWASP Top 10:2025 — A05:2025 Injection(OWASP/Top10 コミット 3a31f35、取得 2026-09-28) ↗
- OWASP Top 10:2025 — Introduction(SSRF の A01 統合・CWE が複数ある理由。コミット 3a31f35、取得 2026-09-28) ↗
- OWASP Top 10:2025 — A01:2025 Broken Access Control(CWE-918・CWE-639。コミット 3a31f35、取得 2026-09-28) ↗
- OWASP Top 10:2021 — Introduction(XSS の A03:2021 統合。旧版。コミット 3a31f35、取得 2026-09-28) ↗
- OWASP API Security Top 10 2023 — Methodology and Data / API Specific Risks(OWASP/API-Security コミット 33cea37、取得 2026-09-28) ↗
- OWASP API Security Top 10 2023 — API7:2023 Server Side Request Forgery(コミット 33cea37、取得 2026-09-28) ↗
- OWASP Top 10 for LLM Applications 2026 — Appendix A Related Framework Mappings(GenAI-LLM-Top10 コミット 9253e38、取得 2026-09-28) ↗
- OWASP API Security Top 10 2023 — Release Notes(no data was contributed。コミット 33cea37、取得 2026-09-28) ↗
- OWASP Top 10 CI/CD Security Risks — index(コミット 74b2c79、取得 2026-09-28) ↗
- OWASP Kubernetes Top Ten 2025 — index(コミット 828cfa2、取得 2026-09-28) ↗
- OWASP Mobile Top 10 2024 — M4 Insufficient Input/Output Validation(コミット f2dc2d6、取得 2026-09-28) ↗