コンテンツにスキップ

Webhookの修正計画の言語パッケージのフィールド

このページでは、Webhookのremediationに含まれる言語パッケージの項目、パッケージごとの結果、修正版に上げられないときの案内を説明します。 修正計画全体の構造は修正計画の全体像を参照してください。

言語パッケージのフィールド

remediationの言語パッケージに関するフィールドは次のとおりです。

フィールド名 型 意味 値がないとき
language_summary object 分類別の言語パッケージの項目数 言語項目がなければ省略
language_items objectの配列 言語パッケージの修正計画の項目 省略

language_summaryはパッケージ数ではなく、language_items[]の項目数を数えます。 出力するキーはpr_candidate、dependency_update_candidate、rebuild_expected、manual、not_comparable、deferred、failedで、該当項目がない分類も0で出力します。

language_items[]の1要素は、同じリポジトリ・基準ブランチ・ディレクトリに対応付けたワークロードの所見を、パッケージマネージャーごとにまとめたものです。 マネージャーを特定する前はエコシステムごとに分かれ、稼働イメージを確認できない所見やGoの標準ライブラリは別の項目になる場合があります。

項目の識別にはkeyを使います。 同じディレクトリや同じパッケージ名でも、keyが異なる項目をまとめないでください。

次は、集計と1項目の主要フィールドを抜粋した例です。

{
  "language_summary": {
    "deferred": 1,
    "dependency_update_candidate": 1,
    "failed": 0,
    "manual": 1,
    "not_comparable": 0,
    "pr_candidate": 0,
    "rebuild_expected": 1
  },
  "language_items": [
    {
      "key": "deps:ex/app@main:backend",
      "category": "dependency_update_candidate",
      "reason": "update_candidate_in_source",
      "manager": "npm",
      "workloads": [
        "compose/shop/api"
      ],
      "update_executed": false,
      "post_update_check_executed": false,
      "package_count": 4
    }
  ]
}

更新と検査を実行した項目の主要フィールドは、次のようになります。

{
  "key": "lang-key",
  "category": "pr_candidate",
  "reason": "update_verified",
  "update_executed": true,
  "post_update_check_executed": true
}

language_items[]の1要素のフィールドは次のとおりです。

フィールド名 型 意味 値がないとき
key string 計画内の項目を識別するキー —
category string 項目全体の計画の分類値 —
reason string 分類の根拠となる理由コード 省略
detail string 分類や理由を補足する説明文 省略
manager string 依存ファイルを扱うパッケージマネージャー 特定できなければ省略
priority string 対象脆弱性の中で最も高い優先度 省略
workloads stringの配列 この依存ファイルのディレクトリに対応付けたワークロードキーの一覧 nullまたは[]
source object 依存ファイルの取得元 —
runtime_eol object サポート終了により手動対応となる実行環境 該当なしなら省略
update_executed boolean 最新の修正計画の処理で依存更新の操作を最後まで実行したかを示す false
post_update_check_executed boolean 最新の修正計画の処理で更新結果を受け取り、検査したかを示す false
retry_after string 公開後の待機が終わり、再試行できる日時をRFC 3339形式で示す 省略
package_count integer 一覧を省略する前のパッケージの総件数 0
packages objectの配列 パッケージごとの結果 省略
packages_truncated boolean packagesの一部を件数上限により省略した場合にtrueになる 省略
update object 更新の記録 記録がなければ省略
source_check object 更新前後の依存ファイルの検査結果 記録がなければ省略
artifacts objectの配列 更新で生成したファイルの情報 省略
pull_request object この項目に対応するPR処理の結果 対応する処理がなければ省略

managerの値は次のとおりです。

値 意味
npm npm
pnpm pnpm
uv uv
pip pip
go Go modules
maven Maven
gradle Gradle

