action-allowlist-review: bump dependabot/fetch-metadata from 3.0.0 to 3.1.0 in /.github/actions/for-dependabot-triggered-reviews#752
Conversation
|
@dependabot rebase |
Bumps [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) from 3.0.0 to 3.1.0. - [Release notes](https://github.com/dependabot/fetch-metadata/releases) - [Commits](dependabot/fetch-metadata@ffa630c...25dd0e3) --- updated-dependencies: - dependency-name: dependabot/fetch-metadata dependency-version: 3.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
9371b9e to
409bd9e
Compare
potiuk
left a comment
There was a problem hiding this comment.
Status
verify-action-build flagged this bump with 1 unverified binary download(s) detected — but on inspection this one is a false positive in our verifier, not an issue in the action. Approving on that basis.
Why it's a false positive
The flagged code is src/dependabot/verified_commits.ts:99:
const svg = await new Promise<string>((resolve) => {
https.get(`https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=${name}&package-manager=${ecosystem}&previous-version=${oldVersion}&new-version=${newVersion}`, res => {
let data = ''
res.on('data', chunk => { data += chunk.toString('utf8') })
res.on('end', () => { resolve(data) })
}).on('error', () => { resolve('') })
})
const scoreChunk = svg.match(/<title>compatibility: (?<score>\d+)%<\/title>/m)
return scoreChunk?.groups ? parseInt(scoreChunk.groups.score) : 0Unlike #769 (tc.downloadTool of a luarocks source tarball that's then extracted, configured, built and installed) or other real binary-download cases, this:
- Fetches an SVG badge computed on demand by GitHub for each
(name, ecosystem, prev, new)tuple — there is no "known-good" SHA256 a maintainer could pin against. - The bytes are never installed, executed, persisted to disk, or trusted — they're regex-matched for a single integer 0–100.
- Worst-case malicious response: regex fails to match → returns
0. No security boundary crossed. - Host is
*.githubapp.com— same trust domain as the GitHub-hosted runner itself.
Adding a checksum/signature check upstream would be cargo-cult; there's no shape of "expected hash" to compare against on a per-request computed badge.
Source review of the bump
v3.0.0 → v3.1.0 source diff is the legitimate set of changes the release advertises. No suspicious behaviour introduced; the underlying bump is fine.
Follow-up
Opening a separate PR on verify-action-build to narrow the binary-download check so it doesn't flag (a) trusted-host fetches like *.githubapp.com and (b) responses that are obviously parsed-as-data (regex/JSON.parse) rather than persisted/executed. That'll prevent this false-positive on the next dependabot/fetch-metadata bump (and on similar patterns in other actions that fetch metadata badges).
Conditional approval
Approving on the same basis as #761/#769 — verifier finding has been investigated, source review of the bump itself is clean. Asking for a second pair of eyes before merge.
cc: @raboof @dave2wave @dfoulks1
Generated-by: Claude Opus 4.7 (1M context)
Bumps dependabot/fetch-metadata from 3.0.0 to 3.1.0.
Release notes
Sourced from dependabot/fetch-metadata's releases.
Commits
25dd0e3v3.1.0 (#692)e073f50Merge pull request #705 from dependabot/dependabot/npm_and_yarn/hono-4.12.140670e16build(deps-dev): bump hono from 4.12.12 to 4.12.147a7fe10Merge pull request #702 from dependabot/dependabot/npm_and_yarn/dependencies-...5168191Updating dist build23882e1build(deps): bump@actions/githubin the dependencies group1072469Merge pull request #701 from dependabot/dependabot/github_actions/actions/cre...43f8a00build(deps): bump actions/create-github-app-token from 3.0.0 to 3.1.1b4d904aMerge pull request #703 from dependabot/dependabot/npm_and_yarn/globals-17.5.0c8046bbbuild(deps-dev): bump globals from 17.4.0 to 17.5.0