Skip to content
MicrosoftGHSA-qcxw-jfff-cxpc

GitHubCredentialProvider - Regex substring host match sends Basic-auth tokens

HighCVE-2026-47284 · Published Jun 9, 2026

### Impact A security feature bypass vulnerability exists in VS Code's built-in GitHub extension, where `GitHubCredentialProvider` validated the request host using the unanchored regex `/github\.com/i`. Because the pattern is a substring match (no `^`/` CVE-2026-47284: Microsoft high vulnerability | Advisories

anchors), hostnames such as `github.com.attacker.example` or `notgithub.com` were treated as GitHub and received the signed-in user's token via HTTP Basic authentication. A malicious repository can include a `.gitmodules` entry pointing to such a host; when the victim runs `Git: Clone (Recursive)` or `git submodule update` from inside VS Code, the credential helper sends the GitHub token to the attacker. Note that this overrides Git's own credential lookup (which performs strict host matching) and is not gated by workspace trust because credential delivery happens during the clone step. ### Patches The fix replaces the substring regex with port-stripped, case-insensitive equality against `github.com`. Available in VS Code **1.123.1**. ### Workarounds There is no setting-based workaround. Until upgrade, avoid recursive clones or `git submodule update` of untrusted repositories from inside VS Code while signed in to GitHub, ins...

GitHub advisory

Affected versions

PackageAffectedFixed in
vscode
Product
< 1.123.11.123.1
Details and references

### Impact A security feature bypass vulnerability exists in VS Code's built-in GitHub extension, where `GitHubCredentialProvider` validated the request host using the unanchored regex `/github\.com/i`. Because the pattern is a substring match (no `^`/` CVE-2026-47284: Microsoft high vulnerability | Advisories

anchors), hostnames such as `github.com.attacker.example` or `notgithub.com` were treated as GitHub and received the signed-in user's token via HTTP Basic authentication. A malicious repository can include a `.gitmodules` entry pointing to such a host; when the victim runs `Git: Clone (Recursive)` or `git submodule update` from inside VS Code, the credential helper sends the GitHub token to the attacker. Note that this overrides Git's own credential lookup (which performs strict host matching) and is not gated by workspace trust because credential delivery happens during the clone step. ### Patches The fix replaces the substring regex with port-stripped, case-insensitive equality against `github.com`. Available in VS Code **1.123.1**. ### Workarounds There is no setting-based workaround. Until upgrade, avoid recursive clones or `git submodule update` of untrusted repositories from inside VS Code while signed in to GitHub, inspect `.gitmodules` for suspicious submodule URLs first, or sign out of GitHub when working with untrusted code. ### References - Public issue: [#320634](https://github.com/microsoft/vscode/issues/320634) - Patch commit: [`4b6e246`](https://github.com/microsoft/vscode/commit/4b6e2467dbd828018d602f73cc25d1b11f699d2c) - MSRC advisory: [CVE-2026-47284](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47284)

Severity from
GitHub (reviewed advisory)

More Microsoft advisories

All Microsoft

Critical advisories by email

Wednesdays: the week’s critical and high advisories in the AI and data stack, with the fixed versions. Only in weeks that have some.

Double opt-in. Unsubscribe any time.

CVE-2026-47284: Microsoft high vulnerability | Advisories
Skip to content
MicrosoftGHSA-qcxw-jfff-cxpc

GitHubCredentialProvider - Regex substring host match sends Basic-auth tokens

HighCVE-2026-47284 · Published Jun 9, 2026

### Impact A security feature bypass vulnerability exists in VS Code's built-in GitHub extension, where `GitHubCredentialProvider` validated the request host using the unanchored regex `/github\.com/i`. Because the pattern is a substring match (no `^`/` CVE-2026-47284: Microsoft high vulnerability | Advisories

