Catégories
CVE-2026-23603 low CVSS 3.1

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.

❓ Quel est le problème

Une SSRF (CWE-918) affecte code.gitea.io/gitea. Les attaquants atteignent le code vulnérable via picture.

📍 Périmètre concerné

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é

Gravité : Faible (CVSS 3.1/10). Risque d'opérations non autorisées ou de divulgation.

🔧 Comment corriger

Mettre à jour vers 1.27.0.

🛡️ Contournement

En attendant le correctif : désactivez la fonctionnalité concernée, appliquez des règles WAF, ou restreignez l'accès par ACL réseau.

🔍 Détection

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

  1. 1
    Identify 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 し、稼働しているサービス・バージョンを把握する。

  2. 2
    Apply patch patch
    Upgrade code.gitea.io/gitea to 1.27.0

    ステージング環境で 1.27.0 に上げて回帰テスト → 本番反映。回帰テストはアプリの主要ハッピーパスを含めること。

  3. 3
    Post-deployment verification verify
    Confirm patched version is live in production

    パッチ適用後、ステージングで PoC または同等の悪用パターンを再現して脆弱性が閉じたことを確認。本番ではアクセスログ・WAF でアラート再発が無いか継続監視。

Paquets affectés

go code.gitea.io/gitea
[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"1.27.0"}]}]
Go gitea.dev
[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"1.27.0"}]}]

Références

Nous utilisons des cookies pour l'analyse d'audience et la mesure publicitaire. Ce réglage s'applique à tous les sites de Game co., Ltd. En savoir plus