Repository navigation
Fix reported Reachy dependency vulnerabilities - #95
Merged
Merged
Conversation
Signed-off-by: Johnny Greco <jogreco@nvidia.com>
Signed-off-by: Johnny Greco <jogreco@nvidia.com>
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.
The October 25 NSpect scan flagged 8 vulnerable packages. Five ship in the Reachy Mini demo's locked dependencies and now upgrade to fixed releases. The other three have no installable fix: GStreamer's fixed release cannot install on macOS yet, and the two Go modules are already at their latest releases.
emSign ECC Root CA - G3, whose intermediates have compromised keysWhat changed
uv.lockwith uv 0.11.0 to keep the existing format. Pillow also moves inoverride-dependencies, because Gradio still caps it below 12. The new versions require yarl 1.25.1, virtualenv 21.14.13, python-discovery 1.6.4, and packaging 26.3; no other versions change.gstreamer-plugins1.28.8 has only free-threaded Windows wheels, souv lockfails for macOS with "gstreamer-plugins==1.28.8 has no wheels with a matching Python version tag". The scan's suggested 1.29.2a0 is a July prerelease that predates those fixes and lacks Python 3.11/3.12 macOSgstreamer-pythonwheels.Go findings (no change): x/crypto v0.58.0 carries GO-2026-5932, the unmaintained OpenPGP packages with no fixed release; the exporter README already records it, and
go list -deps -test ./...still contains no OpenPGP paths. For x/text v0.43.0, the Go vulnerability database, OSV, and GitHub advisories list nothing affecting this version, andgovulncheckreports no x/text finding. Upstream has unreleased x/text fixes after v0.43.0 (an IDNA Punycode work cap ininternal/export/idna, which the exporter does not compile, and an Accept-Language guard the Go security team judged non-security). Pick up the next tagged x/text release when it ships.Verification
Proof: a vulnerability audit of the locked packages shows the reported findings before and none after, and the same test suite gives identical results on
mainand this branch.pip-audit(OSV) on environments built from each lock:mainhas aiohttp 8, certifi 2, filelock 3, Pillow 41, and virtualenv 23 findings; this branch has none for those packages.mainand this branch. The same 2 modules fail to importgi, which is macOS-only.ty checkreports the same 36 pre-existing diagnostics on both.to_pil_image, on Pillow 13; huggingface-hubWeakFileLock,FileLock,SoftFileLock, and virtualenv creation on filelock 4.2.4; aiohttp HTTP, WebSocket, and TLS round trips; requests and httpx TLS with the new certifi;emSign ECC Root CA - G3absent from both certifi and pip's vendored bundle.uv lock --check(uv 0.11.0 and 0.13.4),ruff check ., compileall, andgit diff --checkpass.tests/test_dependency_licenses.py: 52 passed.uv sync, tests, and type checks, because the committed lock targets Darwin and this host is Linux.Outside this report:
govulncheckreports Go 1.26.8 standard-library advisories fixed in 1.26.9/1.26.10.pip-auditalso flags gradio 5.50.1.dev1, setuptools 84.0.0, brotli 1.2.0, and dev-only gitpython 3.1.50. OAR's dev-only lock has filelock 3.32.3, andnative-controller/pyproject.tomlkeeps unlocked floors, includingpillow<13. None of these appear in the scan; they are left for follow-up.Panel review (one round on f2dd927): integration and correctness with Claude Opus 5.5 at high effort was clean; intent, verification, and security with Claude Fable 5.1 at high effort found one low-severity issue, a certifi floor comment naming 2026.10.23 rather than 2026.10.19 as the fixing release, fixed in 4acc5cd (comment only;
uv lock --checkstill passes). Declined as follow-ups: using a uvconstraint-dependenciesfloor instead of a direct certifi dependency to avoid the MPL-2.0 exception (no repo precedent; prior fixes use direct floors), and an exporter README note for x/text (no advisory exists to document).Reviewed with sol-loop: 1 round with gpt-6.1-sol on high. Sol verdict: approved