Every CVE Search/ Get API key

CVE-2026-100408

Git for Windows: git-credential-wincred Erase Path Heap Overflow

4.4 Medium

Git for Windows is the Windows port of Git. From 2.43.0.windows.1 until 2.55.0.windows.3, when a matching git:* credential exists in Windows Credential Manager and a git-credential-wincred erase input includes a password field, the operation in contrib/credential/wincred/git-credential-wincred.c allocates a buffer of exactly CredentialBlobSize bytes in match_cred_password() and then uses wcsncpy_s() to copy the corresponding number of wide characters plus a terminating NUL. The destination capacity is also supplied in bytes instead of WCHAR elements, allowing a fixed two-byte NUL write past the allocation before the password comparison determines whether CredDeleteW() should remove the credential; erase without a password field does not enter this comparison path. The helper can terminate with Windows heap-corruption status, and git credential reject can appear successful while the rejected credential remains stored. This issue is fixed in version 2.55.0.windows.3.

Attack profile

How easy it is to exploit

Attack vector
Local
Complexity
Low
Privileges needed
None
User interaction
Required

What an attacker can affect

Confidentiality
None
Integrity
Low
Availability
Low

Exploit likelihood

0.12%Unchanged since Nov 5, 2026
90%50%10%1%

What each source reports

CVE List Score used 4.4

Git for Windows: git-credential-wincred Erase Path Heap Overflow

Git for Windows is the Windows port of Git. From 2.43.0.windows.1 until 2.55.0.windows.3, when a matching git:* credential exists in Windows Credential Manager and a git-credential-wincred erase input includes a password field, the operation in contrib/credential/wincred/git-credential-wincred.c allocates a buffer of exactly CredentialBlobSize bytes in match_cred_password() and then uses wcsncpy_s() to copy the corresponding number of wide characters plus a terminating NUL. The destination capacity is also supplied in bytes instead of WCHAR elements, allowing a fixed two-byte NUL write past the allocation before the password comparison determines whether CredDeleteW() should remove the credential; erase without a password field does not enter this comparison path. The helper can terminate with Windows heap-corruption status, and git credential reject can appear successful while the rejected credential remains stored. This issue is fixed in version 2.55.0.windows.3.

Record
CVE-2026-100408
CVSS 3.1
4.4 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:L
Weakness
CWE-787
Updated
2026-11-09
EUVDEUVD-2026-116937 4.4

Git for Windows is the Windows port of Git. From 2.43.0.windows.1 until 2.55.0.windows.3, when a matching git:* credential exists in Windows Credential Manager and a git-credential-wincred erase input includes a password field, the operation in contrib/credential/wincred/git-credential-wincred.c allocates a buffer of exactly CredentialBlobSize bytes in match_cred_password() and then uses wcsncpy_s() to copy the corresponding number of wide characters plus a terminating NUL. The destination capacity is also supplied in bytes instead of WCHAR elements, allowing a fixed two-byte NUL write past the allocation before the password comparison determines whether CredDeleteW() should remove the credential; erase without a password field does not enter this comparison path. The helper can terminate with Windows heap-corruption status, and git credential reject can appear successful while the rejected credential remains stored. This issue is fixed in version 2.55.0.windows.3.

Record
EUVD-2026-116937
CVSS 3.1
4.4 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:L
Updated
2026-11-09
NVD 4.4

Git for Windows is the Windows port of Git. From 2.43.0.windows.1 until 2.55.0.windows.3, when a matching git:* credential exists in Windows Credential Manager and a git-credential-wincred erase input includes a password field, the operation in contrib/credential/wincred/git-credential-wincred.c allocates a buffer of exactly CredentialBlobSize bytes in match_cred_password() and then uses wcsncpy_s() to copy the corresponding number of wide characters plus a terminating NUL. The destination capacity is also supplied in bytes instead of WCHAR elements, allowing a fixed two-byte NUL write past the allocation before the password comparison determines whether CredDeleteW() should remove the credential; erase without a password field does not enter this comparison path. The helper can terminate with Windows heap-corruption status, and git credential reject can appear successful while the rejected credential remains stored. This issue is fixed in version 2.55.0.windows.3.

Record
CVE-2026-100408
CVSS 3.1
4.4 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:L
Weakness
CWE-787
Updated
2026-11-09
OSV 4.4

Git for Windows: git-credential-wincred Erase Path Heap Overflow