次のフィールドには補足があります。

  • workloads
    • 通常の計画では、設定で対応付けたワークロードキーを重複なく並べ替えて出力する
    • ワークロードキーの形式はイメージ名の更新を参照する
    • 一覧が設定されていない場合はnull、空の一覧として保持されている場合は[]を出力する
    • nullと[]に、対象不明と対象なしを区別する意味はない
  • post_update_check_executed
    • 検査で不合格になった場合もtrueになり、検査の合格はsource_check.passedで確認する
  • retry_after
    • 待機中は、この日時だけを含み、update.chainを含まない場合がある
    • 待機と再試行の条件は公開後の待機と再試行を参照する
  • packages
    • 理由がglobal_node_modulesのパッケージは、Slackとメールの「要判断」に出ない場合も含む

依存ファイルの取得元

language_items[].sourceのフィールドは次のとおりです。

フィールド名 型 意味 値がないとき
repository string 依存ファイルを取得するリポジトリを所有者/リポジトリ名で示す —
base_branch string 依存ファイルを取得する基準ブランチ —
directory string リポジトリ内の依存ファイルのディレクトリを示し、ルートは. —
commit_sha string 取得元として記録したコミットのSHA 省略
files objectの配列 取得したファイルの一覧 省略
absent stringの配列 入力の確認時に探したものの、存在しなかったファイルのリポジトリ内パス 省略
origin string 取得元の設定の由来 ""
confidence string 稼働イメージと取得元の対応付けの根拠 ""

originの値は次のとおりです。

値 意味
config 利用者の設定で指定した取得元

confidenceの値は次のとおりです。

値 意味
asserted 利用者が明示した対応付け

依存ファイルと稼働パッケージの名前や版が一致しても、そのファイルから稼働イメージをビルドしたことまでは確認していません。 確認する範囲はソースの確認を参照してください。

absentには、後から追加されると入力条件が変わるファイルも含まれます。 たとえば、確認時に存在しなかったpnpm-workspace.yamlが該当します。

取得したファイル

language_items[].source.files[]の1要素のフィールドは次のとおりです。

フィールド名 型 意味 値がないとき
path string ファイルのリポジトリ内パス —
blob_sha string 取得したファイル内容を識別するGitのblobのSHA —
repository string ファイルの取得元リポジトリ 取得元のリポジトリとブランチが親のsourceと同じなら省略
base_branch string ファイルの取得元ブランチ 取得元のリポジトリとブランチが親のsourceと同じなら省略

Dockerfileの取得元にも、同じフィールドを持つファイル情報を使います。 repositoryとbase_branchを省略した場合は、親のsourceの値を使います。

次は、ファイル一覧を含むsourceの例です。

{
  "repository": "ex/app",
  "base_branch": "main",
  "directory": "backend",
  "commit_sha": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "files": [
    {
      "path": "backend/package.json",
      "blob_sha": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
    },
    {
      "path": "backend/package-lock.json",
      "blob_sha": "cccccccccccccccccccccccccccccccccccccccc"
    }
  ],
  "origin": "config",
  "confidence": "asserted"
}

サポート終了の実行環境

language_items[].runtime_eolのフィールドは次のとおりです。

フィールド名 型 意味 値がないとき
id string node22やpython3.8のような実行環境の識別子 —
name string Node.js 22やPython 3.8のような表示用の名前 —
eol string サポート終了日をYYYY-MM-DD形式で示す 不明なら省略

この情報は、項目のreasonがruntime_eolの場合に付与します。 実行環境の選定は実行環境の選定を参照してください。

PR処理の結果

language_items[].pull_requestのフィールドは次のとおりです。

フィールド名 型 意味 値がないとき
status string 対応するPR処理の状態値 —
reason string PR処理結果の理由コード 省略
detail string PR処理結果を補足する説明文 省略
number integer GitHubのPR番号 省略
url string GitHubのPRのURL 省略
state string PR自体の状態値 省略
target_key string リポジトリ内の更新対象を識別するキー 省略
update_key string 対象に提案する更新内容を識別するキー 省略
attempt_key string 更新元のコミットと変更するファイル内容を含む、更新の試行を識別するキー 省略

pull_requests[]のうち、kindがlanguageで、item_keyがこの言語項目のkeyと一致する処理の情報を載せます。 PRを作成できなかった処理も含むため、pull_requestがあってもnumberやurlがあるとは限りません。

