Fix Python

Apply a Python dependency CVE fix: bump requirements pin, regenerate requirements-build.txt with pybuild-deps, verify with pip-audit.

quay be5a604 1.3 KB Updated

File contents

Fix Python CVE

Inputs

Input Required
PACKAGE yes
FIXED_VERSION yes
CVE_ID yes
REPO_DIR yes (cwd)
CVE_PYBUILD_SETUPTOOLS_WORKAROUND optional, default false

Steps

1. Find requirements file

REQ_FILE=""
for f in requirements.txt requirements-dev.txt; do
  if grep -qi "^${PACKAGE}" "$f" 2>/dev/null; then
    REQ_FILE="$f"
    break
  fi
done

2. Bump version pin

ESCAPED_PACKAGE=$(printf '%s\n' "$PACKAGE" | sed 's/[.[\*^$]/\\&/g')
sed -i "s/^${ESCAPED_PACKAGE}[=>~!][=<>~!]*.*$/${PACKAGE}>=${FIXED_VERSION}/" "$REQ_FILE"

3. Regenerate requirements-build.txt

pybuild-deps compile --generate-hashes --output-file=requirements-build.txt requirements.txt

if [ "${CVE_PYBUILD_SETUPTOOLS_WORKAROUND:-false}" = "true" ]; then
  sed -i '/^setuptools==82\b/d' requirements-build.txt
fi

4. Verify

grep "${PACKAGE}" requirements-build.txt
pip-audit -r requirements.txt 2>/dev/null | grep -i "${CVE_ID}" && \
  echo "WARNING: CVE still detected" || echo "CVE resolved in scan"

Output

Modified requirements*.txt and requirements-build.txt in REPO_DIR.

quay/ai-helpers/tree/main/plugins/cve/skills/fix-python commit be5a604829

Frequently asked questions

npx skillmds@latest add quay/fix-python