Skip to content

Remove pip-audit ignore for nltk PYSEC-2026-3740 once a fixed release ships #520

Open

Description

@arekay-nv

Summary

CI's pip-audit step ignores nltk advisory PYSEC-2026-3740 (aliases: CVE-2026-81726, GHSA-8mgp-746c-j5xp). nltk is pulled in by the rouge extra, added in #506. There is no fixed nltk release yet (latest is 3.10.3), so the audit can't be cleared by bumping the pin.

Why the ignore is safe

According to the OSV record, the advisory is a path traversal in nltk's model-artifact APIs: TransitionParser, AveragedPerceptron, PerceptronTagger, and maxent parameter APIs. It only applies when nltk's pathsec sandbox is enabled.

This repo doesn't call any of those APIs. It uses:

  • nltk.sent_tokenize in RougeScorer (src/inference_endpoint/evaluation/scoring.py)
  • rouge_score's Porter stemmer, reached through evaluate.load("rouge")

Switching to pysbd for sentence splitting wouldn't remove the dependency, because rouge_score itself requires nltk.

To do when a fix ships

Upstream fix: nltk/nltk#3753. When a fixed nltk release is published, or the advisory data is corrected (OSV's range currently says fixed: 3.10.3, but its description says "through 3.10.3"):

  • Bump the nltk pin in the rouge extra (pyproject.toml) and run uv lock
  • Remove --ignore-vuln PYSEC-2026-3740 from .github/workflows/test.yml
  • Remove the matching notes in docs/DEVELOPMENT.md and AGENTS.md
  • Confirm that uv run pip-audit passes with no ignores

Context: #506 (comment)

Metadata

Metadata

Assignees

No one assigned

    Labels

    dependenciessecuritySecurity vulnerability or hardeningstatus: blockedBlocked on external dependency or decisiontype: choreMaintenance, deps, CI, tooling

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions