Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
cve-2026-22874-gitea-ssrf-allowlist — Analisi di CVE-2026-22874: lista di permessi SSRF incompleta nei webhook/migration di Gitea (transizione IPv6 e metadati cloud). Risolto in Gitea 1.26.3. | Kitploit
Strumenti/GitHubGitHub/m8seven/cve-2026-22874-gitea-ssrf-allowlist
Analisi delle VulnerabilitàSicurezza WebSicurezza CloudPaper e RicercaApprendimento e FormazioneRisorse Curate
GitHubm8seven/cve-2026-22874-gitea-ssrf-allowlist

cve-2026-22874-gitea-ssrf-allowlist

Analisi di CVE-2026-22874: lista di permessi SSRF incompleta nei webhook/migration di Gitea (transizione IPv6 e metadati cloud). Risolto in Gitea 1.26.3.

Vedi Repository
212 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-22874 — Protezione SSRF incompleta nella lista di permessi di webhook e migrazione di Gitea

Descrizione tecnica e riferimenti per CVE-2026-22874 (GHSA-2r5c-gw76-rh3w): una lista di permessi SSRF incompleta nella consegna dei webhook e nella migrazione dei repository di Gitea, corretta in Gitea 1.26.3.

Ho segnalato indipendentemente questa classe di SSRF ai manutentori di Gitea e sono accreditato come contributore (other) nell'avviso pubblicato; il segnalatore principale dell'avviso è J. Leitschuh. Questo repository è una descrizione difensiva ed educativa dell'avviso pubblico — il problema è risolto.

  • Avviso: https://github.com/go-gitea/gitea/security/advisories/GHSA-2r5c-gw76-rh3w
  • Gravità: Critica, CVSS 9.6 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N)
  • Versione affetta: Gitea <= 1.26.2 — Corretta in: 1.26.3
  • Debolezza: CWE-918 (Server-Side Request Forgery)

Riepilogo

La lista di permessi SSRF predefinita di Gitea (, utilizzata sia per la consegna dei webhook che per le migrazioni dei repository) si basava sulla funzione della libreria standard di Go, che riconosce solo RFC 1918 (, , ) e RFC 4193 (). Diversi intervalli di indirizzi comunemente utilizzati per servizi di metadati cloud, reti interne e meccanismi di transizione IPv6 non sono "privati" secondo quella definizione e quindi superavano il filtro "esterno", permettendo a un utente autenticato di far inviare richieste HTTP dal server a quelle destinazioni.

MatchBuiltinExternal
net.IP.IsPrivate()
10/8
172.16/12
192.168/16
fc00::/7

Poiché la consegna del webhook registra lo stato della risposta, le intestazioni e fino a ~1 MiB di corpo e lo visualizza nell'interfaccia della cronologia dei webhook, l'SSRF non è cieco: l'attaccante può leggere ciò che il servizio interno bersaglio restituisce.

Intervalli non rilevati da net.IP.IsPrivate()

IntervalloSignificato
100.64.0.0/10RFC 6598 NAT per operatore
168.63.129.16/32Azure WireServer / endpoint metadati istanza
64:ff9b::/96RFC 6052 NAT64 (può incorporare 169.254.169.254, es. AWS IMDS)
2001::/32RFC 4380 Teredo
2002::/16RFC 3056 6to4

Le forme IPv6 mappate IPv4 degli intervalli sopra sono influenzate allo stesso modo.

Un utente autenticato che può creare o modificare un webhook (o avviare una migrazione) può quindi raggiungere gli endpoint dei metadati cloud — ad esempio AWS IMDS tramite un mapping NAT64, o Azure WireServer a 168.63.129.16 — e servizi solo interni, quindi leggere la risposta attraverso la vista della cronologia dei webhook.

Causa principale

La policy predefinita è MatchBuiltinExternal nel controllo HostMatchList di Gitea, che considerava consentito qualsiasi indirizzo unicast globale non IsPrivate():

root@kitploit:~
case MatchBuiltinExternal:
    if ip.IsGlobalUnicast() && !ip.IsPrivate() {
        return true
    }

net.IP.IsPrivate() non è un confine di sicurezza per "esterno": non tiene conto del NAT per operatore, degli endpoint dei metadati cloud o degli intervalli di transizione IPv6 che possono essere instradati verso destinazioni interne o di metadati.

Correzione

Corretto in Gitea 1.26.3 estendendo il filtro integrato per bloccare gli intervalli aggiuntivi sopra. Gli operatori dovrebbero aggiornare a 1.26.3 o successivo. Come difesa in profondità:

  • limitare i target in uscita di webhook e migrazione tramite le impostazioni di lista permessi/lista blocchi;
  • applicare controlli di uscita di rete intorno all'host Gitea;
  • nelle istanze cloud, disabilitare IMDSv1 e richiedere IMDSv2 (o l'equivalente del provider).

Riferimenti

  • GHSA-2r5c-gw76-rh3w — https://github.com/go-gitea/gitea/security/advisories/GHSA-2r5c-gw76-rh3w
  • CVE-2026-22874
  • CWE-918: Server-Side Request Forgery (SSRF)
Scarica lo strumento