CWE is a Software Assurance strategic initiative sponsored by the National Cyber Security Division of the U.S. Department of Homeland Security.

CWE - 2010 CWE/SANS Top 25 Most Dangerous Programming Errorsにおいて脆弱性の原因となる危険なプログラミングエラー25が発表された。開発者にセキュリティ問題の原因となるプログラミングに関する注意を促し、実際にソフトウェアが動作する前の段階で問題を発見し対処できるようにすることを目指したもの。2009年に発表されたリストの更新版にあたり、内容の多くが更新されている。2009年版を使っていた場合には、今回発表された2010年版を再度検討する価値がある。

公開されている脆弱性に結びつくプログラミングエラートップ25をまとめると次のとおり。25にランクインしなかった16含めると、合計41のプログラミングエラーが報告されていることになる。

スコア ID 内容
1 346 CWE-79 クロスサイトスクリプティング
2 330 CWE-89 SQLインジェクション
3 273 CWE-120 Bufferオーバーフロー
4 261 CWE-352 クロスサイトリクエストフォージェリ(CSRF)
5 219 CWE-285 不正アクセス制御
6 202 CWE-807 不正入力値に対処していないことに起因する脆弱性
7 197 CWE-22 ディレクトリトラバーサル
8 194 CWE-434 アップロートファイルに制限を設けないことに起因する脆弱性
9 188 CWE-78 OSコマンドインジェクション
10 188 CWE-311 重要データを暗号化していない起因する脆弱性
11 176 CWE-798 パスワード等をソースコードにハードコーディングすることに起因する脆弱性
12 158 CWE-805 範囲を越えるバッファアクセスに起因する脆弱性
13 157 CWE-98 PHP Fileインクルージョン
14 156 CWE-129 配列インデックスの誤った検証に起因する脆弱性
15 155 CWE-754 例外的な状況における不適切なチェックに起因する脆弱性
16 154 CWE-209 エラーメッセージに公開されてはならない情報が掲載されてしまう脆弱性
17 154 CWE-190 整数オーバーフロー
18 153 CWE-131 バッファサイズの誤った計算に起因する脆弱性
19 147 CWE-306 クリティカルな処理に対する認証欠落に起因する脆弱性
20 146 CWE-494 完全性チェックを実施しないコードのダウンロードに起因する脆弱性
21 145 CWE-732 クリティカルなリソースに対する不正な保護権設定に起因する脆弱性
22 145 CWE-770 制限を設けないリソース確保に起因する脆弱性
23 142 CWE-601 信用されないサイトへのURLリダイレクトリ
24 141 CWE-327 リスキーな暗号化アルゴリズムを利用することに起因する脆弱性
25 138 CWE-362 レースコンディション
スコア ID 内容
26 136 CWE-749 適正に規制されていないAPIが提供されていることに起因する脆弱性
27 129 CWE-307 認証処理に回数制限や時間制限を設けないことに起因する脆弱性
28 125 CWE-212 重要データ削除処理の欠落に起因する脆弱性
29 124 CWE-330 十分ではないランダム数値を利用していることに起因する脆弱性
30 120 CWE-59 リンクフォロー脆弱性
31 120 CWE-134 外部から指定可能な整形出力機能を使うことに起因する脆弱性
32 119 CWE-476 ヌルポインタ処理に起因する脆弱性
33 119 CWE-681 数値型の不正変換に起因する脆弱性
34 118 CWE-426 アプリケーションの制御下にないリソースを検索することに起因する脆弱性
35 116 CWE-454 信頼されない入力値を使った初期化処理に起因する脆弱性
36 114 CWE-416 メモリ開放後に処理を実施することに起因する問題
37 114 CWE-772 不要になったメモリを解法しないことに起因する問題
38 106 CWE-799 インタラクションに制限を設けないことに起因する問題
39 100 CWE-456 クリティカルな値を初期化しないことに起因する問題
40 91 CWE-672 開放後のリソースを操作することに起因する問題
41 77 CWE-804 推測可能なCAPTCHAに起因する問題

発表されたランキングはあくまでも一般的なケースで整理した場合の順位になっている。どの脆弱性をどの程度重要なものとみなすかはプログラミング言語やユースケースなどコンテキストに依存して変化する。このためCWE - 2010 CWE/SANS Top 25 Most Dangerous Programming Errorsではカテゴリ別まとめも提供されている。提供されているカテゴリは次のとおり。

カテゴリ
コンポーネント完の不安全なインタラクション
リスキーなリソース管理
誤った防御方法やその欠落
カテゴリ
教育視点からのランキング
プログラミング言語からのランキング
設計または実装という観点からのランキング
自動分析または手動分析という観点からのランキング
開発者視点からのランキング
顧客視点からのランキング
技術インパクト視点からのランキング

これらリストはプログラマやテスタ、アーキテクト、デザイナ、プロジェクトマネージャなどシステム開発に関わる人材にとって有益な資料になるのみならず、教育関係者における教材としても利用できる。また、システム開発を発注したり購入する顧客における要望チェックリストとしても利用できる。