I encountered this problem with homebrew after I upgraded to macOS 12.7.5, but I am not sure the OS upgrade is the only reason. After `brew upgrade`, I received the following message: Error: invalid byte sequence in UTF-8 /usr/local/Homebrew/Library/Homebrew/utils/github/api.rb:182:in `[]' /usr/local/Homebrew/Library/Homebrew/utils/github/api.rb:182:in `block in keychain_username_password' The related lines in api.rb are: git_credential_out, _, result = system_command "git", args: ["credential-osxkeychain", "get"], input: ["protocol=https\n", "host=github.com\n"], env: { "HOME" => uid_home }.compact, print_stderr: false return unless result.success? github_username = git_credential_out[/username=(.+)/, 1] github_password = git_credential_out[/password=(.+)/, 1] return unless github_username So it looks like that git_credential_out has invalid UTF-8 byte sequence. I print it after the system_command "git": password=gho_SHADOWED username=jdp1024��` F� capability[]=state state[]=osxkeychain:seen=1 and echo "protocol=https\nhost=github.com\n" | git credential-osxkeychain get reproduced the problem. So I made the patch, which zeros the username_buf before retrieving the converted C string. From: Jiang Hong <ilford@xxxxxxxxx> Date: Wed, 31 Jul 2024 11:05:44 +0800 Subject: [PATCH] Zeroing username_buffer before retrieving the converted C string. In macOS 12.7.5 and 12.7.6, the uninitialized username_buffer receives a non-NULL-terminated C string. --- contrib/credential/osxkeychain/git-credential-osxkeychain.c | 1 + 1 file changed, 1 insertion(+) diff --git a/contrib/credential/osxkeychain/git-credential-osxkeychain.c b/contrib/credential/osxkeychain/git-credential-osxkeychain.c index 6ce22a28ed..89cd575bd5 100644 --- a/contrib/credential/osxkeychain/git-credential-osxkeychain.c +++ b/contrib/credential/osxkeychain/git-credential-osxkeychain.c @@ -137,6 +137,7 @@ static void find_username_in_item(CFDictionaryRef item) buffer_len = CFStringGetMaximumSizeForEncoding( CFStringGetLength(account_ref), ENCODING) + 1; username_buf = xmalloc(buffer_len); + memset(username_buf, 0, buffer_len); if (CFStringGetCString(account_ref, username_buf, buffer_len, -- 2.37.1 (Apple Git-137.1)