fix: remove unregistered jet-api from Dockerfile.linting (dependency confusion) - #88
Open
Xavier Garceau-Aranda (x4v13r64) wants to merge 1 commit into
Conversation
…confusion) jet-api is an internal NVIDIA CI package not published on PyPI. Removing it from the pip install command prevents dependency confusion attacks where pip could resolve the name from PyPI when the private index is unavailable or returns a lower version.
Xavier Garceau-Aranda (x4v13r64)
requested a review
from a team
as a code owner
March 21, 2026 08:47
|
Marking as stale. No activity in 60 days. |
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
Dockerfile.lintinginstallsjet-apivia pip in thejetbuild stage.jet-apiis an internal NVIDIA CI orchestration package that is not published on PyPI.The private index URL is injected via a Docker build secret (
JET_INDEX_URLS) and appended as a trailing positional argument. If the secret is absent or the variable expansion produces an empty string, pip resolvesjet-apiexclusively from PyPI — where the name is currently unregistered and squattable.This PR removes
jet-apifrom the install command.jet-client(which is pinned to~=2.0) is retained as it is the primary package needed for the linting stage.Changes
Dockerfile.linting: removejet-apifrom thepip installline in thejetstageSecurity Impact
Dependency confusion —
jet-apiis unregistered on PyPI. An attacker registering the name gains code execution inside CI build environments that use this Dockerfile stage without providing the private index secret.Test plan
jetbuild stage still functions correctly withoutjet-apijet-apiis required, install it using an explicit--extra-index-urlflag (not a trailing positional argument) so the private index is always consulted