anchors), hostnames such as `github.com.attacker.example` or `notgithub.com` were treated as GitHub and received the signed-in user's token via HTTP Basic authentication. A malicious repository can include a `.gitmodules` entry pointing to such a host; when the victim runs `Git: Clone (Recursive)` or `git submodule update` from inside VS Code, the credential helper sends the GitHub token to the attacker. Note that this overrides Git's own credential lookup (which performs strict host matching) and is not gated by workspace trust because credential delivery happens during the clone step. ### Patches The fix replaces the substring regex with port-stripped, case-insensitive equality against `github.com`. Available in VS Code **1.123.1**. ### Workarounds There is no setting-based workaround. Until upgrade, avoid recursive clones or `git submodule update` of untrusted repositories from inside VS Code while signed in to GitHub, ins...

GitHub advisory

Affected versions

PackageAffectedFixed in
vscode
Product
< 1.123.11.123.1
Details and references

### Impact A security feature bypass vulnerability exists in VS Code's built-in GitHub extension, where `GitHubCredentialProvider` validated the request host using the unanchored regex `/github\.com/i`. Because the pattern is a substring match (no `^`/` CVE-2026-47284: Microsoft high vulnerability | Advisories

anchors), hostnames such as `github.com.attacker.example` or `notgithub.com` were treated as GitHub and received the signed-in user's token via HTTP Basic authentication. A malicious repository can include a `.gitmodules` entry pointing to such a host; when the victim runs `Git: Clone (Recursive)` or `git submodule update` from inside VS Code, the credential helper sends the GitHub token to the attacker. Note that this overrides Git's own credential lookup (which performs strict host matching) and is not gated by workspace trust because credential delivery happens during the clone step. ### Patches The fix replaces the substring regex with port-stripped, case-insensitive equality against `github.com`. Available in VS Code **1.123.1**. ### Workarounds There is no setting-based workaround. Until upgrade, avoid recursive clones or `git submodule update` of untrusted repositories from inside VS Code while signed in to GitHub, inspect `.gitmodules` for suspicious submodule URLs first, or sign out of GitHub when working with untrusted code. ### References - Public issue: [#320634](https://github.com/microsoft/vscode/issues/320634) - Patch commit: [`4b6e246`](https://github.com/microsoft/vscode/commit/4b6e2467dbd828018d602f73cc25d1b11f699d2c) - MSRC advisory: [CVE-2026-47284](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47284)

Severity from
GitHub (reviewed advisory)

More Microsoft advisories

All Microsoft

Critical advisories by email

Wednesdays: the week’s critical and high advisories in the AI and data stack, with the fixed versions. Only in weeks that have some.

Double opt-in. Unsubscribe any time.

