Skip to content

fix(deps): require XXE-safe lxml - #326

Merged
rylinjames merged 1 commit into
mainfrom
codex/fix-lxml-cve-314
Aug 28, 2026
Merged

fix(deps): require XXE-safe lxml#326
rylinjames merged 1 commit into
mainfrom
codex/fix-lxml-cve-314

Conversation

@rylinjames

Copy link
Copy Markdown
Collaborator

Fixes #314

What changed

  • require lxml>=6.1.0 in the safety extra so URDF parsing cannot resolve to a vulnerable release
  • update the generated lxml lock entry from 6.0.4 to 6.1.2
  • add metadata and lockfile regression tests for the security floor

Security evidence

Tether passes user-selected URDF files into yourdfpy.URDF.load from the safety guard and embodiment adapter. With the former locked lxml 6.0.4, an isolated XML probe resolved a local-file external entity. With locked lxml 6.1.2, local_file_resolved=False.

Verification

  • pytest -q tests/test_pyproject_metadata.py: 4 passed
  • PYTHONPATH=src pytest -q tests/test_guard.py tests/test_adapt.py: 42 passed
  • ruff check and ruff format --check: passed
  • built wheel metadata: Requires-Dist: lxml>=6.1.0; extra == safety
  • full local suite: 3544 passed, 84 skipped; 23 unrelated environment failures from incompatible locally installed Transformers/Hugging Face and partial LeRobot packages

Lockfile note

The repository lock root metadata is already stale relative to pyproject.toml. A full refresh is independently blocked by current optional-dependency resolution conflicts (ARM64 NumPy/LeRobot, unavailable scservo-sdk registry resolution, and NVIDIA TensorRT placeholder metadata on macOS). This PR keeps #314 narrow and updates only the generated lxml package stanza.

@rylinjames
rylinjames merged commit 8bcfc68 into main Aug 28, 2026
9 checks passed
@rylinjames
rylinjames deleted the codex/fix-lxml-cve-314 branch August 28, 2026 21:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Possible fix(deps): 11 vulnerable dependencies in uv.lock

1 participant