識別キーによる照合は既存PRとの照合を参照してください。

パッケージの結果

language_items[].packages[]の1要素は、エコシステム・パッケージ名・稼働版の組み合わせに対応します。 Pythonでは、照合用に正規化した名前が同じものをまとめます。

同じ組み合わせでも、プロジェクト内のパッケージとグローバルなnode_modulesのパッケージは別の要素になります。 受信側では、この組み合わせを一意のキーとして要素をまとめないでください。

次は、パッケージの主要フィールドを抜粋した例です。

{
  "name": "express",
  "ecosystem": "node-pkg",
  "installed": "4.18.2",
  "selection_lower_bound": "4.19.2",
  "relation": "direct",
  "action": "update",
  "reason": "update_candidate_in_source",
  "occurrence_count": 1,
  "cve_count": 1,
  "kev_count": 1,
  "origin_count": 1
}

language_items[].packages[]の1要素のフィールドは次のとおりです。

フィールド名 型 意味 値がないとき
name string 稼働イメージのスキャンで報告されたパッケージ名 —
normalized string Pythonパッケージの名前を照合用に正規化した値 Python以外なら省略
ecosystem string 稼働イメージのスキャンで報告されたパッケージの種類 —
installed string 稼働イメージで検出したパッケージの版 —
selection_lower_bound string 更新候補の選定を始める修正版の下限 省略
adopted_version string 更新後の依存ファイルにある対象パッケージの最も低い版 省略
relation string プロジェクトから見た依存関係の区分 判定できなければ省略
action string パッケージごとの処理値 省略
reason string パッケージの処理の理由コード 省略
detail string 処理や理由を補足する説明文 省略
left_out boolean 計画した更新から除外された場合にtrueになる 省略
through stringの配列 修正版に上げるために、あわせて更新した依存元の名前 省略
maven_bom object 目標版に届くBOMの案内 該当する案内がなければ省略
fix_hint object 修正版に上げられないときの案内 該当する案内がなければ省略
occurrence_count integer 一覧を省略する前の依存ファイル内の出現箇所の件数 0
occurrences objectの配列 依存ファイル内の出現箇所 省略
occurrences_truncated boolean occurrencesの一部を件数上限により省略した場合にtrueになる 省略
cve_count integer 一覧を省略する前の対象脆弱性の件数 0
kev_count integer 対象脆弱性のうちCISA KEVに掲載された件数 0件なら省略
cves objectの配列 対象脆弱性の一覧 省略
cves_truncated boolean cvesの一部を件数上限により省略した場合にtrueになる 省略
origin_count integer 一覧を省略する前の検出元の件数 0
origins objectの配列 パッケージの結果の元になった稼働イメージでの検出元 省略
origins_truncated boolean originsの一部を件数上限により省略した場合にtrueになる 省略

ecosystemの値は次のとおりです。

値 意味
node-pkg Node.jsのパッケージ
python-pkg Pythonのパッケージ
gobinary Goバイナリに含まれるモジュールや標準ライブラリ
jar Javaアーカイブに含まれるパッケージ

relationの値は次のとおりです。

値 意味
direct プロジェクトが直接要求する依存
transitive 別のパッケージを通じて要求する依存
mixed 直接依存と推移的依存の出現箇所を含む

normalizedは、名前を小文字にし、連続する-・_・.を1つの-にまとめた値です。 たとえば、Foo_Bar..Bazはfoo-bar-bazになり、元の名前と同じ値になる場合も出力します。

一覧の件数上限は次のとおりです。

一覧 上限 省略前の件数
language_items[].packages 1項目あたり100件 package_count
language_items[].packages[].occurrences 1パッケージあたり20件 occurrence_count
language_items[].packages[].cves 1パッケージあたり50件 cve_count
language_items[].packages[].origins 1パッケージあたり50件 origin_count

cve_countはパッケージ内で脆弱性IDを重複なく数え、kev_countも一覧の省略前に数えます。 origin_countはイメージ、パッケージ、脆弱性、検出箇所、ワークロードを含む検出元の組み合わせを重複なく数えるため、同じ脆弱性IDでも複数件になる場合があります。

