Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,14 @@ COPY nemo_curator/__init__.py nemo_curator/package_info.py /opt/Curator/nemo_cur

# Install Curator
RUN uv sync --link-mode copy --locked --extra ${CURATOR_EXTRA} ${CURATOR_GROUPS} --no-cache && \
find /opt/venv -type d -path "*ray/_private/runtime_env/agent/thirdparty_files/aiohttp*" -exec rm -rf {} +
find /opt/venv -type d -path "*ray/_private/runtime_env/agent/thirdparty_files/aiohttp*" -exec rm -rf {} + && \
# Address GHSA-72hv-8253-57qq: jackson-core bundled in ray_dist.jar (jackson-core 2.16.1 < 2.18.6)
# Ray's Java support is not used; deleting the JAR removes the vulnerable jackson-core classes.
# TODO: Remove once Ray upgrades bundled jackson-core to >=2.18.6 (https://github.com/ray-project/ray/issues/35949)
find /opt/venv -name "ray_dist.jar" -delete && \
if find /opt/venv -name "ray_dist.jar" | grep -q .; then \
echo "ERROR: GHSA-72hv-8253-57qq not fixed — ray_dist.jar still present after deletion" && exit 1; \
fi

COPY . /opt/Curator

Expand Down
7 changes: 3 additions & 4 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,6 @@ dependencies = [
cuda12 = [
"gpustat",
"nvidia-ml-py",
"pynvml>=13.0.1",
]
vllm = ["vllm>=0.14.1; (platform_machine == 'x86_64' and platform_system != 'Darwin')"]

Expand All @@ -97,7 +96,7 @@ deduplication_cuda12 = [
]

audio_cpu = [
"nemo_toolkit[asr]==2.4.0",
"nemo_toolkit[asr]>=2.7.2",
"soundfile>=0.12.0",
]
audio_cuda12 = [
Expand Down Expand Up @@ -250,19 +249,19 @@ constraint-dependencies = [
"starlette>=0.49.1", # Address CVE GHSA-7f5h-v6xp-fcq8
"urllib3>=2.6.3", # Address CVE GHSA-38jv-5279-wg99
"wheel>=0.46.2", # Address CVE GHSA-8rrh-rw8j-w5fx
"xgrammar>=0.1.21", # Address CVE GHSA-5cmr-4px5-23pc
"transformers>=4.56.0,<5.0", # tranfomers>5 breaks with hf_hub<1.0 added in override
]
override-dependencies = [
"apex; sys_platform == 'never'",
"distance; sys_platform == 'never'",
"huggingface-hub>=0.34,<1.0", # Override huggingface-hub, transformers and data-designer require two different versions of hugging-face hub
"transformers>=4.56.0,<5.0", # Override nemo-toolkit[asr]'s <=4.52.0 constraint; required for Nemotron VL support
"kaldiio; sys_platform == 'never'",
"levenshtein; sys_platform == 'never'",
"numpy>=2.0.0,<=2.2.0", # Override nemo-toolkits constraint of <2.0.0, upperbounds for Numba compatibility
"protobuf>=5.29.5", # Override nemo-toolkits constraint of ~=5.29.5
"setuptools>=80.10.1", # Override setuptools range in other dependencies to address CVE GHSA-58pv-8j8x-9vj2
"nixl-cu12>=0.10.0; (platform_machine == 'x86_64' and platform_system != 'Darwin')", # Override ray[llm]'s unconditional nixl dep for ARM
"xgrammar>=0.1.32", # Override vllm's ==0.1.29 pin to address CVE GHSA-7rgv-gqhr-fxg3 (DoS via multi-layer nesting)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

xgrammar override may break vllm structured output

vllm pins xgrammar==0.1.29 strictly because it relies on a stable internal API for grammar-based structured generation. Overriding to >=0.1.32 is the correct mechanism to address the CVE, but xgrammar releases between 0.1.29 and 0.1.32 may have introduced API changes that break vllm's usage. It would be worth confirming (e.g., via the CI test suite or a quick manual check of the xgrammar changelog) that vllm's structured-output feature continues to work with xgrammar>=0.1.32 before merging.

]


Expand Down
Loading
Loading