Security fixes are provided for the latest released version on the default branch.
Please use GitHub's private vulnerability reporting feature for this repository. Do not open a public issue for a credential leak, OAuth forwarding flaw, unsafe file rewrite, path traversal, or unintended network exposure.
Never include real API keys, OAuth tokens, cookies, ChatGPT account IDs, auth.json, CC Switch databases, unredacted config.toml files, prompts, responses, or request captures. Use synthetic values in reproductions.
The project is designed to prevent ChatGPT identity material from reaching a third-party model provider while preserving it for first-party standalone search. Its main controls are:
- loopback-only listening by default;
- an HTTPS
chatgpt.comallowlist for the OAuth-bearing search route; - identity-header stripping and a non-secret placeholder on the CC Switch model route;
- no request, header, query-string, or body logging;
- no reads from the CC Switch database or provider credential stores;
- regular-file checks, race detection, atomic replacement, and permission preservation for Codex config updates;
- rejection of absolute-form and path-traversal request targets.
The router is not an authorization gateway. Anyone who can connect to its listener can submit model traffic to the configured CC Switch service. Do not expose it beyond loopback.
The router also cannot protect data after it reaches CC Switch, the selected model provider, ChatGPT, local malware, or a compromised user account.
/v1/alpha/search is undocumented and may change without notice. Compatibility failures are expected to fail closed where authentication destination validation is involved. Do not weaken the ChatGPT hostname or HTTPS checks as a workaround.