From d2e6832fe80d5994f4e80863446f6c1efc7189e2 Mon Sep 17 00:00:00 2001 From: JacobPEvans <20714140+JacobPEvans@users.noreply.github.com> Date: Sun, 24 May 2026 11:49:43 -0400 Subject: [PATCH 1/2] fix(security): bump pyarrow lower-bound for PYSEC-2026-113 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit OSV scanner flagged pyarrow 17.0.0 in space/requirements.txt with PYSEC-2026-113 (CVSS 7.0 High), fixed in 23.0.1. This was blocking the Merge Gate on every open PR. Raise the lower-bound to >=23.0.1. HF Spaces resolves the actual installed version against this constraint, so the Space will pick up a fix-version build on next deploy. No code changes needed; the viewer only uses pandas/pyarrow.Table for parquet reads, both of which are stable across the 17→23 window. Added a new line in the CVE history comment to document why the lower-bound was raised, matching the existing pillow / orjson / idna entries. Assisted-by: Claude --- space/requirements.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/space/requirements.txt b/space/requirements.txt index 2120ea2..0757c14 100644 --- a/space/requirements.txt +++ b/space/requirements.txt @@ -9,9 +9,10 @@ huggingface-hub>=0.23 # pillow 9.5.0 → 3 CVEs fixed in 10.4.0 (CVE-2024-28219, CVE-2023-50447, CVE-2024-44537) # pillow 10.4.0 → GHSA-cfh3-3jmp-rvhc + GHSA-whj4-6x5x-4v2j fixed in 12.2.0 # pyarrow 14 → PYSEC-2023-238 + PYSEC-2024-161 fixed in 17.0.0 +# pyarrow 17.0.0 → PYSEC-2026-113 (CVSS 7.0 High) fixed in 23.0.1 # orjson 3.9.9 → GHSA-hx9q-6w63-j58v fixed in 3.11.6 # idna 3.9.0 → GHSA-65pc-fj4g-8rjx fixed in 3.15 (CVSS 6.9, transitive via requests/httpx) -pyarrow>=17.0.0 +pyarrow>=23.0.1 pillow>=12.2.0 orjson>=3.11.6 idna>=3.15 From cf6b46c531046e5a22795592c930dde5e983c6f9 Mon Sep 17 00:00:00 2001 From: JacobPEvans <20714140+JacobPEvans@users.noreply.github.com> Date: Sun, 24 May 2026 11:56:06 -0400 Subject: [PATCH 2/2] fix(security): bump pyarrow lower-bound in core dependencies too MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Gemini's review on PR #55 correctly flagged that the previous commit only bumped the Space requirements.txt; the core mlx-benchmarks library still declared `pyarrow>=17.0.0` in pyproject.toml. Library users installing this package as a dependency would still resolve to a vulnerable pyarrow without an explicit floor. Bump pyproject.toml's pyarrow constraint to >=23.0.1 (matching the Space). uv lock regenerated; the actual resolved version stays at 24.0.0 (latest), so no behavioral change — just the declared security floor. Assisted-by: Claude --- pyproject.toml | 2 +- uv.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index f7651f1..607dfe6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,7 +20,7 @@ dependencies = [ "huggingface-hub>=0.23", "jsonschema[format]>=4.23.0", "psutil>=5.9", - "pyarrow>=17.0.0", + "pyarrow>=23.0.1", "lm-eval[api]==0.4.12", # tokenizers powers the lm-eval converter's tok/s computation. The library # is also a transitive dep of transformers (and therefore lm-eval), but diff --git a/uv.lock b/uv.lock index 593a524..f5e5f1c 100644 --- a/uv.lock +++ b/uv.lock @@ -2577,7 +2577,7 @@ requires-dist = [ { name = "pandas", marker = "extra == 'viewer'", specifier = ">=2.0" }, { name = "plotly", marker = "extra == 'viewer'", specifier = ">=6.7.0" }, { name = "psutil", specifier = ">=5.9" }, - { name = "pyarrow", specifier = ">=17.0.0" }, + { name = "pyarrow", specifier = ">=23.0.1" }, { name = "qwen-agent", marker = "extra == 'framework-eval'", specifier = ">=0.0.14" }, { name = "smolagents", marker = "extra == 'framework-eval'", specifier = ">=1.0.0" }, { name = "soundfile", marker = "extra == 'framework-eval'", specifier = ">=0.13.0" },