[vulndb] data/reports: add symbols for GO-2026-4859

9 views
Skip to first unread message

Gerrit Bot (Gerrit)

unread,
May 20, 2026, 8:30:26 AMMay 20
to goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com

Gerrit Bot has uploaded the change for review

Commit message

data/reports: add symbols for GO-2026-4859

Updates the affected symbols list to enable precise call graph analysis in govulncheck.

Fixes golang/vulndb#5011
Change-Id: I5cbb7152b56e8097306fb124727aa8545be19a9c
GitHub-Last-Rev: fada24bc733df3b73ab915e35f35e8eee758084f
GitHub-Pull-Request: golang/vulndb#5012

Change diff

diff --git a/data/osv/GO-2026-4859.json b/data/osv/GO-2026-4859.json
index 6970e44..edf73ec 100644
--- a/data/osv/GO-2026-4859.json
+++ b/data/osv/GO-2026-4859.json
@@ -28,7 +28,29 @@
]
}
],
- "ecosystem_specific": {}
+ "ecosystem_specific": {
+ "imports": [
+ {
+ "path": "github.com/moby/buildkit/client/llb",
+ "symbols": [
+ "Git"
+ ]
+ },
+ {
+ "path": "github.com/moby/buildkit/source/git",
+ "symbols": [
+ "NewGitIdentifier",
+ "Source.Identifier"
+ ]
+ },
+ {
+ "path": "github.com/moby/buildkit/util/gitutil",
+ "symbols": [
+ "ParseURL"
+ ]
+ }
+ ]
+ }
}
],
"references": [
@@ -43,6 +65,14 @@
{
"type": "WEB",
"url": "https://github.com/moby/buildkit/releases/tag/v0.28.1"
+ },
+ {
+ "type": "FIX",
+ "url": "https://github.com/moby/buildkit/commit/45b038cd0b2ec2d34013ce0f085522276f7ee0d8"
+ },
+ {
+ "type": "FIX",
+ "url": "https://github.com/moby/buildkit/commit/f5462c216098af766f97ea4cb328e65c6d8f7256"
}
],
"database_specific": {
diff --git a/data/reports/GO-2026-4859.yaml b/data/reports/GO-2026-4859.yaml
index 646557d..af85793 100644
--- a/data/reports/GO-2026-4859.yaml
+++ b/data/reports/GO-2026-4859.yaml
@@ -4,6 +4,18 @@
versions:
- fixed: 0.28.1
vulnerable_at: 0.28.0
+ packages:
+ - package: github.com/moby/buildkit/client/llb
+ symbols:
+ - Git
+ - package: github.com/moby/buildkit/source/git
+ symbols:
+ - NewGitIdentifier
+ derived_symbols:
+ - Source.Identifier
+ - package: github.com/moby/buildkit/util/gitutil
+ symbols:
+ - ParseURL
summary: BuildKit Git URL subdir component can cause access to restricted files in github.com/moby/buildkit
cves:
- CVE-2026-33748
@@ -13,8 +25,8 @@
- advisory: https://github.com/moby/buildkit/security/advisories/GHSA-4vrq-3vrq-g6gg
- web: https://docs.docker.com/build/concepts/context/#url-fragments
- web: https://github.com/moby/buildkit/releases/tag/v0.28.1
-notes:
- - failed to auto-populate symbols: no commits found for github.com/moby/buildkit
+ - fix: https://github.com/moby/buildkit/commit/45b038cd0b2ec2d34013ce0f085522276f7ee0d8
+ - fix: https://github.com/moby/buildkit/commit/f5462c216098af766f97ea4cb328e65c6d8f7256
source:
id: GHSA-4vrq-3vrq-g6gg
created: 2026-03-26T15:25:09.28540352-04:00

Change information

Files:
  • M data/osv/GO-2026-4859.json
  • M data/reports/GO-2026-4859.yaml
Change size: S
Delta: 2 files changed, 45 insertions(+), 3 deletions(-)
Open in Gerrit

Related details

Attention set is empty
Submit Requirements:
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedLUCI-Pass
  • requirement satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
  • requirement is not satisfiedTryBots-Pass
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: newchange
Gerrit-Project: vulndb
Gerrit-Branch: master
Gerrit-Change-Id: I5cbb7152b56e8097306fb124727aa8545be19a9c
Gerrit-Change-Number: 780105
Gerrit-PatchSet: 1
Gerrit-Owner: Gerrit Bot <letsus...@gmail.com>
unsatisfied_requirement
satisfied_requirement
open
diffy

Gopher Robot (Gerrit)

unread,
May 20, 2026, 8:30:28 AMMay 20
to Gerrit Bot, goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com

Gopher Robot added 1 comment

Patchset-level comments
File-level comment, Patchset 1 (Latest):
Gopher Robot . unresolved

I spotted some possible problems with your PR:

  1. You have a long 87 character line in the commit message body. Please add line breaks to long lines that should be wrapped. Lines in the commit message body should be wrapped at ~76 characters unless needed for things like URLs or tables. (Note: GitHub might render long lines as soft-wrapped, so double-check in the Gerrit commit message shown above.)
2. Do you have the right bug reference format? For most repos outside the main go repo, the format is usually 'Fixes golang/go#12345' or 'Updates golang/go#12345' at the end of the commit message.

Please address any problems by updating the GitHub PR.

When complete, mark this comment as 'Done' and click the [blue 'Reply' button](https://go.dev/wiki/GerritBot#i-left-a-reply-to-a-comment-in-gerrit-but-no-one-but-me-can-see-it) above. These findings are based on heuristics; if a finding does not apply, briefly reply here saying so.

To update the commit title or commit message body shown here in Gerrit, you must edit the GitHub PR title and PR description (the first comment) in the GitHub web interface using the 'Edit' button or 'Edit' menu entry there. Note: pushing a new commit to the PR will not automatically update the commit message used by Gerrit.

For more details, see:

(In general for Gerrit code reviews, the change author is expected to [log in to Gerrit](https://go-review.googlesource.com/login/) with a Gmail or other Google account and then close out each piece of feedback by marking it as 'Done' if implemented as suggested or otherwise reply to each review comment. See the [Review](https://go.dev/doc/contribute#review) section of the Contributing Guide for details.)

Open in Gerrit

Related details

Attention set is empty
Submit Requirements:
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedLUCI-Pass
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    • requirement is not satisfiedTryBots-Pass
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: vulndb
    Gerrit-Branch: master
    Gerrit-Change-Id: I5cbb7152b56e8097306fb124727aa8545be19a9c
    Gerrit-Change-Number: 780105
    Gerrit-PatchSet: 1
    Gerrit-Owner: Gerrit Bot <letsus...@gmail.com>
    Gerrit-CC: Gopher Robot <go...@golang.org>
    Gerrit-Comment-Date: Wed, 20 May 2026 12:30:24 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    unsatisfied_requirement
    open
    diffy

    Gopher Robot (Gerrit)

    unread,
    May 20, 2026, 8:36:31 AMMay 20
    to Gerrit Bot, goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com

    Message from Gopher Robot

    Congratulations on opening your first change. Thank you for your contribution!

    Next steps:
    A maintainer will review your change and provide feedback. See
    https://go.dev/doc/contribute#review for more info and tips to get your
    patch through code review.

    Most changes in the Go project go through a few rounds of revision. This can be
    surprising to people new to the project. The careful, iterative review process
    is our way of helping mentor contributors and ensuring that their contributions
    have a lasting impact.

    Open in Gerrit

    Related details

    Attention set is empty
    Submit Requirements:
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedLUCI-Pass
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    • requirement is not satisfiedTryBots-Pass
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: vulndb
    Gerrit-Branch: master
    Gerrit-Change-Id: I5cbb7152b56e8097306fb124727aa8545be19a9c
    Gerrit-Change-Number: 780105
    Gerrit-PatchSet: 1
    Gerrit-Owner: Gerrit Bot <letsus...@gmail.com>
    Gerrit-CC: Gopher Robot <go...@golang.org>
    Gerrit-Comment-Date: Wed, 20 May 2026 12:36:26 +0000
    Gerrit-HasComments: No
    Gerrit-Has-Labels: No
    unsatisfied_requirement
    open
    diffy

    Kunal Memane (MK) (Gerrit)

    unread,
    May 20, 2026, 8:52:38 AMMay 20
    to Gerrit Bot, goph...@pubsubhelper.golang.org, Gopher Robot, golang-co...@googlegroups.com

    Kunal Memane (MK) added 1 comment

    Patchset-level comments
    Gopher Robot . resolved

    I spotted some possible problems with your PR:

      1. You have a long 87 character line in the commit message body. Please add line breaks to long lines that should be wrapped. Lines in the commit message body should be wrapped at ~76 characters unless needed for things like URLs or tables. (Note: GitHub might render long lines as soft-wrapped, so double-check in the Gerrit commit message shown above.)
    2. Do you have the right bug reference format? For most repos outside the main go repo, the format is usually 'Fixes golang/go#12345' or 'Updates golang/go#12345' at the end of the commit message.

    Please address any problems by updating the GitHub PR.

    When complete, mark this comment as 'Done' and click the [blue 'Reply' button](https://go.dev/wiki/GerritBot#i-left-a-reply-to-a-comment-in-gerrit-but-no-one-but-me-can-see-it) above. These findings are based on heuristics; if a finding does not apply, briefly reply here saying so.

    To update the commit title or commit message body shown here in Gerrit, you must edit the GitHub PR title and PR description (the first comment) in the GitHub web interface using the 'Edit' button or 'Edit' menu entry there. Note: pushing a new commit to the PR will not automatically update the commit message used by Gerrit.

    For more details, see:

    (In general for Gerrit code reviews, the change author is expected to [log in to Gerrit](https://go-review.googlesource.com/login/) with a Gmail or other Google account and then close out each piece of feedback by marking it as 'Done' if implemented as suggested or otherwise reply to each review comment. See the [Review](https://go.dev/doc/contribute#review) section of the Contributing Guide for details.)

    Kunal Memane (MK)

    Done

    Open in Gerrit

    Related details

    Attention set is empty
    Submit Requirements:
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedLUCI-Pass
      • requirement satisfiedNo-Unresolved-Comments
      • requirement is not satisfiedReview-Enforcement
      • requirement is not satisfiedTryBots-Pass
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: vulndb
      Gerrit-Branch: master
      Gerrit-Change-Id: I5cbb7152b56e8097306fb124727aa8545be19a9c
      Gerrit-Change-Number: 780105
      Gerrit-PatchSet: 1
      Gerrit-Owner: Gerrit Bot <letsus...@gmail.com>
      Gerrit-CC: Gopher Robot <go...@golang.org>
      Gerrit-CC: Kunal Memane (MK) <kme...@redhat.com>
      Gerrit-Comment-Date: Wed, 20 May 2026 12:52:32 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Gopher Robot <go...@golang.org>
      unsatisfied_requirement
      satisfied_requirement
      open
      diffy

      Gerrit Bot (Gerrit)

      unread,
      May 20, 2026, 8:59:16 AMMay 20
      to Kunal Memane (MK), goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com

      Gerrit Bot uploaded new patchset

      Gerrit Bot uploaded patch set #2 to this change.
      Open in Gerrit

      Related details

      Attention set is empty
      Submit Requirements:
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedLUCI-Pass
      • requirement satisfiedNo-Unresolved-Comments
      • requirement is not satisfiedReview-Enforcement
      • requirement is not satisfiedTryBots-Pass
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: newpatchset
      Gerrit-Project: vulndb
      Gerrit-Branch: master
      Gerrit-Change-Id: I5cbb7152b56e8097306fb124727aa8545be19a9c
      Gerrit-Change-Number: 780105
      Gerrit-PatchSet: 2
      unsatisfied_requirement
      satisfied_requirement
      open
      diffy

      Kunal Memane (MK) (Gerrit)

      unread,
      May 25, 2026, 1:01:24 AMMay 25
      to Gerrit Bot, goph...@pubsubhelper.golang.org, Gopher Robot, golang-co...@googlegroups.com

      Kunal Memane (MK) added 1 comment

      Patchset-level comments
      Open in Gerrit

      Related details

      Attention set is empty
      Submit Requirements:
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedLUCI-Pass
      • requirement satisfiedNo-Unresolved-Comments
      • requirement is not satisfiedReview-Enforcement
      • requirement is not satisfiedTryBots-Pass
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: vulndb
      Gerrit-Branch: master
      Gerrit-Change-Id: I5cbb7152b56e8097306fb124727aa8545be19a9c
      Gerrit-Change-Number: 780105
      Gerrit-PatchSet: 2
      Gerrit-Owner: Gerrit Bot <letsus...@gmail.com>
      Gerrit-CC: Gopher Robot <go...@golang.org>
      Gerrit-CC: Kunal Memane (MK) <kme...@redhat.com>
      Gerrit-Comment-Date: Mon, 25 May 2026 05:01:16 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      unsatisfied_requirement
      satisfied_requirement
      open
      diffy

      Kunal Memane (MK) (Gerrit)

      unread,
      Jun 2, 2026, 2:48:35 AM (8 days ago) Jun 2
      to Gerrit Bot, goph...@pubsubhelper.golang.org, Gopher Robot, golang-co...@googlegroups.com

      Kunal Memane (MK) added 1 comment

      Patchset-level comments
      Kunal Memane (MK) . resolved
      Open in Gerrit

      Related details

      Attention set is empty
      Submit Requirements:
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedLUCI-Pass
      • requirement satisfiedNo-Unresolved-Comments
      • requirement is not satisfiedReview-Enforcement
      • requirement is not satisfiedTryBots-Pass
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: vulndb
      Gerrit-Branch: master
      Gerrit-Change-Id: I5cbb7152b56e8097306fb124727aa8545be19a9c
      Gerrit-Change-Number: 780105
      Gerrit-PatchSet: 2
      Gerrit-Owner: Gerrit Bot <letsus...@gmail.com>
      Gerrit-CC: Gopher Robot <go...@golang.org>
      Gerrit-CC: Kunal Memane (MK) <kme...@redhat.com>
      Gerrit-Comment-Date: Tue, 02 Jun 2026 06:48:28 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      unsatisfied_requirement
      satisfied_requirement
      open
      diffy

      Nicholas Husin (Gerrit)

      unread,
      Jun 2, 2026, 12:58:07 PM (8 days ago) Jun 2
      to Kunal Memane (MK), Gerrit Bot, goph...@pubsubhelper.golang.org, Gopher Robot, golang-co...@googlegroups.com

      Nicholas Husin added 1 comment

      Patchset-level comments
      Nicholas Husin . unresolved

      Thanks for the CL.

      Can I ask how you came to these symbols and the motivation behind adding them?

      I'm personally more inclined to keep the symbols unpopulated for the following reasons:

      • The GHSA does not mention a specific fix commit. While the commits you selected look reasonable, it seems hard to be 100% sure without doing a thorough investigation.
      • The fix you commits selected also include diffs to symbols that you have not added, e.g. `45b038cd0b2ec2d34013ce0f085522276f7ee0d8` changes `parseOpts`, which in turn affects `FromURL` in `github.com/moby/buildkit/util/gitutil`. It could very well be the case that this does not affect the vuln at all, but again, it is hard to be 100% sure without digging deeply.
      • There is already a newer fixed version which, from a glance, does not introduce breaking API changes. So, users who are getting alerted by the vulnerability should be able to jut upgrade their module version.

      Essentially, I think it is better to be conservative if we cannot be 100% sure that no other symbols are affected, so users do not get a false negative.

      Open in Gerrit

      Related details

      Attention set is empty
      Submit Requirements:
        • requirement is not satisfiedCode-Review
        • requirement is not satisfiedLUCI-Pass
        • requirement is not satisfiedNo-Unresolved-Comments
        • requirement is not satisfiedReview-Enforcement
        • requirement is not satisfiedTryBots-Pass
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: vulndb
        Gerrit-Branch: master
        Gerrit-Change-Id: I5cbb7152b56e8097306fb124727aa8545be19a9c
        Gerrit-Change-Number: 780105
        Gerrit-PatchSet: 2
        Gerrit-Owner: Gerrit Bot <letsus...@gmail.com>
        Gerrit-Reviewer: Nicholas Husin <n...@golang.org>
        Gerrit-CC: Gopher Robot <go...@golang.org>
        Gerrit-CC: Kunal Memane (MK) <kme...@redhat.com>
        Gerrit-Comment-Date: Tue, 02 Jun 2026 16:58:02 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        unsatisfied_requirement
        open
        diffy

        Kunal Memane (MK) (Gerrit)

        unread,
        Jun 4, 2026, 8:50:28 AM (6 days ago) Jun 4
        to Gerrit Bot, goph...@pubsubhelper.golang.org, Nicholas Husin, Gopher Robot, golang-co...@googlegroups.com

        Kunal Memane (MK) added 1 comment

        Patchset-level comments
        Nicholas Husin . unresolved

        Thanks for the CL.

        Can I ask how you came to these symbols and the motivation behind adding them?

        I'm personally more inclined to keep the symbols unpopulated for the following reasons:

        • The GHSA does not mention a specific fix commit. While the commits you selected look reasonable, it seems hard to be 100% sure without doing a thorough investigation.
        • The fix you commits selected also include diffs to symbols that you have not added, e.g. `45b038cd0b2ec2d34013ce0f085522276f7ee0d8` changes `parseOpts`, which in turn affects `FromURL` in `github.com/moby/buildkit/util/gitutil`. It could very well be the case that this does not affect the vuln at all, but again, it is hard to be 100% sure without digging deeply.
        • There is already a newer fixed version which, from a glance, does not introduce breaking API changes. So, users who are getting alerted by the vulnerability should be able to jut upgrade their module version.

        Essentially, I think it is better to be conservative if we cannot be 100% sure that no other symbols are affected, so users do not get a false negative.

        Kunal Memane (MK)

        Thanks for the response.

        The commits were identified by comparing v0.28.0..v0.28.1, the release notes explicitly reference this GHSA. Only 8 commits exist between the two versions; these two are the only ones related to Git URL/subdir handling.

        Why these specific symbols:
        1. llb.Git - the client-side LLB API entry point. The fix adds subdir normalization (path.Join("/", subdir)) directly here.
        2. source/git.NewGitIdentifier / Source.Identifier - the server-side entry points. NewGitIdentifier had insufficient path.Clean logic that was replaced, and Source.Identifier (derived) delegates to it and also gained validateGitRef.
        3. gitutil.ParseURL - the URL parsing entry point. It calls the unexported parseOpts (via FromURL/fromSCPStyleURL) where the core subdir normalization fix lives.

        On symbols touched but not included:
        1. parseOpts is unexported - covered by listing ParseURL.
        2. FromURL is exported but is an intermediate step called by ParseURL.
        3. validateDirsOnly, validateGitRef - newly added by the fix, not vulnerable symbols.
        4. checkout, resolveMetadata, tryRemoteFetch — methods on the unexported gitSourceHandler type. The changes there are hardening with "no known attack" per the commit message.

        On being conservative:
        Leaving symbols unpopulated avoids false negatives but introduces false positives - every project importing buildkit at a vulnerable version gets flagged, even if it never uses Git sources. The symbols here are the minimal set of exported entry points covering all paths through which a malicious subdir enters the system. govulncheck can then correctly scope alerts to projects that actually call these functions.

        Open in Gerrit

        Related details

        Attention set is empty
        Submit Requirements:
        • requirement is not satisfiedCode-Review
        • requirement is not satisfiedLUCI-Pass
        • requirement is not satisfiedNo-Unresolved-Comments
        • requirement is not satisfiedReview-Enforcement
        • requirement is not satisfiedTryBots-Pass
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: vulndb
        Gerrit-Branch: master
        Gerrit-Change-Id: I5cbb7152b56e8097306fb124727aa8545be19a9c
        Gerrit-Change-Number: 780105
        Gerrit-PatchSet: 2
        Gerrit-Owner: Gerrit Bot <letsus...@gmail.com>
        Gerrit-Reviewer: Nicholas Husin <n...@golang.org>
        Gerrit-CC: Gopher Robot <go...@golang.org>
        Gerrit-CC: Kunal Memane (MK) <kme...@redhat.com>
        Gerrit-Comment-Date: Thu, 04 Jun 2026 12:50:21 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        Comment-In-Reply-To: Nicholas Husin <n...@golang.org>
        unsatisfied_requirement
        open
        diffy

        Nicholas Husin (Gerrit)

        unread,
        Jun 4, 2026, 5:14:45 PM (6 days ago) Jun 4
        to Kunal Memane (MK), Gerrit Bot, goph...@pubsubhelper.golang.org, Gopher Robot, golang-co...@googlegroups.com

        Nicholas Husin added 1 comment

        Patchset-level comments
        Nicholas Husin . unresolved

        Thanks for the CL.

        Can I ask how you came to these symbols and the motivation behind adding them?

        I'm personally more inclined to keep the symbols unpopulated for the following reasons:

        • The GHSA does not mention a specific fix commit. While the commits you selected look reasonable, it seems hard to be 100% sure without doing a thorough investigation.
        • The fix you commits selected also include diffs to symbols that you have not added, e.g. `45b038cd0b2ec2d34013ce0f085522276f7ee0d8` changes `parseOpts`, which in turn affects `FromURL` in `github.com/moby/buildkit/util/gitutil`. It could very well be the case that this does not affect the vuln at all, but again, it is hard to be 100% sure without digging deeply.
        • There is already a newer fixed version which, from a glance, does not introduce breaking API changes. So, users who are getting alerted by the vulnerability should be able to jut upgrade their module version.

        Essentially, I think it is better to be conservative if we cannot be 100% sure that no other symbols are affected, so users do not get a false negative.

        Kunal Memane (MK)

        Thanks for the response.

        The commits were identified by comparing v0.28.0..v0.28.1, the release notes explicitly reference this GHSA. Only 8 commits exist between the two versions; these two are the only ones related to Git URL/subdir handling.

        Why these specific symbols:
        1. llb.Git - the client-side LLB API entry point. The fix adds subdir normalization (path.Join("/", subdir)) directly here.
        2. source/git.NewGitIdentifier / Source.Identifier - the server-side entry points. NewGitIdentifier had insufficient path.Clean logic that was replaced, and Source.Identifier (derived) delegates to it and also gained validateGitRef.
        3. gitutil.ParseURL - the URL parsing entry point. It calls the unexported parseOpts (via FromURL/fromSCPStyleURL) where the core subdir normalization fix lives.

        On symbols touched but not included:
        1. parseOpts is unexported - covered by listing ParseURL.
        2. FromURL is exported but is an intermediate step called by ParseURL.
        3. validateDirsOnly, validateGitRef - newly added by the fix, not vulnerable symbols.
        4. checkout, resolveMetadata, tryRemoteFetch — methods on the unexported gitSourceHandler type. The changes there are hardening with "no known attack" per the commit message.

        On being conservative:
        Leaving symbols unpopulated avoids false negatives but introduces false positives - every project importing buildkit at a vulnerable version gets flagged, even if it never uses Git sources. The symbols here are the minimal set of exported entry points covering all paths through which a malicious subdir enters the system. govulncheck can then correctly scope alerts to projects that actually call these functions.

        Nicholas Husin

        FromURL is exported but is an intermediate step called by ParseURL.

        It looks like `ParseURL` is a rather thin wrapper around `FromURL`:

        ```
        // ParseURL parses a BuildKit-style Git URL (that may contain additional
        // fragment metadata) and returns a parsed GitURL object.
        func ParseURL(remote string) (*GitURL, error) {
        if proto := protoRegexp.FindString(remote); proto != "" {
        proto = strings.ToLower(strings.TrimSuffix(proto, "://"))
        if _, ok := supportedProtos[proto]; !ok {
        return nil, errors.Wrap(ErrInvalidProtocol, proto)
        }
        url, err := url.Parse(remote)
        if err != nil {
        return nil, err
        }
        return FromURL(url)
        }
        // Irrelevant part omitted...
        }
        ```

        If `ParseURL` is vulnerable, then `FromURL` is likely vulnerable too, in which case this CL would leave vulnerable users (those who use `FromURL` directly) uninformed.

        I think your heuristic for determining the vulnerable symbols are largely correct. However, manually digging into symbols like this for every report is likely not something we can and should do. As in the case of `FromURL`, it is easy for us to miss vulnerable symbols by doing solely manual evaluation.

        While I don't think this is true for this particular case, even missing some fix commits entirely is probably pretty plausible. A package author, for example, might have some of their fix contained in a seemingly unrelated commit due to bad version control hygiene (or perhaps, it was an entirely unintended side-effect).

        While a false positive from being conservative might be annoying, I think that's ultimately working as intended and better than the alternative. With the volume of reports we have coming in, adding the symbols for all reports are likely untenable and prone to mistake. We have to choose our battles wisely here. When symbols need to be added manually, it should be done when we are very sure that we can get it done right, and when doing so affects a large amount of users (e.g., package with a lot of imports and no fixed newer version).

        Open in Gerrit

        Related details

        Attention set is empty
        Submit Requirements:
        • requirement is not satisfiedCode-Review
        • requirement is not satisfiedLUCI-Pass
        • requirement is not satisfiedNo-Unresolved-Comments
        • requirement is not satisfiedReview-Enforcement
        • requirement is not satisfiedTryBots-Pass
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: vulndb
        Gerrit-Branch: master
        Gerrit-Change-Id: I5cbb7152b56e8097306fb124727aa8545be19a9c
        Gerrit-Change-Number: 780105
        Gerrit-PatchSet: 2
        Gerrit-Owner: Gerrit Bot <letsus...@gmail.com>
        Gerrit-Reviewer: Nicholas Husin <n...@golang.org>
        Gerrit-CC: Gopher Robot <go...@golang.org>
        Gerrit-CC: Kunal Memane (MK) <kme...@redhat.com>
        Gerrit-Comment-Date: Thu, 04 Jun 2026 21:14:40 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        Comment-In-Reply-To: Nicholas Husin <n...@golang.org>
        Comment-In-Reply-To: Kunal Memane (MK) <kme...@redhat.com>
        unsatisfied_requirement
        open
        diffy

        Kunal Memane (MK) (Gerrit)

        unread,
        Jun 5, 2026, 1:25:43 PM (5 days ago) Jun 5
        to Gerrit Bot, goph...@pubsubhelper.golang.org, Nicholas Husin, Gopher Robot, golang-co...@googlegroups.com

        Kunal Memane (MK) added 1 comment

        Patchset-level comments

        Thanks for the detailed explanation, that makes sense. You're right that FromURL is a gap I missed, which itself proves your point about manual symbol analysis being error prone.

        I agree that being conservative is the right default here, especially given the volume of incoming reports. The false positive tradeoff is better than risking false negatives from incomplete symbol coverage.

        I'll drop the change and keep the report with an unpopulated symbols section.

        Open in Gerrit

        Related details

        Attention set is empty
        Submit Requirements:
        • requirement is not satisfiedCode-Review
        • requirement is not satisfiedLUCI-Pass
        • requirement is not satisfiedNo-Unresolved-Comments
        • requirement is not satisfiedReview-Enforcement
        • requirement is not satisfiedTryBots-Pass
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: vulndb
        Gerrit-Branch: master
        Gerrit-Change-Id: I5cbb7152b56e8097306fb124727aa8545be19a9c
        Gerrit-Change-Number: 780105
        Gerrit-PatchSet: 2
        Gerrit-Owner: Gerrit Bot <letsus...@gmail.com>
        Gerrit-Reviewer: Nicholas Husin <n...@golang.org>
        Gerrit-CC: Gopher Robot <go...@golang.org>
        Gerrit-CC: Kunal Memane (MK) <kme...@redhat.com>
        Gerrit-Comment-Date: Fri, 05 Jun 2026 17:25:36 +0000
        unsatisfied_requirement
        open
        diffy

        Gopher Robot (Gerrit)

        unread,
        2:41 AM (3 hours ago) 2:41 AM
        to Kunal Memane (MK), Gerrit Bot, goph...@pubsubhelper.golang.org, Nicholas Husin, golang-co...@googlegroups.com

        Gopher Robot abandoned this change.

        View Change

        Abandoned GitHub PR golang/vulndb#5012 has been closed.

        Gopher Robot abandoned this change

        Related details

        Attention set is empty
        Submit Requirements:
        • requirement is not satisfiedCode-Review
        • requirement is not satisfiedLUCI-Pass
        • requirement is not satisfiedNo-Unresolved-Comments
        • requirement is not satisfiedReview-Enforcement
        • requirement is not satisfiedTryBots-Pass
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: abandon
        unsatisfied_requirement
        open
        diffy
        Reply all
        Reply to author
        Forward
        0 new messages