selection_lower_boundとadopted_versionの読み分けは更新目標と採用版を参照してください。 actionがupdateでも、更新や検査を実行したとは限りません。

mkdirpの更新でminimistを修正版に上げる例では、minimistのthroughは["mkdirp"]です。 直接依存の版が変わらない場合は、途中で更新した依存元のうち、プロジェクトに最も近いものを載せます。

次のフィールドには補足があります。

  • through
    • 再解決全体で求めた共通の一覧を、更新を妨げられていた各パッケージに設定する
    • 個々のパッケージの依存経路に絞らないため、ほかの対象の依存元も含む場合がある

throughは、その項目に対応する作成済みのPRの情報から補う場合もあります。 最新の修正計画の処理で更新・検査を実行したかどうかは、update_executedとpost_update_check_executedで確認します。

left_outと、その除外を示すaction・reason・detailも、対応するPRの情報から補う場合があります。 部分PRの読み方は部分PRを参照してください。

出現箇所・脆弱性・検出元

language_items[].packages[].occurrences[]の1要素のフィールドは次のとおりです。

フィールド名 型 意味 値がないとき
path string 依存ファイル内の項目や記述箇所を識別する文字列 省略
version string 更新前の依存ファイルから読み取った対象パッケージの版 省略
direct boolean この出現箇所がプロジェクトの直接依存かを示す false
unpinned boolean 単一の版に固定されていない要求の場合にtrueになる 省略
constraint string 要求する版の条件 省略
marker string Pythonの依存宣言に付いている環境マーカー 省略
extras stringの配列 Pythonの依存宣言で指定した追加機能の名前 省略
matched boolean 依存ファイルの記述を稼働パッケージに対応付けられた場合にtrueになる 省略
manual_reason string この出現箇所を自動更新できない理由コード 省略
detail string 出現箇所や手動対応の理由を補足する説明文 省略

次のフィールドには補足があります。

  • path
    • npmではnode_modules/expressのようなlockfile内のパスを表す
    • pnpmではlockfile内のパッケージや依存宣言の識別子を表す
    • uvではパッケージ名と版を名前==版で表す
    • pipとGoでは、source.directoryを基準とするrequirements.txt:3やgo.mod:5のようなファイル名と行番号を表す
    • Mavenではpom.xmlのパス、Gradleではgradle.lockfileのパスを、リポジトリのルートを基準に表す
  • version
    • 更新前の依存ファイルの版を保持し、稼働イメージの版はinstalled、更新後に採用した版はadopted_versionで確認する
    • 版を固定していない要求や、依存ファイルだけでは版を読み取れない記述では省略する
  • matched
    • Mavenでは、版を更新処理で確認する記述も対応付けられるため、trueでもversionがない場合がある

対象脆弱性

language_items[].packages[].cves[]の1要素のフィールドは次のとおりです。

フィールド名 型 意味 値がないとき
vuln_id string 対象脆弱性のID —
severity string 対象脆弱性の深刻度 省略
fixed_vers stringの配列 脆弱性情報が示す修正版を重複なく並べ替えた一覧 省略
priority string 対象脆弱性の優先度 省略
kev boolean CISA KEVに掲載されている場合にtrueになる 省略

severityの値は次のとおりです。

値 意味
CRITICAL 緊急
HIGH 高
MEDIUM 中
LOW 低
UNKNOWN 不明

稼働イメージでの検出元

language_items[].packages[].origins[]の1要素のフィールドは次のとおりです。

フィールド名 型 意味 値がないとき
entity string 所見を検出したイメージ内容の識別子 —
ecosystem string 検出元のパッケージの種類 省略
class string 検出元のパッケージの分類 省略
name string 検出元で報告されたパッケージ名 —
version string 検出元で報告されたパッケージの版 —
vuln_id string 検出した脆弱性のID —
target string スキャナーが報告した検査対象の名前やパス 省略
pkg_path string スキャナーが報告したイメージ内のパッケージの所在 省略
workload string この検出結果に対応するワークロードキー —

