{"id":"CVE-2026-100407","aliases":["AZL-112741","EUVD-2026-116936","GHSA-v3h4-vrpr-rh9x","UBUNTU-CVE-2026-100407"],"status":"published","title":"Git for Windows: git-credential-wincred OAuth Store Heap Overflow","description":"Git for Windows is the Windows port of Git. From 2.44.0.windows.1 until 2.55.0.windows.3, the git-credential-wincred store operation in contrib/credential/wincred/git-credential-wincred.c uses _scwprintf() to size a formatted wide-character credential buffer without space for the terminating NUL when both password and oauth_refresh_token are present. The operation also passes a byte count to _snwprintf_s() where a wide-character count is required, allowing the terminator to be written one WCHAR past the heap allocation before CredWriteW() persists the credential. The resulting fixed two-byte NUL overwrite can terminate the helper with Windows heap-corruption status and can cause git credential approve to report success even though the OAuth credential was not stored. This issue is fixed in version 2.55.0.windows.3.","severity":{"version":"3.1","score":4.4,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:L","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-12","score":0.00117,"percentile":0.01667,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-787"],"published":"2026-11-04T00:00:00Z","modified":"2026-11-07T14:18:05Z","affected":[{"source":"osv","ecosystem":"Azure Linux:3","package":"git","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"2.45.4-3"}]}]},{"source":"osv","ecosystem":"Ubuntu:Pro:16.04:LTS","package":"git","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1:2.5.0-1","1:2.6.2-1","1:2.6.3-1","1:2.6.4-1","1:2.7.0~rc3-1","1:2.7.0-1","1:2.7.3-0ubuntu1","1:2.7.4-0ubuntu1","1:2.7.4-0ubuntu1.1","1:2.7.4-0ubuntu1.2","1:2.7.4-0ubuntu1.3","1:2.7.4-0ubuntu1.4","1:2.7.4-0ubuntu1.5","1:2.7.4-0ubuntu1.6","1:2.7.4-0ubuntu1.7","1:2.7.4-0ubuntu1.8","1:2.7.4-0ubuntu1.9","1:2.7.4-0ubuntu1.10","1:2.7.4-0ubuntu1.10+esm1","1:2.7.4-0ubuntu1.10+esm3","1:2.7.4-0ubuntu1.10+esm4","1:2.7.4-0ubuntu1.10+esm5","1:2.7.4-0ubuntu1.10+esm6","1:2.7.4-0ubuntu1.10+esm7","1:2.7.4-0ubuntu1.10+esm8","1:2.7.4-0ubuntu1.10+esm9","1:2.7.4-0ubuntu1.10+esm10","1:2.7.4-0ubuntu1.10+esm11","1:2.7.4-0ubuntu1.10+esm13"]},{"source":"osv","ecosystem":"Ubuntu:Pro:18.04:LTS","package":"git","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1:2.14.1-1ubuntu4","1:2.15.1-1ubuntu2","1:2.17.0-1ubuntu1","1:2.17.1-1ubuntu0.1","1:2.17.1-1ubuntu0.3","1:2.17.1-1ubuntu0.4","1:2.17.1-1ubuntu0.5","1:2.17.1-1ubuntu0.6","1:2.17.1-1ubuntu0.7","1:2.17.1-1ubuntu0.8","1:2.17.1-1ubuntu0.9","1:2.17.1-1ubuntu0.10","1:2.17.1-1ubuntu0.11","1:2.17.1-1ubuntu0.12","1:2.17.1-1ubuntu0.13","1:2.17.1-1ubuntu0.14","1:2.17.1-1ubuntu0.15","1:2.17.1-1ubuntu0.16","1:2.17.1-1ubuntu0.17","1:2.17.1-1ubuntu0.18","1:2.17.1-1ubuntu0.18+esm1","1:2.17.1-1ubuntu0.18+esm2","1:2.17.1-1ubuntu0.18+esm3","1:2.17.1-1ubuntu0.18+esm4","1:2.17.1-1ubuntu0.18+esm6","1:2.17.1-1ubuntu0.18+esm8"]},{"source":"osv","ecosystem":"Ubuntu:Pro:20.04:LTS","package":"git","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1:2.20.1-2ubuntu1","1:2.24.0-1ubuntu1","1:2.24.0-1ubuntu2","1:2.25.0-1ubuntu1","1:2.25.1-1ubuntu1","1:2.25.1-1ubuntu2","1:2.25.1-1ubuntu3","1:2.25.1-1ubuntu3.1","1:2.25.1-1ubuntu3.2","1:2.25.1-1ubuntu3.3","1:2.25.1-1ubuntu3.4","1:2.25.1-1ubuntu3.5","1:2.25.1-1ubuntu3.6","1:2.25.1-1ubuntu3.7","1:2.25.1-1ubuntu3.8","1:2.25.1-1ubuntu3.10","1:2.25.1-1ubuntu3.11","1:2.25.1-1ubuntu3.12","1:2.25.1-1ubuntu3.13","1:2.25.1-1ubuntu3.14","1:2.25.1-1ubuntu3.14+esm1","1:2.25.1-1ubuntu3.14+esm2","1:2.25.1-1ubuntu3.14+esm3","1:2.25.1-1ubuntu3.14+esm4","1:2.25.1-1ubuntu3.14+esm5","1:2.25.1-1ubuntu3.14+esm6"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"git","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1:2.32.0-1ubuntu1","1:2.33.1-1ubuntu1","1:2.34.1-1ubuntu1","1:2.34.1-1ubuntu1.1","1:2.34.1-1ubuntu1.2","1:2.34.1-1ubuntu1.4","1:2.34.1-1ubuntu1.5","1:2.34.1-1ubuntu1.6","1:2.34.1-1ubuntu1.8","1:2.34.1-1ubuntu1.9","1:2.34.1-1ubuntu1.10","1:2.34.1-1ubuntu1.11","1:2.34.1-1ubuntu1.12","1:2.34.1-1ubuntu1.13","1:2.34.1-1ubuntu1.14","1:2.34.1-1ubuntu1.15","1:2.34.1-1ubuntu1.16","1:2.34.1-1ubuntu1.17","1:2.34.1-1ubuntu1.18"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"git","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1:2.40.1-1ubuntu1","1:2.43.0-1ubuntu1","1:2.43.0-1ubuntu5","1:2.43.0-1ubuntu6","1:2.43.0-1ubuntu7","1:2.43.0-1ubuntu7.1","1:2.43.0-1ubuntu7.2","1:2.43.0-1ubuntu7.3","1:2.43.0-1ubuntu7.4"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"git","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1:2.53.0-1ubuntu1","1:2.55.0-1ubuntu1","1:2.55.0-1ubuntu1.1"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"git","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1:2.51.0-1ubuntu1","1:2.53.0-1ubuntu1","1:2.53.0-1ubuntu1.1"]}],"products":[{"vendor":"git-for-windows","product":"git"}],"references":[{"url":"https://github.com/git-for-windows/git/security/advisories/GHSA-v3h4-vrpr-rh9x","tags":["x_refsource_CONFIRM","advisory"]},{"url":"https://github.com/git-for-windows/git/commit/52ca1113d651127f89477a8763f86ab20f645e1d","tags":["x_refsource_MISC","fix"]},{"url":"https://github.com/git-for-windows/git/releases/tag/v2.55.0.windows.3","tags":["x_refsource_MISC","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-100407","tags":["web","advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/100xxx/CVE-2026-100407.json","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2026-100407","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-100407","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2026-100407","title":"Git for Windows: git-credential-wincred OAuth Store Heap Overflow","description":"Git for Windows is the Windows port of Git. From 2.44.0.windows.1 until 2.55.0.windows.3, the git-credential-wincred store operation in contrib/credential/wincred/git-credential-wincred.c uses _scwprintf() to size a formatted wide-character credential buffer without space for the terminating NUL when both password and oauth_refresh_token are present. The operation also passes a byte count to _snwprintf_s() where a wide-character count is required, allowing the terminator to be written one WCHAR past the heap allocation before CredWriteW() persists the credential. The resulting fixed two-byte NUL overwrite can terminate the helper with Windows heap-corruption status and can cause git credential approve to report success even though the OAuth credential was not stored. This issue is fixed in version 2.55.0.windows.3.","status":"published","published":"2026-11-04T15:07:59.401Z","modified":"2026-11-05T19:07:18.059Z","cvss":[{"version":"3.1","score":4.4,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:L","level":"medium","assessor":"cna"}],"cwes":["CWE-787"],"updated_at":"2026-11-05T20:54:58.923322Z"}],"euvd":[{"id":"EUVD-2026-116936","description":"Git for Windows is the Windows port of Git. From 2.44.0.windows.1 until 2.55.0.windows.3, the git-credential-wincred store operation in contrib/credential/wincred/git-credential-wincred.c uses _scwprintf() to size a formatted wide-character credential buffer without space for the terminating NUL when both password and oauth_refresh_token are present. The operation also passes a byte count to _snwprintf_s() where a wide-character count is required, allowing the terminator to be written one WCHAR past the heap allocation before CredWriteW() persists the credential. The resulting fixed two-byte NUL overwrite can terminate the helper with Windows heap-corruption status and can cause git credential approve to report success even though the OAuth credential was not stored. This issue is fixed in version 2.55.0.windows.3.","status":"published","published":"2026-11-04T15:07:59Z","modified":"2026-11-05T19:07:18Z","cvss":[{"version":"3.1","score":4.4,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:L","level":"medium"}],"updated_at":"2026-11-05T20:01:48.21368Z"}],"nvd":[{"id":"CVE-2026-100407","description":"Git for Windows is the Windows port of Git. From 2.44.0.windows.1 until 2.55.0.windows.3, the git-credential-wincred store operation in contrib/credential/wincred/git-credential-wincred.c uses _scwprintf() to size a formatted wide-character credential buffer without space for the terminating NUL when both password and oauth_refresh_token are present. The operation also passes a byte count to _snwprintf_s() where a wide-character count is required, allowing the terminator to be written one WCHAR past the heap allocation before CredWriteW() persists the credential. The resulting fixed two-byte NUL overwrite can terminate the helper with Windows heap-corruption status and can cause git credential approve to report success even though the OAuth credential was not stored. This issue is fixed in version 2.55.0.windows.3.","status":"published","published":"2026-11-04T15:17:21.797Z","modified":"2026-11-12T20:04:52.377Z","cvss":[{"version":"3.1","score":4.4,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:L","level":"medium","assessor":"secondary"}],"cwes":["CWE-787"],"updated_at":"2026-11-12T21:32:42.103959Z"}],"osv":[{"id":"CVE-2026-100407","title":"Git for Windows: git-credential-wincred OAuth Store Heap Overflow","description":"Git for Windows is the Windows port of Git. From 2.44.0.windows.1 until 2.55.0.windows.3, the git-credential-wincred store operation in contrib/credential/wincred/git-credential-wincred.c uses _scwprintf() to size a formatted wide-character credential buffer without space for the terminating NUL when both password and oauth_refresh_token are present. The operation also passes a byte count to _snwprintf_s() where a wide-character count is required, allowing the terminator to be written one WCHAR past the heap allocation before CredWriteW() persists the credential. The resulting fixed two-byte NUL overwrite can terminate the helper with Windows heap-corruption status and can cause git credential approve to report success even though the OAuth credential was not stored. This issue is fixed in version 2.55.0.windows.3.","status":"published","published":"2026-11-04T15:07:59.401Z","modified":"2026-11-07T07:06:48.526930267Z","cvss":[{"version":"3.1","score":4.4,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:L","level":"medium"}],"cwes":["CWE-787"],"updated_at":"2026-11-07T03:07:59.35798Z"},{"id":"UBUNTU-CVE-2026-100407","description":"Git for Windows is the Windows port of Git. From 2.44.0.windows.1 until 2.55.0.windows.3, the git-credential-wincred store operation in contrib/credential/wincred/git-credential-wincred.c uses _scwprintf() to size a formatted wide-character credential buffer without space for the terminating NUL when both password and oauth_refresh_token are present. The operation also passes a byte count to _snwprintf_s() where a wide-character count is required, allowing the terminator to be written one WCHAR past the heap allocation before CredWriteW() persists the credential. The resulting fixed two-byte NUL overwrite can terminate the helper with Windows heap-corruption status and can cause git credential approve to report success even though the OAuth credential was not stored. This issue is fixed in version 2.55.0.windows.3.","status":"published","published":"2026-11-04T00:00:00Z","modified":"2026-11-06T01:00:08.80041784Z","cvss":[{"version":"3.1","score":4.4,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:L","level":"medium"},{"version":"3.1","score":4.4,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:L","level":"medium"}],"updated_at":"2026-11-06T01:33:11.614208Z"},{"id":"AZL-112741","title":"CVE-2026-100407 affecting package git 2.45.4-3","description":"Git for Windows is the Windows port of Git. From 2.44.0.windows.1 until 2.55.0.windows.3, the git-credential-wincred store operation in contrib/credential/wincred/git-credential-wincred.c uses _scwprintf() to size a formatted wide-character credential buffer without space for the terminating NUL when both password and oauth_refresh_token are present. The operation also passes a byte count to _snwprintf_s() where a wide-character count is required, allowing the terminator to be written one WCHAR past the heap allocation before CredWriteW() persists the credential. The resulting fixed two-byte NUL overwrite can terminate the helper with Windows heap-corruption status and can cause git credential approve to report success even though the OAuth credential was not stored. This issue is fixed in version 2.55.0.windows.3.","status":"published","published":"2026-11-04T15:17:21Z","modified":"2026-11-07T14:18:05.074668854Z","updated_at":"2026-11-07T14:48:11.583685Z"}]}}
