CVE-2026-44220 ciguard: discover_pipeline_files follows symlinks out of scan root
An attacker can plant symlinks to force the CI/CD auditor to read pipeline files outside the intended scan directory.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Local or same network only
- Victim action needed
- A user has to click or open something
- Fix
- Available
What is CVE-2026-44220?
CVE-2026-44220 is a low-severity path traversal vulnerability in Jo-Jo98 ciguard, published on 12 May 2026. It can only be exploited from the same machine or local network, and only if a user opens a file or follows a link.
Official description
ciguard is a static security auditor for CI/CD pipelines. From 0.8.0 to 0.8.1 , the discover_pipeline_files() function in src/ciguard/discovery.py walks a directory tree following symlinks, with cycle protection via tracking visited resolved paths. An attacker who can plant a symlink in a directory the user (or AI agent) scans can cause discovery to walk into the symlink target and return paths to pipeline-shaped files outside the requested root. This vulnerability is fixed in 0.8.2.
Weakness: CWE-59
Which versions are affected by CVE-2026-44220?
3 open source packages ship an affected version, including ciguard.
| Package | Affected | Fixed in |
|---|---|---|
ciguard PyPI | From 0.8.0 | 0.8.2 |
ciguard PyPI | From 0.8.0 | 0.8.2 |
ciguard PyPI | From 0.8.0 | 0.8.2 |
How do I fix CVE-2026-44220?
Upgrade ciguard to 0.8.2 or later.
Upgrade, and resolve every user-supplied path against an allowed base folder before opening it. More about Path traversal.
Is CVE-2026-44220 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-44220 exists.
Sources
Also known as GHSA-8cxw-cc62-q28v, PYSEC-2026-2408.