Selon une analyse signée par Brandon Mitchell, une faute de frappe de ghcr.io vers ghrc.io expose à un site configuré pour déclencher un flux d’authentification de registre et potentiellement dérober des identifiants GitHub.
🚨 Le domaine ghrc.io affiche en surface une page par défaut nginx, mais répond sous l’API OCI « /v2/ » avec un HTTP 401 et un en-tête WWW-Authenticate: Bearer realm=“https://ghrc.io/token", mimant le comportement d’un registre de conteneurs. Cet en-tête pousse des clients comme Docker, containerd, podman et les CRI Kubernetes à solliciter un jeton auprès de « https://ghrc.io/token », ce qui n’a aucune raison légitime sur un nginx par défaut et indique un objectif de vol d’identifiants.
L’article compare ces réponses à celles de véritables registres (ghcr.io, Docker Hub, Quay) et souligne que, bien que l’authentification OCI ne soit pas standardisée par l’OCI, la plupart des projets utilisent le flux token de distribution. Ici, la configuration de ghrc.io vise explicitement ce flux pour capter des identifiants envoyés au mauvais hôte.
Impact et scénarios à risque (exemples cités):
- Exécuter « docker login ghrc.io ».
- Un workflow GitHub Actions utilisant « docker/login-action » avec « registry: ghrc.io ».
- Créer un secret Kubernetes pour « ghrc.io » puis tenter de tirer une image de cet hôte fautif.
Précisions importantes: tenter de pousser/tirer sans authentification n’expose pas d’identifiants (seul le nom de dépôt peut être révélé), car les clients demandent d’abord un jeton anonyme qui échoue rapidement. Si une connexion a été faite par erreur au mauvais serveur, l’auteur recommande de changer le mot de passe, révoquer les PATs utilisés et rechercher une activité suspecte sur GitHub; un attaquant pourrait pousser des images malveillantes sur des dépôts ghcr.io ou accéder au compte GitHub, selon les identifiants soumis.
IOCs:
- Domaine: ghrc.io
- URLs: https://ghrc.io/v2/ ; https://ghrc.io/token
- En-tête d’authentification: “WWW-Authenticate: Bearer realm="https://ghrc.io/token"”
TTPs observées:
- Typosquatting d’un service légitime (ghcr.io → ghrc.io)
- Vol d’identifiants via détournement du flux d’authentification token des registres OCI
- Impersonation d’un registre de conteneurs pour la chaîne d’approvisionnement logicielle
Il s’agit d’une analyse technique visant à alerter sur un cas de typosquatting ciblant les flux d’authentification des registres OCI pour la collecte d’identifiants.
🧠 TTPs et IOCs détectés
TTP
[‘Typosquatting d’un service légitime (ghcr.io → ghrc.io)’, ‘Vol d’identifiants via détournement du flux d’authentification token des registres OCI’, ‘Impersonation d’un registre de conteneurs pour la chaîne d’approvisionnement logicielle’]
IOC
{‘domaine’: ‘ghrc.io’, ‘urls’: [‘https://ghrc.io/v2/’, ‘https://ghrc.io/token’], ’en-tête d’authentification’: ‘WWW-Authenticate: Bearer realm=“https://ghrc.io/token"'}
🔗 Source originale : https://bmitch.net/blog/2025-08-22-ghrc-appears-malicious/