cg vulnerable to an Open Redirect Vulnerability on Referer HeaderGHSA-w228-rfpx-fhm4
MEDIUMFix: Clinical-Genomics/cg@96e6a96GHSA-w228-rfpx-fhm4 is a medium-severity (CVSS 6.1) vulnerability in cg. A fix is available for cg — see the affected versions and patch details below.
Real-World Exposure
cgReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects PyPI packages — download data is not available via public APIs for these ecosystems.
Description
Summary
A vulnerability has been discovered in the handling of the referrer header in the application, which could allow an attacker to conduct open redirects. The issue arises from improper validation of the referrer header in certain conditions. By manipulating the referrer header, an attacker could potentially redirect users to malicious websites, phishing pages, or other dangerous destinations.
PoC
If you change the referer header, you will be redirected to that domain without verifying.
https://github.com/Clinical-Genomics/cg/blob/master/cg/server/invoices/views.py#L173
Impact
An attacker exploiting this vulnerability could trick users into visiting malicious websites or disclose sensitive information by redirecting them to unintended destinations. This could lead to various attacks including phishing, malware distribution, or further exploitation of other vulnerabilities.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🐍PyPI | cg | all versions | 60.2.12pip install --upgrade 'cg==60.2.12' |
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for cg, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update cg to 60.2.12 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-w228-rfpx-fhm4 is resolved across your whole dependency graph.
Workarounds
Stop reflecting attacker-controlled destinations: resolve every redirect target against an allowlist of paths or hosts you own, prefer a server-side key over a full URL in the request, and reject absolute URLs entirely where the flow only ever needs a relative one.
Frequently Asked Questions
Is GHSA-w228-rfpx-fhm4 in your dependencies?
Find it across PyPI, including transitive dependencies.