知識マップ: libxml2のxmlBuildQNameで、なぜ容量の検査が働かなかったのか?
記事「libxml2のxmlBuildQNameで、なぜ容量の検査が働かなかったのか?」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。
CVE-2025-6021はlibxml2のxmlBuildQNameの脆弱性で、接頭辞とローカル名から求めた必要なバイト数がintの上限を超えると容量の検査が働かず、呼び出し側のバッファの外へ書き込む。修正前のlibxml2 2.14.3ではAddressSanitizerが範囲外への書き込みを検出した。同じ式をSPARKで書くとGNATproveがオーバーフローの可能性を報告し、Adaでは実行時にConstraint_Errorで止まる。libxml3は長さを上限の内側で測ってから足し、その計算をGNATproveで証明している。
flowchart LR
accTitle: CVE-2025-6021とxmlBuildQName、整数オーバーフローの知識マップ
accDescr: CVE-2025-6021がxmlBuildQNameの整数オーバーフローからバッファオーバーランとサービス妨害につながる関係と、AddressSanitizerでの検出、GNATproveとlibxml3、Adaとの関係を示す図。
cve_2025_6021["CVE-2025-6021"]
xmlbuildqname["xmlBuildQName"]
integer_overflow["整数オーバーフロー"]
libxml2["libxml2"]
buffer_overrun["バッファオーバーラン"]
denial_of_service["サービス妨害(DoS)"]
addresssanitizer["AddressSanitizer"]
gnatprove["GNATprove"]
ada["Ada(プログラミング言語)"]
libxml3["libxml3"]
spark["SPARK"]
libxml2 -->|"実装を担う"| xmlbuildqname
cve_2025_6021 -->|"前提とする"| xmlbuildqname
integer_overflow -.->|"原因になり得る"| buffer_overrun
cve_2025_6021 -->|"原因になり得る"| buffer_overrun
cve_2025_6021 -->|"原因になり得る"| denial_of_service
buffer_overrun -->|"で確認できる"| addresssanitizer
integer_overflow -->|"で確認できる"| gnatprove
ada -.->|"軽減する"| buffer_overrun
libxml3 -->|"利用する"| spark
libxml3 -.->|"実装を担う"| xmlbuildqname
概念間の関係(全10件)
図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。
- libxml2はxmlBuildQNameの実装を担います。
- CVE-2025-6021はxmlBuildQNameを前提とします。
- 整数オーバーフローはバッファオーバーランの原因になることがあります。
- CVE-2025-6021はバッファオーバーランの原因になることがあります。
- CVE-2025-6021はサービス妨害(DoS)の原因になることがあります。
- バッファオーバーランはAddressSanitizerで確認できます。
- 整数オーバーフローはGNATproveで確認できます。
- Ada(プログラミング言語)はバッファオーバーランを軽減します。
- libxml3はSPARKを利用します。
- libxml3はxmlBuildQNameの実装を担います。
主要概念の定義
機械可読データ
このデータセットについて
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。