entityは、config:sha256:…のようなdigestの種類と値に、判明している場合は@linux/amd64のようなプラットフォームを付けた文字列です。 有効なdigestを取得できない場合はunconfirmedになります。

ecosystemの値はパッケージの結果と同じです。 Pythonでは、nameに正規化前の表記を保持するため、同じパッケージの検出元に異なる表記が入る場合があります。

classの値は次のとおりです。

値 意味
lang 言語パッケージ
os OSパッケージ

このページで扱う言語パッケージの検出元は通常langです。 originsは稼働イメージでの検出記録で、更新前後の依存ファイルの検査結果はlanguage_items[].source_checkに入ります。

次は、同じパッケージの出現箇所・脆弱性・検出元を抜粋した例です。

{
  "occurrences": [
    {
      "path": "node_modules/express",
      "version": "4.18.2",
      "direct": true,
      "matched": true
    }
  ],
  "cves": [
    {
      "vuln_id": "CVE-2032-0001",
      "severity": "HIGH",
      "fixed_vers": [
        "4.19.2"
      ],
      "kev": true
    }
  ],
  "origins": [
    {
      "entity": "config:sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
      "ecosystem": "node-pkg",
      "class": "lang",
      "name": "express",
      "version": "4.18.2",
      "vuln_id": "CVE-2032-0001",
      "target": "Node.js",
      "pkg_path": "app/node_modules/express/package.json",
      "workload": "compose/shop/api"
    }
  ]
}

BOMの案内

language_items[].packages[].maven_bomのフィールドは次のとおりです。

フィールド名 型 意味 値がないとき
bom string BOMの名前をgroupId:artifactIdで示す —
property string BOMの版を指定するプロパティ名 省略
from string プロジェクトが取り込んでいるBOMの版 —
to string 対象パッケージを目標版以上で管理することを確認したBOMの版 —
manages string toのBOMが管理する対象パッケージの版 —

この情報は、パッケージのreasonがmaven_bom_series_unreachedで、案内を取得できた場合だけ付与します。

次のフィールドには補足があります。

  • to
    • fromと同じメジャー版で、fromより後のマイナー版に属する正式版を示す
    • language_items[].packages[].nameのパッケージをselection_lower_bound以上で管理することを確認できた中で、最も低いBOMの版を示す
    • 調査件数に上限があるため、公開済みのすべてのBOMを調べた結果とは限らない
  • manages
    • BOM自体の版ではなく、そのBOMが設定する対象パッケージの版を示す

版の管理方法はMavenの版の出所と書き換えを参照してください。

修正版に上げられないときの案内

language_items[].packages[].fix_hintのフィールドは次のとおりです。

フィールド名 型 意味 値がないとき
held_by objectの配列 対象の更新を妨げる、または対象を要求する依存元の一覧 省略
releases objectの配列 依存元や版を決めるPOMの公開版の情報 省略
go_line object 更新に必要なGoの版と、その版を要求するモジュール 省略
fix object 別のメジャー版の修正版の情報 省略
direct boolean プロジェクト自身による対象パッケージの直接の要求を確認した場合にtrueになる 省略
decided_by object 対象の版を決めるプロジェクト外のPOM 省略
configuration string Gradleで対象が目標版より低い版に残った構成名 省略

fix_hintを付与する対象のreasonは、dependents_hold_back、go_line_raised_too_far、go_runtime_unavailable、fix_in_other_major_version、maven_version_source_unsupported、gradle_version_source_unsupported、maven_release_not_found、maven_fix_in_other_major、Maven・Gradleのtarget_not_updatedです。 対象の理由でも、情報を取得できなければfix_hintやその子フィールドを省略します。

理由の意味は理由コード、案内の読み方は修正版に上げられないときの案内を参照してください。

