CVE-2026-44971: DataDog GuardDog SSRF and credential disclosure in remote project scanning

CVE-2026-44971 · Severity: high · CVSS 8.2 · Published 2026-05-27

GuardDog, a tool used to scan software projects for malicious packages, contains a flaw in how it handles remote repository URLs. An attacker can provide a specially crafted URL that tricks the scanner into sending the user's private GitHub access tokens to a server controlled by the attacker. This could lead to the theft of sensitive credentials and unauthorized access to private code repositories.

Technologies: guarddog (PyPI). Vendors: PyPI.

Quick answers

Is CVE-2026-44971 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-44971 being exploited in the wild.
How severe is CVE-2026-44971?
High severity, with a CVSS score of 8.2, published 27 May 2026.
Which products and versions are affected?
guarddog (PyPI) >= 1.0.0, <= 2.9.0, ECOSYSTEM:introduced=1.0.0,last_affected=2.9.0.
Is there a fix for CVE-2026-44971?
No fixed version is recorded yet. Check the vendor's advisory in the references below. If you run it, Junglewise drafts a mitigation that fits your setup and applies it once you approve, with senior security engineers behind it.
How is CVE-2026-44971 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-44971?
Check whether you run guarddog (PyPI) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

Technical details

A vulnerability exists in `ProjectScanner.scan_remote()` where repository URLs are modified using a simple string replacement (`url.replace("github", "raw.githubusercontent")`) without proper hostname validation. An attacker can supply a crafted URL, such as one using the 'userinfo' field (e.g., `http://github@attacker-controlled-ip`), which bypasses the intended logic and redirects the request to an arbitrary destination. Because GuardDog automatically attaches the `GH_TOKEN` via HTTP Basic Auth to these requests, the attacker can capture the credentials and perform SSRF against internal services reachable by the scanner. The issue is located in `guarddog/scanners/scanner.py` and affects versions up to 2.9.0.

Affected products

  • DataDog guarddog >= 1.0.0, <= 2.9.0

Identifiers

  • CVE-2026-44971
  • GHSA-587r-mc96-6f2p
  • PYSEC-2026-2505

Timeline

  • 2026-03-18: other: Internal discovery/check date
  • 2026-05-06: disclosed: Initial disclosure to vendor
  • 2026-05-11: advisory: GitHub Advisory published
  • 2026-05-27: other: NVD publication date

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.