Default git identity `codex@example.com` silently misattributes commits to unrelated third-party GitHub user
Summary
Codex ships with a default git identity of:
user.name = Codex Test
user.email = codex@example.com
Any user who runs Codex before manually setting git config user.email produces commits authored by this placeholder. Because example.com is a reserved domain (RFC 2606) that OpenAI does not own, the string codex@example.com has been claimed on the public profile of an unrelated
GitHub user — resulting in silent commit misattribution across Codex users.
## Reproduction
- Install Codex (CLI or cloud environment) and run it in a fresh repo without overriding git identity.
- Make any commit through Codex.
- Inspect the commit:
git log -1 --pretty=fuller
Author: Codex Test codex@example.com
Commit: Codex Test codex@example.com
- Push to GitHub and open the commit in any downstream tool that resolves author email to a GitHub profile (Vercel, GitHub API consumers, CI dashboards).
## Observed behavior
- GitHub commit UI renders the raw string "Codex Test".
- Vercel deployment details, GitHub API
author.login, and various dashboards resolve the emailcodex@example.comand display the GitHub userabiataprado— a stranger with no affiliation to our repository, organization, or OpenAI. - Concretely, merge commit
02bec15ec63e3af6e2a7a29b32fc21829bb47bb7in our repo shows this behavior: the merge itself is authored by me, but it includes a Codex-authored commit (f04be8c1) withcodex@example.com, and Vercel surfacesabiataprado's avatar on the deploy.
## Expected behavior
Codex should ship with a default identity on a domain OpenAI controls so that attribution cannot be captured by third parties — for example:
user.name = Codex
user.email = noreply@codex.openai.com
Even better: on first run, detect missing user.email in the active repo and prompt the user to set one, so real contributors never ship with the placeholder in the first place.
## Impact
- Every Codex user who doesn't override the default leaks commit attribution to an unrelated account.
- A stranger's GitHub avatar appears on production deploys, internal dashboards, and commit histories across many organizations.
- Attribution cannot be corrected after the fact without rewriting history.
- Not a security/access issue (no repo access, push rights, or webhooks granted), but a trust and identity-confusion issue affecting every Codex user with the default config.
## Root cause
example.com is a reserved documentation domain (RFC 2606) with no MX records — no one can verify it via GitHub's email-verification flow. However, GitHub's public profile "email" field accepts any unverified string, and tools that resolve author emails to GitHub profiles match
against it. Because the default is on a domain OpenAI does not own, the association is first-come-first-served.
## Suggested fix
- Replace the default
user.emailwith an OpenAI-controlled address (e.g.noreply@codex.openai.com). - On first use, if the active repo has no
user.emailset, prompt the user to configure one before making commits. - Optionally, document the issue so existing users can check their local/global config.
Happy to provide additional commit SHAs or screenshots if useful.
2 Comments
<img width="650" height="118" alt="Image" src="https://github.com/user-attachments/assets/de199ae6-8455-4725-a651-ff0c6841f25e" />
Same here
and the codex@example.com related to https://github.com/abiatarprado this guy...
Hey folks, I maintain a few open source projects and I really value git attribution because it's transparent when I receive changes from unknown authors. Would really love to see this supported.
I have a working implementation that restores the
Co-authored-bytrailer feature as opt-in, which also addresses thecodex@example.commisattribution issue raised here. Related: #14994, #14051, #23007, #938, #19799.Branch:
franciscojavierarceo/codex@feat/git-commit-attributionWhat it does:
[features] codex_git_commit = trueinconfig.tomlnoreply@openai.cominstead ofcodex@example.com, avoiding third-party misattributionCo-authored-by: Codex o4-mini <noreply@openai.com>commit_attributionconfig key (which was available before the feature was removed in d18a7c982):commit_attribution = "MyOrg Codex <codex@myorg.com>"commit_attribution = ""to disable while keeping the feature flag onHappy to open a PR if the team is interested.