anchors), hostnames such as `github.com.attacker.example` or `notgithub.com` were treated as GitHub and received the signed-in user's token via HTTP Basic authentication. A malicious repository can include a `.gitmodules` entry pointing to such a host; when the victim runs `Git: Clone (Recursive)` or `git submodule update` from inside VS Code, the credential helper sends the GitHub token to the attacker. Note that this overrides Git's own credential lookup (which performs strict host matching) and is not gated by workspace trust because credential delivery happens during the clone step.\r\n\r\n### Patches\r\n\r\nThe fix replaces the substring regex with port-stripped, case-insensitive equality against `github.com`. Available in VS Code **1.123.1**.\r\n\r\n### Workarounds\r\n\r\nThere is no setting-based workaround. Until upgrade, avoid recursive clones or `git submodule update` of untrusted repositories from inside VS Code while signed in to GitHub, inspect `.gitmodules` for suspicious submodule URLs first, or sign out of GitHub when working with untrusted code.\r\n\r\n### References\r\n\r\n- Public issue: [#320634](https://github.com/microsoft/vscode/issues/320634)\r\n- Patch commit: [`4b6e246`](https://github.com/microsoft/vscode/commit/4b6e2467dbd828018d602f73cc25d1b11f699d2c)\r\n- MSRC advisory: [CVE-2026-47284](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-47284)","vector":"","cvssVersion":"","severitySource":"github","cwes":[],"refs":["https://github.com/microsoft/vscode/security/advisories/GHSA-qcxw-jfff-cxpc","https://github.com/microsoft/vscode"],"affected":[{"product":"microsoft","ecosystem":"Vendor","package":"vscode","introduced":"","fixed":"1.123.1","lastAffected":""}],"changes":[]},"related":[{"id":"CVE-2026-41106","cve":"CVE-2026-41106","aliases":[],"summary":"Url redirection to untrusted site ('open redirect') in M365 Copilot allows an unauthorized attacker to elevate privileges over a network.","title":"Microsoft 365 Copilot: open redirect","severity":"critical","score":9.3,"product":"microsoft","productLabel":"Microsoft 365 Copilot","products":["microsoft"],"fixed":"","fixFirst":"","fixedN":0,"published":"2026-07-02","modified":"2026-07-07","withdrawn":"","url":"https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-41106","foundAt":"2026-09-26 01:53:13"},{"id":"CVE-2026-26145","cve":"CVE-2026-26145","aliases":[],"summary":"Improper access control in Azure Synapse allows an authorized attacker to elevate privileges over a network.","title":"Microsoft Azure Synapse: improper access control","severity":"medium","score":4.8,"product":"microsoft","productLabel":"Azure Synapse","products":["microsoft"],"fixed":"","fixFirst":"","fixedN":0,"published":"2026-07-02","modified":"2026-07-07","withdrawn":"","url":"https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-26145","foundAt":"2026-09-26 01:53:13"},{"id":"CVE-2026-50521","cve":"CVE-2026-50521","aliases":[],"summary":"Use after free in Microsoft Edge (Chromium-based) allows an authorized attacker to execute code over a network.","title":"Microsoft Edge (Chromium-based): use after free","severity":"high","score":8.3,"product":"microsoft","productLabel":"Microsoft Edge (Chromium-based)","products":["microsoft"],"fixed":"Microsoft Edge (Chromium-based) 149.0.4022.68","fixFirst":"149.0.4022.68","fixedN":1,"published":"2026-07-01","modified":"2026-07-03","withdrawn":"","url":"https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-50521","foundAt":"2026-09-26 01:53:13"},{"id":"GHSA-hgwg-xqr5-q87f","cve":"CVE-2026-47287","aliases":[],"summary":"Path traversal in profile snippets import allows writing files outside the profile directory (Zip-Slip)","title":"Path traversal in profile snippets import allows writing files outside the profile directory (Zip-Slip)","severity":"medium","score":null,"product":"microsoft","productLabel":"","products":["microsoft"],"fixed":"1.123.1","fixFirst":"1.123.1","fixedN":1,"published":"2026-06-09","modified":"2026-06-09","withdrawn":"","url":"https://github.com/microsoft/vscode/security/advisories/GHSA-hgwg-xqr5-q87f","foundAt":"2026-09-26 01:32:43"},{"id":"GHSA-c82g-9gj4-hxp2","cve":"CVE-2026-45482","aliases":[],"summary":"Auto-Approved File Write via Unconfirmed Environment-Variable Path Redirection","title":"Auto-Approved File Write via Unconfirmed Environment-Variable Path Redirection","severity":"low","score":null,"product":"microsoft","productLabel":"","products":["microsoft"],"fixed":"1.123.1","fixFirst":"1.123.1","fixedN":1,"published":"2026-06-09","modified":"2026-06-09","withdrawn":"","url":"https://github.com/microsoft/vscode/security/advisories/GHSA-c82g-9gj4-hxp2","foundAt":"2026-09-26 01:32:43"},{"id":"GHSA-5j3g-c7qg-xfvx","cve":"CVE-2026-47281","aliases":[],"summary":"Unconfirmed Remote Host Connection via Workspace File","title":"Unconfirmed Remote Host Connection via Workspace File","severity":"high","score":null,"product":"microsoft","productLabel":"","products":["microsoft"],"fixed":"1.123.1","fixFirst":"1.123.1","fixedN":1,"published":"2026-06-09","modified":"2026-06-09","withdrawn":"","url":"https://github.com/microsoft/vscode/security/advisories/GHSA-5j3g-c7qg-xfvx","foundAt":"2026-09-26 01:32:43"}]}}