SSRF (Falsification de requête côté serveur) dans code.gitea.io/gitea (CVE-2026-23603)
Résumé
SSRF dans code.gitea.io/gitea (CVE-2026-23603). Risque d'opérations non autorisées ou de divulgation. Exploitable via picture. Atténuation : mise à jour vers 1.27.0 ou plus.
Description d'origine
La description telle que publiée par la source (souvent en anglais).
Summary
When [oauth2_client] UPDATE_AVATAR = true is enabled, Gitea fetches the avatar URL received from an OAuth2/OIDC provider using Go's default HTTP client. The URL comes from the user's OAuth/OIDC avatar value, commonly the OIDC picture claim.
The affected code path calls http.Get(url) without applying outbound host or IP restrictions. A low-privileged user who can influence their own picture claim under an already-configured OAuth2/OIDC source can cause the Gitea server to make arbitrary outbound HTTP GET requests. This includes requests to loopback addresses, RFC 1918 private network addresses, and IPv4 link-local addresses such as 169.254.169.254.
This is a blind SSRF by default. Impact can increase in deployments where the Gitea host can reach cloud metadata services, localhost-only services, or internal services that return valid image data.
Details
The vulnerable sink is in routers/web/auth/oauth.go:
func oauth2UpdateAvatarIfNeed(ctx *context.Context, url string, u *user_model.User) {
if setting.OAuth2Client.UpdateAvatar && len(url) > 0 {
resp, err := http.Get(url)
if err == nil {
defer func() { _ = resp.Body.Close() }()
}
if err == nil && resp.StatusCode == http.StatusOK {
data, err := io.ReadAll(io.LimitReader(resp.Body, setting.Avatar.MaxFileSize+1))
if err == nil && int64(len(data)) <= setting.Avatar.MaxFileSize {
_ = user_service.UploadAvatar(c…
Source: GitHub Security Advisories (Global) NVD GitHub Advisory
Résumé généré automatiquement
Assemblé par SecPulse à partir des données sources (CVSS, CWE, versions affectées) à l'aide de modèles, sans IA. Vérifiez la description d'origine et les références ci-dessous.
Une vulnérabilité référencée CVE-2026-23603 a été découverte dans code.gitea.io/gitea.
Des attaquants peuvent cibler un point d'entrée spécifique comme picture à distance pour détourner le produit.
Risque d'opérations non autorisées ou de divulgation. Score CVSS : 3.1/10.
Action : mettez à jour code.gitea.io/gitea vers 1.27.0 ou supérieur.
En cas de doute, contactez votre service informatique ou cherchez « code.gitea.io/gitea CVE-2026-23603 » sur le site de l'éditeur.
CVE-2026-23603 (code.gitea.io/gitea) — CWE-918 / CVSS v3 3.1
Vecteur d'attaque : distant (réseau) / sans interaction utilisateur
Surface d'attaque : picture / gothUser.AvatarURL / http.Get / hostmatcher.NewDialContext
Correctif : 1.27.0 — appliquer immédiatement
Plan : 1) Audit SBOM, 2) Mise à jour staging→prod, 3) Surveillance WAF/proxy sur les endpoints affectés, 4) Recherche d'IOC dans les logs.
Réfs : voir GHSA / avis éditeur / version corrigée liés sur cette page.
Une SSRF (CWE-918) affecte code.gitea.io/gitea. Les attaquants atteignent le code vulnérable via picture.
Consultez l'avis de l'éditeur pour les versions affectées de code.gitea.io/gitea. Surface d'attaque : picture / gothUser.AvatarURL / http.Get / hostmatcher.NewDialContext.
Gravité : Faible (CVSS 3.1/10). Risque d'opérations non autorisées ou de divulgation.
Mettre à jour vers 1.27.0.
En attendant le correctif : désactivez la fonctionnalité concernée, appliquez des règles WAF, ou restreignez l'accès par ACL réseau.
Recherchez dans les logs des requêtes correspondant aux IOC connus de cette CVE. Auditez les SBOM/dépendances.
Actions de réponse
Étapes concrètes et exemples de commandes que les équipes SOC/SRE doivent exécuter dans l'ordre
-
1Identify exposure identify
grep -r 'code.gitea.io/gitea' . | grep -v node_modulesリポジトリと本番環境の依存ファイル (package-lock.json / requirements.txt / go.sum / Gemfile.lock 等) で
code.gitea.io/giteaを grep し、稼働しているサービス・バージョンを把握する。 -
2Apply patch patch
Upgrade code.gitea.io/gitea to 1.27.0ステージング環境で 1.27.0 に上げて回帰テスト → 本番反映。回帰テストはアプリの主要ハッピーパスを含めること。
-
3Post-deployment verification verify
Confirm patched version is live in productionパッチ適用後、ステージングで PoC または同等の悪用パターンを再現して脆弱性が閉じたことを確認。本番ではアクセスログ・WAF でアラート再発が無いか継続監視。
Paquets affectés
Références
- package github.com
- web github.com
- web github.com
- web github.com
- web github.com
- web github.com
- web github.com
- web github.com
- web blog.gitea.com