Git for Windows is the Windows port of Git. From 2.43.0.windows.1 until 2.55.0.windows.3, when a matching git:* credential exists in Windows Credential Manager and a git-credential-wincred erase input includes a password field, the operation in contrib/credential/wincred/git-credential-wincred.c allocates a buffer of exactly CredentialBlobSize bytes in match_cred_password() and then uses wcsncpy_s() to copy the corresponding number of wide characters plus a terminating NUL. The destination capacity is also supplied in bytes instead of WCHAR elements, allowing a fixed two-byte NUL write past the allocation before the password comparison determines whether CredDeleteW() should remove the credential; erase without a password field does not enter this comparison path. The helper can terminate with Windows heap-corruption status, and git credential reject can appear successful while the rejected credential remains stored. This issue is fixed in version 2.55.0.windows.3.

Record
CVE-2026-100408
CVSS 3.1
4.4 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:L
Weakness
CWE-787
Updated
2026-11-06
OSVUBUNTU-CVE-2026-100408 4.4

Git for Windows is the Windows port of Git. From 2.43.0.windows.1 until 2.55.0.windows.3, when a matching git:* credential exists in Windows Credential Manager and a git-credential-wincred erase input includes a password field, the operation in contrib/credential/wincred/git-credential-wincred.c allocates a buffer of exactly CredentialBlobSize bytes in match_cred_password() and then uses wcsncpy_s() to copy the corresponding number of wide characters plus a terminating NUL. The destination capacity is also supplied in bytes instead of WCHAR elements, allowing a fixed two-byte NUL write past the allocation before the password comparison determines whether CredDeleteW() should remove the credential; erase without a password field does not enter this comparison path. The helper can terminate with Windows heap-corruption status, and git credential reject can appear successful while the rejected credential remains stored. This issue is fixed in version 2.55.0.windows.3.

Record
UBUNTU-CVE-2026-100408
CVSS 3.1
4.4 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:L
Updated
2026-11-06
OSVAZL-112738 No score

CVE-2026-100408 affecting package git 2.45.4-3

Git for Windows is the Windows port of Git. From 2.43.0.windows.1 until 2.55.0.windows.3, when a matching git:* credential exists in Windows Credential Manager and a git-credential-wincred erase input includes a password field, the operation in contrib/credential/wincred/git-credential-wincred.c allocates a buffer of exactly CredentialBlobSize bytes in match_cred_password() and then uses wcsncpy_s() to copy the corresponding number of wide characters plus a terminating NUL. The destination capacity is also supplied in bytes instead of WCHAR elements, allowing a fixed two-byte NUL write past the allocation before the password comparison determines whether CredDeleteW() should remove the credential; erase without a password field does not enter this comparison path. The helper can terminate with Windows heap-corruption status, and git credential reject can appear successful while the rejected credential remains stored. This issue is fixed in version 2.55.0.windows.3.

Record
AZL-112738
Updated
2026-11-07

Affected products

Affected packages

