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 ^/$ 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:...
Affected versions
Package
Affected
Fixed in
vscode
Product
< 1.123.1
1.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)
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 ^/$ 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:...
Affected versions
Package
Affected
Fixed in
vscode
Product
< 1.123.1
1.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)
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"}]}}