Repository navigation
[Security] Restrict EC NIXL reads to configured producer peers - #65024
Open
jperezdealgaba wants to merge 1 commit into
Open
jperezdealgaba wants to merge 1 commit into
jperezdealgaba wants to merge 1 commit into
Conversation
Co-authored-by: Codex <noreply@openai.com> Signed-off-by: Juan Pérez de Algaba <jperezde@redhat.com>
Contributor
|
Documentation preview: https://vllm--65024.org.readthedocs.build/en/65024/ |
Contributor
Author
|
/ci run |
|
✅ Triggered Buildkite CI #99020 for commit |
Contributor
|
This pull request has merge conflicts that must be resolved before it can be |
This branch has not been deployed
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.
Overview
Require CPU EC NIXL consumers to authorize producer endpoints before allocating cache entries or opening connections.
ec_allowed_peersis a server-side exacthost:portallowlist and defaults to denying remote reads.Claims
Validation
git diff --check: passed./dev/shmdependency; the normal test cleanup also crashed in PyTorch'sempty_host_cache. No passing runtime results are claimed.The new HTTP regression uses the producer's actual image hash without a client UUID. Metadata-only input must fail and pixel input must fall back locally, with neither contacting the unapproved control peer. A later request uses a different salt without transfer parameters. Existing integration cases verify failures from an approved peer and successful subsequent native NIXL transfers.
GPU regression results, before/after failure evidence, and model-output evaluation are pending CI. This PR should not merge until that validation and human line-by-line review are complete.
Details
Request-selected EC coordinates previously flowed from API input to
_start_xfer, which allocated an entry under the image hash and connected to that producer. The guard now runs before both side effects. Every frontend using this CPU EC consumer reaches the same scheduler guard: Python chat/completions/Responses/Anthropic, scale-out generate, Rust frontend, SageMaker/batch forwarding, and direct engine clients. Streaming and non-streaming share this path. Other connectors are unchanged.The allowlist establishes operator authorization of the endpoint, not transport authentication or verification of embedding contents. Allowed producers, their DNS, and the inter-node network remain trusted. Producer compromise is outside this control.
Duplicate-work check: reviewed the diffs of #58853, #56814, #54324, #55290, #59875, #57333, #61764, #50353, #64721, and #65018. They address ack shape/error containment, extra-argument typing, serialization, resource cleanup, metrics, port allocation, request copying, or forwarded/rendered features. None restricts producer selection before CPU EC reads. Current main retains the unrestricted sink.
AI assistance was used to develop this PR.
Pull Request Checklist
I used vLLM's
/pr-checklistskill. (Mandatory for agents, optional for humans).AI assistance was used during the creation of this PR.
Design Fit: The control is confined to the opt-in CPU EC connector.
Testing and Validation: Linux/GPU regression and model-output validation pending CI; local environment limitations described above.
Code Quality and Style: Changed-file checks pass; feature documentation includes the default and migration requirement.
Pull Request Contents: Includes root cause, coverage, duplicate checks, tradeoffs, and validation limitations.