From f1bebb6fbd5ab67a569aca616f62cd5604d768a1 Mon Sep 17 00:00:00 2001 From: Yuneng Jiang Date: Fri, 28 Aug 2026 16:25:41 -0700 Subject: [PATCH] chore(deps): raise RestrictedPython floor to 8.5 RestrictedPython 8.3 extended its protected-name validation to cover positional-only parameters, so sandboxed source can no longer bind a local named _getattr_, _getitem_, _write_ or _print_ that takes precedence over the hooks the custom-code guardrail sandbox installs. 8.4 and 8.5 continue in the same direction with safer_getattr and the Python 3.15 syntax audit. The floor moves rather than the lock alone so downstream installs of litellm[proxy] pick up the same behaviour. --- pyproject.toml | 2 +- uv.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index eba9e5afc98..a0db4d49467 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -69,7 +69,7 @@ proxy = [ "mcp>=1.28.1,<2.0", "litellm-proxy-extras==0.4.90", "litellm-enterprise==0.1.61", - "RestrictedPython>=8.1,<9.0", + "RestrictedPython>=8.5,<9.0", "rich>=13.9.4,<14.0", "InquirerPy>=0.3.4,<1.0", "polars>=1.38.1,<2.0", diff --git a/uv.lock b/uv.lock index f42c67079e6..019c5a70f9e 100644 --- a/uv.lock +++ b/uv.lock @@ -10,7 +10,7 @@ resolution-markers = [ ] [options] -exclude-newer = "2026-08-24T20:19:42.376246Z" +exclude-newer = "2026-08-25T23:16:47.126855Z" exclude-newer-span = "P3D" [manifest] @@ -4558,7 +4558,7 @@ requires-dist = [ { name = "redisvl", marker = "extra == 'extra-proxy'", specifier = ">=0.4.1,<1.0" }, { name = "requests", marker = "extra == 'cli'", specifier = ">=2.32.0,<3.0" }, { name = "resend", marker = "extra == 'extra-proxy'", specifier = ">=2.23.0,<3.0" }, - { name = "restrictedpython", marker = "extra == 'proxy'", specifier = ">=8.1,<9.0" }, + { name = "restrictedpython", marker = "extra == 'proxy'", specifier = ">=8.5,<9.0" }, { name = "rich", marker = "extra == 'cli'", specifier = ">=13.9.4,<14.0" }, { name = "rich", marker = "extra == 'proxy'", specifier = ">=13.9.4,<14.0" }, { name = "rq", marker = "extra == 'proxy'", specifier = ">=2.7.0,<3.0" }, @@ -8265,11 +8265,11 @@ wheels = [ [[package]] name = "restrictedpython" -version = "8.1" +version = "8.5" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/5f/1c/aec08bcb4ab14a1521579fbe21ceff2a634bb1f737f11cf7f9c8bb96e680/restrictedpython-8.1.tar.gz", hash = "sha256:4a69304aceacf6bee74bdf153c728221d4e3109b39acbfe00b3494927080d898", size = 838331, upload-time = "2025-10-19T14:11:32.531Z" } +sdist = { url = "https://files.pythonhosted.org/packages/7c/3b/8e41f7cfabbb30b1013ebc7484303d6c87da2906ec432d69dea11d2f7d75/restrictedpython-8.5.tar.gz", hash = "sha256:4ed1269dbe3caa88db650d1af325198a952aeb1451eca05df0cfa65db4466215", size = 455879, upload-time = "2026-08-19T07:02:10.934Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/1a/c0/3848f4006f7e164ee20833ca984067e4b3fc99fe7f1dfa88b4927e681299/restrictedpython-8.1-py3-none-any.whl", hash = "sha256:4769449c6cdb10f2071649ba386902befff0eff2a8fd6217989fa7b16aeae926", size = 27651, upload-time = "2025-10-19T14:11:30.201Z" }, + { url = "https://files.pythonhosted.org/packages/58/57/16ce3c721f5a33317e4110575d5c9976c0c45f7fd96ca2e0adeab06e6026/restrictedpython-8.5-py3-none-any.whl", hash = "sha256:6c70e0a3af13e830d37225788cdc8ab5804a8df4b500c135086eaef34b5c01e0", size = 30962, upload-time = "2026-08-19T07:02:09.553Z" }, ] [[package]]