Affected packages
PackageAffectedFixed
git
Azure Linux:3
through 2.45.4-3 None known
git
Ubuntu:Pro:16.04:LTS
All versions, plus listed versions
1:2.5.0-11:2.6.2-11:2.6.3-11:2.6.4-11:2.7.0~rc3-1
Show 24 moreShow less
1:2.7.0-11:2.7.3-0ubuntu11:2.7.4-0ubuntu11:2.7.4-0ubuntu1.11:2.7.4-0ubuntu1.21:2.7.4-0ubuntu1.31:2.7.4-0ubuntu1.41:2.7.4-0ubuntu1.51:2.7.4-0ubuntu1.61:2.7.4-0ubuntu1.71:2.7.4-0ubuntu1.81:2.7.4-0ubuntu1.91:2.7.4-0ubuntu1.101:2.7.4-0ubuntu1.10+esm11:2.7.4-0ubuntu1.10+esm31:2.7.4-0ubuntu1.10+esm41:2.7.4-0ubuntu1.10+esm51:2.7.4-0ubuntu1.10+esm61:2.7.4-0ubuntu1.10+esm71:2.7.4-0ubuntu1.10+esm81:2.7.4-0ubuntu1.10+esm91:2.7.4-0ubuntu1.10+esm101:2.7.4-0ubuntu1.10+esm111:2.7.4-0ubuntu1.10+esm13
None known
git
Ubuntu:Pro:18.04:LTS
All versions, plus listed versions
1:2.14.1-1ubuntu41:2.15.1-1ubuntu21:2.17.0-1ubuntu11:2.17.1-1ubuntu0.11:2.17.1-1ubuntu0.3
Show 21 moreShow less
1:2.17.1-1ubuntu0.41:2.17.1-1ubuntu0.51:2.17.1-1ubuntu0.61:2.17.1-1ubuntu0.71:2.17.1-1ubuntu0.81:2.17.1-1ubuntu0.91:2.17.1-1ubuntu0.101:2.17.1-1ubuntu0.111:2.17.1-1ubuntu0.121:2.17.1-1ubuntu0.131:2.17.1-1ubuntu0.141:2.17.1-1ubuntu0.151:2.17.1-1ubuntu0.161:2.17.1-1ubuntu0.171:2.17.1-1ubuntu0.181:2.17.1-1ubuntu0.18+esm11:2.17.1-1ubuntu0.18+esm21:2.17.1-1ubuntu0.18+esm31:2.17.1-1ubuntu0.18+esm41:2.17.1-1ubuntu0.18+esm61:2.17.1-1ubuntu0.18+esm8
None known
git
Ubuntu:Pro:20.04:LTS
All versions, plus listed versions
1:2.20.1-2ubuntu11:2.24.0-1ubuntu11:2.24.0-1ubuntu21:2.25.0-1ubuntu11:2.25.1-1ubuntu1
Show 21 moreShow less
1:2.25.1-1ubuntu21:2.25.1-1ubuntu31:2.25.1-1ubuntu3.11:2.25.1-1ubuntu3.21:2.25.1-1ubuntu3.31:2.25.1-1ubuntu3.41:2.25.1-1ubuntu3.51:2.25.1-1ubuntu3.61:2.25.1-1ubuntu3.71:2.25.1-1ubuntu3.81:2.25.1-1ubuntu3.101:2.25.1-1ubuntu3.111:2.25.1-1ubuntu3.121:2.25.1-1ubuntu3.131:2.25.1-1ubuntu3.141:2.25.1-1ubuntu3.14+esm11:2.25.1-1ubuntu3.14+esm21:2.25.1-1ubuntu3.14+esm31:2.25.1-1ubuntu3.14+esm41:2.25.1-1ubuntu3.14+esm51:2.25.1-1ubuntu3.14+esm6
None known
git
Ubuntu:22.04:LTS
All versions, plus listed versions
1:2.32.0-1ubuntu11:2.33.1-1ubuntu11:2.34.1-1ubuntu11:2.34.1-1ubuntu1.11:2.34.1-1ubuntu1.2
Show 14 moreShow less
1:2.34.1-1ubuntu1.41:2.34.1-1ubuntu1.51:2.34.1-1ubuntu1.61:2.34.1-1ubuntu1.81:2.34.1-1ubuntu1.91:2.34.1-1ubuntu1.101:2.34.1-1ubuntu1.111:2.34.1-1ubuntu1.121:2.34.1-1ubuntu1.131:2.34.1-1ubuntu1.141:2.34.1-1ubuntu1.151:2.34.1-1ubuntu1.161:2.34.1-1ubuntu1.171:2.34.1-1ubuntu1.18
None known
git
Ubuntu:24.04:LTS
All versions, plus listed versions
1:2.40.1-1ubuntu11:2.43.0-1ubuntu11:2.43.0-1ubuntu51:2.43.0-1ubuntu61:2.43.0-1ubuntu7
Show 4 moreShow less
1:2.43.0-1ubuntu7.11:2.43.0-1ubuntu7.21:2.43.0-1ubuntu7.31:2.43.0-1ubuntu7.4
None known
git
Ubuntu:26.10
All versions, plus listed versions
1:2.53.0-1ubuntu11:2.55.0-1ubuntu11:2.55.0-1ubuntu1.1
None known
git
Ubuntu:26.04:LTS
All versions, plus listed versions
1:2.51.0-1ubuntu11:2.53.0-1ubuntu11:2.53.0-1ubuntu1.1
None known

History

History
RecordedChangedSources
referencesCVE List, EUVD
affected, aliases, referencesOSV
affected, aliases, published, referencesOSV
aliases, referencesNVD, OSV
cwes, references, severity, titleCVE List
first indexedEUVD

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-100408 is a medium vulnerability (CVSS 4.4) in Git-for-windows Git, published November 4, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.12%, the 1st percentile. No source names a fixed version.

References

MoveEnter Open