Skip to content

Vendor patched PLY parser#376

Merged
AndreyVMarkelov merged 4 commits into
mainfrom
agent/vendor-patched-ply
Jul 17, 2026
Merged

Vendor patched PLY parser#376
AndreyVMarkelov merged 4 commits into
mainfrom
agent/vendor-patched-ply

Conversation

@AndreyVMarkelov

Copy link
Copy Markdown
Contributor

Summary

  • vendor the PLY 3.11 lexer and parser runtime inside Stone
  • remove the complete pickle-table API, including picklefile, read_pickle(), and pickle_table()
  • remove the external ply runtime dependency
  • include BSD licensing, source provenance, and security regression tests
  • exclude vendored third-party code from first-party lint and type analysis

Why

PLY 3.11 on PyPI contains an unsafe pickle deserialization path reported as CVE-2025-56005, and the upstream project was archived in December 2025. Stone does not call that path today, but there is no maintained fixed PyPI release. Vendoring the exact runtime and deleting the vulnerable feature removes the dependency alert while preserving the existing lexer, grammar, AST, positions, and error behavior.

SDK impact

There is no intended public parser or generated-SDK behavior change. Stone wheels no longer declare a dependency on the external ply distribution. The vendored license and provenance note are included in both wheel and source distributions.

Validation

  • python3 -m unittest discover -q — 188 tests passed
  • security regression tests verify pickle APIs are absent and picklefile= is rejected
  • Flake8 passed
  • Pylint passed with 10.00/10
  • Mypy passed for affected first-party files
  • wheel and source distribution built successfully
  • clean wheel installation parsed a Stone specification without external ply
  • wheel metadata contains no ply requirement

@AndreyVMarkelov
AndreyVMarkelov requested a review from rhui-dbx July 17, 2026 04:36
@AndreyVMarkelov
AndreyVMarkelov marked this pull request as ready for review July 17, 2026 04:37
@AndreyVMarkelov
AndreyVMarkelov requested a review from cguldner July 17, 2026 19:34
@AndreyVMarkelov
AndreyVMarkelov merged commit f32aedf into main Jul 17, 2026
13 checks passed
@AndreyVMarkelov
AndreyVMarkelov deleted the agent/vendor-patched-ply branch July 17, 2026 22:44
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.

2 participants