知識マップ: libxml2のxmlBuildQNameで、なぜ容量の検査が働かなかったのか?

記事「libxml2のxmlBuildQNameで、なぜ容量の検査が働かなかったのか?」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。

CVE-2025-6021はlibxml2のxmlBuildQNameの脆弱性で、接頭辞とローカル名から求めた必要なバイト数がintの上限を超えると容量の検査が働かず、呼び出し側のバッファの外へ書き込む。修正前のlibxml2 2.14.3ではAddressSanitizerが範囲外への書き込みを検出した。同じ式をSPARKで書くとGNATproveがオーバーフローの可能性を報告し、Adaでは実行時にConstraint_Errorで止まる。libxml3は長さを上限の内側で測ってから足し、その計算をGNATproveで証明している。

CVE-2025-6021とxmlBuildQName、整数オーバーフローの知識マップCVE-2025-6021がxmlBuildQNameの整数オーバーフローからバッファオーバーランとサービス妨害につながる関係と、AddressSanitizerでの検出、GNATproveとlibxml3、Adaとの関係を示す図。実装を担う前提とする原因になり得る原因になり得る原因になり得るで確認できるで確認できる軽減する利用する実装を担うCVE-2025-6021xmlBuildQName整数オーバーフローlibxml2バッファオーバーランサービス妨害(DoS)AddressSanitizerGNATproveAda(プログラミング言語)libxml3SPARK

概念間の関係(全10件)

図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。

主要概念の定義

CVE-2025-6021
2025年6月に公開されたlibxml2の脆弱性。xmlBuildQNameで接頭辞とローカル名から求めた必要なバイト数がintの上限を超えると容量の検査が働かず、呼び出し側のバッファの範囲外へ書き込む。libxml2 2.14.4と2.13.9で修正された。
xmlBuildQName
接頭辞とローカル名からprefix:nameの形の名前(QName)を組み立てる、libxml2のAPIの関数。呼び出し側が渡したバッファに収まればそこへ書き、収まらなければ新しい領域を確保する。
整数オーバーフロー
整数の演算結果が、その型で表せる範囲を超えること。言語と設定によって、例外・パニック・折り返しのいずれかになる。Adaでは、値が型の基本範囲に収まるかを確かめるOverflow_Checkに失敗すると、実行時にConstraint_Errorが送出される。
libxml2
GNOMEプロジェクトのために開発が始まった、Cで実装されたXMLのツールキット。XMLのパーサーとツリーを扱うAPIを提供する。
バッファオーバーラン
配列やバッファの範囲外への書き込み・読み込みが起こる現象。C/C++で長年セキュリティ脆弱性の主要原因とされてきた。
Ada(プログラミング言語)
1970年代後半にアメリカ国防総省の主導で標準化された、強い型付けと高信頼性を重視する汎用プログラミング言語。最新標準はAda 2022。
libxml3
Ada/SPARKで書いたXMLの処理と、libxml2に似たCのAPIの一部を提供する、小村ソフトの実験的なプロジェクト。libxml2.so.2と同じABIや完全な互換性は提供しない。

機械可読データ

このデータセットについて

作成
合同会社小村ソフト
ライセンス
CC BY 4.0 ── 出典(合同会社小村ソフト)とライセンスへのリンクを明示し、改変した場合はその旨を示すことを条件に、再配布・改変を含めて再利用できます
最終確認日
2026-11-13 ── 収録する関係のうち、最後に出典と照合した日

このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。