次のフィールドには補足があります。

  • direct
    • Goの別メジャー版の案内では、プロジェクトのgo.modが対象を// indirectなしで要求する場合にtrueになる
    • Mavenのtarget_not_updatedでは、held_byに載せる依存元がなく、プロジェクト自身のモジュールが対象を直接宣言する場合にtrueになる
    • Gradleのtarget_not_updatedでは、held_byに載せる依存元がなく、対象の構成が対象を直接宣言する場合にtrueになる
  • configuration
    • Gradleのtarget_not_updatedで付与し、依存元も直接宣言も確認できなければ省略する

対象を要求する依存元

language_items[].packages[].fix_hint.held_by[]の1要素のフィールドは次のとおりです。

フィールド名 型 意味 値がないとき
parent string 対象パッケージを要求する依存元の名前 —
parent_version string 確認した依存元の版 —
range string 依存元が対象パッケージに指定する版の条件 ""

rangeの読み方はマネージャーによって異なります。

マネージャー・理由 意味
pipのdependents_hold_back 更新で固定しようとした版を許さない、有効な要求をまとめた指定範囲
Goのfix_in_other_major_version 依存元のgo.modが要求する対象モジュールの版
Mavenのtarget_not_updated 更新後に依存元が引き込む対象パッケージの版
Gradleのtarget_not_updated 依存関係の木で依存元が要求する対象パッケージの版

Maven・GradleのparentはgroupId:artifactId形式です。 Maven・Gradleのheld_byは最大5件で、pip・Goにはこの5件の制限を適用しません。

更新に必要なGoの版

language_items[].packages[].fix_hint.go_lineのフィールドは次のとおりです。

フィールド名 型 意味 値がないとき
module string 必要なGoの版をgo.modで宣言するモジュールのパス —
version string その宣言を持つモジュールの版 —
go string そのgo.modのgo行が宣言する版 —
built_with string 比較に使った、稼働バイナリをビルドしたGoの版 省略
to string 更新で要求した対象パッケージの版 省略

次のフィールドには補足があります。

  • built_with
    • go_line_raised_too_farでビルド時の版が分かる場合に付与する
    • ビルド時の版が不明な場合や、go_runtime_unavailableの場合は省略する
  • to
    • 更新対象の版であり、必要なGoの版を宣言したモジュールのversionとは異なる場合がある

別のメジャー版の修正版

language_items[].packages[].fix_hint.fixのフィールドは次のとおりです。

フィールド名 型 意味 値がないとき
version string 案内の条件を満たし、すべての対象脆弱性を直す最も低い版 —

versionの読み方は、パッケージのreasonによって異なります。

理由 意味
Goのfix_in_other_major_version 脆弱性情報が示す、別のメジャー版の修正版
Maven・Gradleのmaven_fix_in_other_major 脆弱性情報が示す、稼働版と異なるメジャー版の正式な修正版
Maven・Gradleのmaven_release_not_found Maven Centralの公開版のうち、目標版以上で、稼働版と異なるメジャー版の正式な修正版

Maven・Gradleのmaven_release_not_foundでは、稼働版と同じ系統の版を使います。 maven_fix_in_other_majorでは、稼働版と同じ系統、または系統の指定がない版を使います。

版の系統と選定条件はMavenの目標版とMaven Centralの版を参照してください。

対象の版を決めるPOM

language_items[].packages[].fix_hint.decided_byのフィールドは次のとおりです。

フィールド名 型 意味 値がないとき
kind string 対象の版を決めるPOMの種類 —
name string POMの名前をgroupId:artifactIdで示す —
version string 現在使っているPOMの版 —

kindの値は次のとおりです。

値 意味
parent_pom 親POM
bom 取り込んでいるBOM
spring_boot GradleのSpring Bootプラグインが使うBOM

kindがspring_bootの場合、nameはorg.springframework.boot:spring-boot-dependencies、versionはSpring Bootプラグインの版です。

依存元の公開版の情報

language_items[].packages[].fix_hint.releases[]は、対象パッケージを要求する依存元や、版を決めるPOMの公開版について確認した情報です。 language_items[].update.chain.hints[]の各要素も、この節で定義するフィールドを持ちます。

language_items[].packages[].fix_hint.releases[]の1要素のフィールドは次のとおりです。

