security: remove unpatched NLTK dependency chain - #100
Merged
Conversation
kmadan
force-pushed
the
security/dependabot-199-nltk-pathsec
branch
from
September 12, 2026 07:01
37ba69b to
00b300c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fix Dependabot alert #199 (
NLTK: Model-artifact APIs bypass pathsec and touch files outside allowed roots).GitHub's advisory affects released NLTK versions through 3.10.3. NLTK upstream has merged the remediation for the model-artifact save APIs, but as of this PR there is no patched release available to depend on.
AICertify does not import NLTK directly. The vulnerable package is present in the default dependency graph through LangFair (
langfair -> nltkandlangfair -> rouge-score -> nltk).Changes
langfairfrom AICertify's default dependenciesnltk>=3.10.3floor, which still selects an affected releasepoetry.lock, because it records NLTK 3.10.3 and would continue to ship/scan the vulnerable graph; CI now resolves the safe dependency set frompyproject.tomlWhy not bump NLTK?
There is currently no released version newer than 3.10.3 containing the upstream fix. Raising the lower bound to 3.10.3 does not remediate this advisory.
Upstream remediation commit:
nltk/nltk@2a92b71827d754ae8920261e7ed0c4bb283ab2d7.Functional impact
The OPA/compliance core, reports, DeepEval integration, CLI, and other AICertify functionality remain in the default install. LangFair-backed fairness evaluation is temporarily no longer installed automatically. Its existing runtime fallback already treats LangFair as optional when unavailable.
Once NLTK publishes a fixed release, LangFair can be restored to the default dependency set with a safe NLTK floor and the temporary CI exclusion can be removed.
Verification
CI now verifies that a fresh default Poetry environment contains no NLTK package, then runs the existing pre-commit checks, package import check, OPA setup, and full test suite.
Closes/addresses Dependabot alert #199.