フィールド名 型 意味 値がないとき
package string 修正版への更新を確認する対象パッケージの名前 —
parent string 確認した依存元または版を決めるPOMの名前 —
parent_version string 確認の基準とした依存元またはPOMの現在の版 —
via stringの配列 その依存元につながる、プロジェクトの直接依存の名前 省略
direct boolean 依存元の直接依存としての扱いを示す値 省略
spec string プロジェクトが直接依存に指定する版の範囲 省略
in_spec object 指定範囲または同じメジャー・マイナー版の中で確認した公開版 確認できなければ省略
latest object 最新として確認した公開版 確認できない、またはin_specと同じ版なら省略

次のフィールドには補足があります。

  • parentとparent_version
    • Maven・Gradleでは、対象を引き込む依存元、またはdecided_byで示すPOMの名前と版を表す
  • via
    • 依存元につながる直接依存を示し、案内に載せた公開版をどの直接依存の版が取り込むかまでは示さない
  • direct
    • npm・pnpm・uvでは、parentがプロジェクトの直接依存の場合にtrueになる
    • Maven・Gradleでは、公開版の情報に常にtrueを付けるため、この値からプロジェクトの直接依存かどうかは判別できない
    • pip・Goの公開版の情報では省略する
  • spec
    • npm・pnpmではpackage.json、uvではpyproject.tomlの指定範囲を表す
    • 直接依存でない場合や、直接依存でも版の範囲を指定していない場合は省略する
    • Maven・Gradle・pip・Goの公開版の情報では省略する

in_specとlatestが示す版は、マネージャーによって異なります。

マネージャー in_spec latest
npm・pnpm・uv 直接依存に指定した範囲内の最新の正式版 公開されている最新の正式版
pip 付与しない 公開されている最新の正式版
Go 付与しない モジュールプロキシの@latestで確認した版
Maven・Gradle parent_versionと同じメジャー・マイナー版に属する最新の正式版 依存元またはPOMの最新の正式版

npm・pnpm・uvのin_specはdirectがtrueの場合だけ付与し、specがなければ版の制限なしとして確認します。 Maven・Gradleのin_specには、現在使っているparent_versionと同じ版が入る場合もあります。

確認した公開版

language_items[].packages[].fix_hint.releases[].in_specのフィールドは次のとおりで、同じ要素のlatestと、language_items[].update.chain.hints[]内のin_spec・latestにも共通です。

フィールド名 型 意味 値がないとき
version string 確認した依存元またはPOMの公開版 —
range string その公開版が対象パッケージに指定する範囲または版 省略
fixes boolean その公開版の指定が修正版を許す、または修正版を設定することを確認したかを示す false
dropped boolean その公開版に対象の要求や版の設定がないことを確認した場合にtrueになる 省略

rangeとfixesの読み方は次のとおりです。

マネージャー range fixes
npm・pnpm・uv・pip 対象パッケージに指定する版の範囲 すべての対象脆弱性を直す公開済みの正式版が範囲に含まれる場合にtrue
Go go.modが要求する対象モジュールの版 別メジャー版の案内では常にfalse
Maven・Gradle 対象パッケージに設定する版 目標版以上で、すべての対象脆弱性を直す場合にtrue

次のフィールドには補足があります。

  • range
    • 版を制限しない要求など、範囲の文字列が空の場合は省略する
  • fixes
    • 公開版の宣言についての確認結果であり、その版への更新による解消や動作を保証しない
    • Goでは同じモジュールパスへの要求を調べるため、falseだけで依存元の公開版全体が脆弱だとは判断できない
  • dropped
    • npm・pnpm・uv・pip・Goでは、その公開版が対象を直接の依存として宣言していない場合にtrueになる
    • Maven・Gradleの依存元では、POMが対象をdependenciesに宣言していない場合にtrueになる
    • Maven・Gradleの版を決めるPOMでは、対象の版を設定していない場合にtrueになる
    • 別の依存経路から対象パッケージが入る可能性は残る

公開版の情報がないことは、修正可能な公開版が存在しないことを意味しません。 情報の読み方と調査の上限は修正版に上げられないときの案内を参照してください。