{"id":2902619,"name":"restrictedpython","ecosystem":"pypi","description":"RestrictedPython is a defined subset of the Python language which allows to provide a program input into a trusted environment.","homepage":null,"licenses":"ZPL-2.1","normalized_licenses":["ZPL-2.1"],"repository_url":"https://github.com/zopefoundation/RestrictedPython","keywords_array":["restricted","execution","security","untrusted","code"],"namespace":null,"versions_count":48,"first_release_published_at":"2007-07-28T09:59:32.000Z","latest_release_published_at":"2026-11-04T08:03:11.000Z","latest_release_number":"9.0","latest_published_release_number":"9.0","last_synced_at":"2026-11-05T09:37:55.912Z","created_at":"2022-04-10T12:28:21.179Z","updated_at":"2026-11-06T05:17:26.699Z","registry_url":"https://pypi.org/project/restrictedpython/","install_command":"pip install restrictedpython --index-url https://pypi.org/simple","documentation_url":"https://restrictedpython.readthedocs.io/","metadata":{"funding":null,"documentation":"https://restrictedpython.readthedocs.io/","classifiers":["Development Status :: 6 - Mature","Operating System :: OS Independent","Programming Language :: Python","Programming Language :: Python :: 3","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.13","Programming Language :: Python :: 3.14","Programming Language :: Python :: 3.15","Programming Language :: Python :: Implementation :: CPython","Topic :: Security","Typing :: Typed"],"normalized_name":"restrictedpython","project_status":null},"repo_metadata":{"id":7178722,"uuid":"8480726","full_name":"zopefoundation/RestrictedPython","owner":"zopefoundation","description":"A restricted execution environment for Python to run untrusted code.","archived":false,"fork":false,"pushed_at":"2026-10-25T16:49:23.000Z","size":1819,"stargazers_count":747,"open_issues_count":17,"forks_count":52,"subscribers_count":72,"default_branch":"master","last_synced_at":"2026-11-01T11:14:34.733Z","etag":null,"topics":["code","hacktoberfest","plone","python","restrictions","untrusted","zope"],"latest_commit_sha":null,"homepage":"http://restrictedpython.readthedocs.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zopefoundation.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"docs/roadmap/index.rst","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":"COPYRIGHT.txt","agents":null,"dco":null,"cla":null}},"created_at":"2013-02-28T14:29:45.000Z","updated_at":"2026-10-21T15:22:35.000Z","dependencies_parsed_at":"2023-11-06T08:29:15.874Z","dependency_job_id":"e622b7b7-4bbf-4033-ba48-a2e348bd57c2","html_url":"https://github.com/zopefoundation/RestrictedPython","commit_stats":{"total_commits":664,"total_committers":54,"mean_commits":"12.296296296296296","dds":0.6837349397590362,"last_synced_commit":"642202897b419a74b1cb1756315936b45fb75e78"},"previous_names":[],"tags_count":52,"template":false,"template_full_name":null,"purl":"pkg:github/zopefoundation/RestrictedPython","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zopefoundation","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/sbom","scorecard":{"id":1246397,"data":{"date":"2026-04-13","repo":{"name":"github.com/zopefoundation/RestrictedPython","commit":"0ed1a3cf827fa3fb35aa2a3f03fd7dce715f8278"},"scorecard":{"version":"v5.4.1-0.20260408191012-81b380477e3b","commit":"81b380477e3be32cec5c824783bcf222978afafa"},"score":5.9,"checks":[{"name":"Code-Review","score":2,"reason":"Found 7/30 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/81b380477e3be32cec5c824783bcf222978afafa/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/81b380477e3be32cec5c824783bcf222978afafa/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/81b380477e3be32cec5c824783bcf222978afafa/docs/checks.md#packaging"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/81b380477e3be32cec5c824783bcf222978afafa/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":9,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'contents' permission set to 'read': .github/workflows/pre-commit.yml:19","Info: jobLevel 'contents' permission set to 'read': .github/workflows/tests.yml:16","Warn: no topLevel permission defined: .github/workflows/pre-commit.yml:1","Warn: no topLevel permission defined: .github/workflows/tests.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/81b380477e3be32cec5c824783bcf222978afafa/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/81b380477e3be32cec5c824783bcf222978afafa/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":8,"reason":"dependency not pinned by hash detected -- score normalized to 8","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pre-commit.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/zopefoundation/RestrictedPython/pre-commit.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pre-commit.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/zopefoundation/RestrictedPython/pre-commit.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/zopefoundation/RestrictedPython/tests.yml/master?enable=pin","Info:   0 out of   3 GitHub-owned GitHubAction dependencies pinned","Info:   3 out of   3 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/81b380477e3be32cec5c824783bcf222978afafa/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/81b380477e3be32cec5c824783bcf222978afafa/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/81b380477e3be32cec5c824783bcf222978afafa/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/81b380477e3be32cec5c824783bcf222978afafa/docs/checks.md#signed-releases"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/81b380477e3be32cec5c824783bcf222978afafa/docs/checks.md#license"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/81b380477e3be32cec5c824783bcf222978afafa/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/zopefoundation/.github/SECURITY.md:1","Info: Found linked content: github.com/zopefoundation/.github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/zopefoundation/.github/SECURITY.md:1","Info: Found text in security policy: github.com/zopefoundation/.github/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/81b380477e3be32cec5c824783bcf222978afafa/docs/checks.md#security-policy"}},{"name":"SAST","score":3,"reason":"SAST tool is not run on all commits -- score normalized to 3","details":["Warn: 3 commits out of 8 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/81b380477e3be32cec5c824783bcf222978afafa/docs/checks.md#sast"}}]},"last_synced_at":"2026-04-22T15:28:26.561Z","repository_id":7178722,"created_at":"2026-04-22T15:28:26.561Z","updated_at":"2026-04-22T15:28:26.561Z"},"funding_links":[],"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":349647599,"owners_count":38573377,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-11-03T11:36:44.738Z","status":"online","status_checked_at":"2026-11-04T02:00:07.505Z","response_time":52,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"zopefoundation","name":"Zope","uuid":"1163184","kind":"organization","description":"","email":null,"website":"https://www.zope.dev","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/1163184?v=4","repositories_count":395,"last_synced_at":"2026-10-31T09:12:10.926Z","metadata":{"has_sponsors_listing":false,"funding":null},"html_url":"https://github.com/zopefoundation","funding_links":[],"total_stars":3525,"followers":148,"following":0,"created_at":"2022-11-02T16:21:46.626Z","updated_at":"2026-10-31T09:12:10.961Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zopefoundation","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zopefoundation/repositories"},"tags":[{"name":"8.3","sha":"c2250bd73d32fae583dcdd2c5dcf2b4c0fd269dc","kind":"tag","published_at":"2026-06-16T10:03:08.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/8.3","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/8.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@8.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/8.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/8.3/manifests","release_url":null},{"name":"8.3a1.dev0","sha":"393988faf91ed8f320e8b5a61c59a9960fc1849e","kind":"tag","published_at":"2026-05-29T06:35:24.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/8.3a1.dev0","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/8.3a1.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@8.3a1.dev0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/8.3a1.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/8.3a1.dev0/manifests","release_url":null},{"name":"8.2","sha":"163cca0b8260711ec00b5fa8e9806f3479172033","kind":"tag","published_at":"2026-05-29T06:27:45.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/8.2","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/8.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@8.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/8.2/manifests","release_url":null},{"name":"8.1","sha":"d301c7f89dd634393e3d7d3d9a5200a0ea701c9e","kind":"tag","published_at":"2025-10-19T14:10:45.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/8.1","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/8.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@8.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/8.1/manifests","release_url":null},{"name":"8.1a1.dev0","sha":"7f22853b4ff6f3689c8494d32bf99dcda59b5390","kind":"tag","published_at":"2025-03-20T07:34:06.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/8.1a1.dev0","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/8.1a1.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@8.1a1.dev0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/8.1a1.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/8.1a1.dev0/manifests","release_url":null},{"name":"8.0","sha":"67d6d95794f5196295ad1f9af8811f938fc9fdc2","kind":"tag","published_at":"2025-01-23T07:15:42.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/8.0","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/8.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@8.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/8.0/manifests","release_url":null},{"name":"7.4","sha":"7e5234545d9efcc02dd47b74ae14610fb516bc9a","kind":"tag","published_at":"2024-10-09T16:41:19.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/7.4","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/7.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@7.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/7.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/7.4/manifests","release_url":null},{"name":"7.3","sha":"dc6c38f4da03c25683d90ab239a16dbae9d47b70","kind":"tag","published_at":"2024-09-30T07:00:57.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/7.3","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/7.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@7.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/7.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/7.3/manifests","release_url":null},{"name":"7.2","sha":"a5ab235f174943b0525b553b34c32583a72afb67","kind":"tag","published_at":"2024-08-02T07:33:51.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/7.2","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/7.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@7.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/7.2/manifests","release_url":null},{"name":"7.2a1.dev0","sha":"2fd9544661e4205e0bdfa548a4b0aa586463e295","kind":"tag","published_at":"2024-03-14T07:15:23.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/7.2a1.dev0","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/7.2a1.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@7.2a1.dev0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/7.2a1.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/7.2a1.dev0/manifests","release_url":null},{"name":"7.1","sha":"4b6d3751d9b188859ec2fa03290375049d2de491","kind":"tag","published_at":"2024-03-14T07:13:42.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/7.1","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/7.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@7.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/7.1/manifests","release_url":null},{"name":"7.0","sha":"b5d4ba289306cbee128fb0ab8a80feda0c72ed6f","kind":"tag","published_at":"2023-11-17T07:19:06.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/7.0","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/7.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@7.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/7.0/manifests","release_url":null},{"name":"7.0a2.dev0","sha":"01459ed41d7929df9cbc70255d82b4a3a99995d5","kind":"tag","published_at":"2023-11-06T07:19:50.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/7.0a2.dev0","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/7.0a2.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@7.0a2.dev0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/7.0a2.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/7.0a2.dev0/manifests","release_url":null},{"name":"7.0a1.dev1","sha":"251d3353534966dda3788a63caa1350a6d46c438","kind":"tag","published_at":"2023-09-06T06:17:43.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/7.0a1.dev1","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/7.0a1.dev1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@7.0a1.dev1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/7.0a1.dev1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/7.0a1.dev1/manifests","release_url":null},{"name":"5.4","sha":"7031e2d8d83ec5cdbe2b38c78beab0cdab565ee8","kind":"tag","published_at":"2023-08-30T06:29:58.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/5.4","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/5.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@5.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/5.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/5.4/manifests","release_url":null},{"name":"6.2","sha":"a460be4348edb773138d7b3cccab9a2bb67e62f4","kind":"tag","published_at":"2023-08-30T06:29:23.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/6.2","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/6.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@6.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/6.2/manifests","release_url":null},{"name":"5.3","sha":"f9ef13be3f38cb55fb6f714c608075e3c895032e","kind":"tag","published_at":"2023-07-08T08:11:46.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/5.3","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/5.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@5.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/5.3/manifests","release_url":null},{"name":"6.1","sha":"311f2f7eee4988f25f402fbc927360f5f7f5771f","kind":"tag","published_at":"2023-07-08T07:29:27.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/6.1","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/6.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@6.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/6.1/manifests","release_url":null},{"name":"7.0a1.dev0","sha":"b0ba4d24089c00f2e671c608e007cb40d10e55a0","kind":"tag","published_at":"2023-03-10T07:13:00.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/7.0a1.dev0","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/7.0a1.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@7.0a1.dev0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/7.0a1.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/7.0a1.dev0/manifests","release_url":null},{"name":"6.0","sha":"725665ae49d604f05bce91555965569456fb2cf5","kind":"tag","published_at":"2022-11-03T07:09:07.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/6.0","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/6.0/manifests","release_url":null},{"name":"6.0a1.dev0","sha":"7772d068628aaadf6be5ff986c2db439cc8e78f0","kind":"tag","published_at":"2022-06-22T06:23:40.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/6.0a1.dev0","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/6.0a1.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@6.0a1.dev0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/6.0a1.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/6.0a1.dev0/manifests","release_url":null},{"name":"5.3a1.dev0","sha":"6f1d9d092f83378a95bf570061ba40a32acf2654","kind":"tag","published_at":"2022-04-13T08:06:58.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/5.3a1.dev0","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/5.3a1.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@5.3a1.dev0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/5.3a1.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/5.3a1.dev0/manifests","release_url":null},{"name":"5.2","sha":"3a532d144c3924f7bf1fab9ad1ce14b29c119c7a","kind":"tag","published_at":"2021-11-19T13:20:23.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/5.2","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/5.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@5.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/5.2/manifests","release_url":null},{"name":"5.2a1.dev0","sha":"e5cce77c91fb6358e6be6282565d75e0b7ee788f","kind":"tag","published_at":"2021-10-28T06:16:41.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/5.2a1.dev0","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/5.2a1.dev0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@5.2a1.dev0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/5.2a1.dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/5.2a1.dev0/manifests","release_url":null},{"name":"5.1","sha":"5cbfb1c8edb623fed5bbc415926d86761ad1b185","kind":"tag","published_at":"2020-10-07T12:19:29.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/5.1","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/5.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@5.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/5.1/manifests","release_url":null},{"name":"5.0","sha":"58ad5bb642455ddf08b81dc4cdb0d73c14cffd6e","kind":"tag","published_at":"2019-09-03T06:16:35.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/5.0","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/5.0/manifests","release_url":null},{"name":"4.0","sha":"4655a49cc4f0e96ba387f0153c45cb22eb63c5ba","kind":"tag","published_at":"2019-05-10T09:49:44.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/4.0","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/4.0/manifests","release_url":null},{"name":"4.0b8","sha":"1da3189f0fb4bdb7cd74981cc24b3169cf907139","kind":"tag","published_at":"2019-02-09T13:48:59.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/4.0b8","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/4.0b8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@4.0b8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/4.0b8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/4.0b8/manifests","release_url":null},{"name":"4.0b7","sha":"5e3f5cd9ccc971f95dd3b87533b6fe5fca8a9da8","kind":"tag","published_at":"2018-10-30T08:58:02.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/4.0b7","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/4.0b7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@4.0b7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/4.0b7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/4.0b7/manifests","release_url":null},{"name":"4.0b6","sha":"4a219eb49c935ab2c26fa507352594dab07fc4d6","kind":"tag","published_at":"2018-10-05T11:01:23.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/4.0b6","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/4.0b6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@4.0b6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/4.0b6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/4.0b6/manifests","release_url":null},{"name":"4.0b5","sha":"8f089f29286e08b45070e7e65b62aa31d359228c","kind":"tag","published_at":"2018-09-05T09:13:57.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/4.0b5","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/4.0b5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@4.0b5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/4.0b5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/4.0b5/manifests","release_url":null},{"name":"4.0b4","sha":"baaabfd313caea0bd8ecebe02089db035f936f5d","kind":"tag","published_at":"2018-05-18T12:29:31.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/4.0b4","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/4.0b4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@4.0b4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/4.0b4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/4.0b4/manifests","release_url":null},{"name":"4.0b3","sha":"00618868e73b60c77dcec5eb510bef5b03a8798a","kind":"tag","published_at":"2018-04-12T09:00:33.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/4.0b3","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/4.0b3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@4.0b3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/4.0b3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/4.0b3/manifests","release_url":null},{"name":"4.0b2","sha":"13a4316fcc9348dd8ea3202e39b2a0b6099d2bd9","kind":"tag","published_at":"2017-09-15T15:14:22.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/4.0b2","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/4.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@4.0b2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/4.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/4.0b2/manifests","release_url":null},{"name":"4.0b1","sha":"ebb82eeb78c783cf527f23f68be34192d572f0a6","kind":"tag","published_at":"2017-09-15T13:03:26.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/4.0b1","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/4.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@4.0b1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/4.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/4.0b1/manifests","release_url":null},{"name":"4.0a3","sha":"d92736b3aed4824fe0f561556bc29d222cd402b5","kind":"tag","published_at":"2017-06-20T07:25:44.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/4.0a3","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/4.0a3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@4.0a3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/4.0a3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/4.0a3/manifests","release_url":null},{"name":"4.0a2","sha":"fbe0ae3343cde92e76a244a46db17784866acdda","kind":"tag","published_at":"2017-05-26T11:33:51.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/4.0a2","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/4.0a2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@4.0a2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/4.0a2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/4.0a2/manifests","release_url":null},{"name":"4.0a1","sha":"badda1829a75013b5f9237a378ae56d4ea850bc2","kind":"tag","published_at":"2017-05-05T11:53:52.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/4.0a1","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/4.0a1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@4.0a1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/4.0a1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/4.0a1/manifests","release_url":null},{"name":"3.6.0","sha":"c3bab8afa61c2acca687c95e5cb7aa1df719b6f3","kind":"commit","published_at":"2010-07-09T17:10:39.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/3.6.0","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/3.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@3.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/3.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/3.6.0/manifests","release_url":null},{"name":"backups/davisagli-python27@114380","sha":"99d08ba3b3867d640c5e444344812c08118f25ce","kind":"commit","published_at":"2010-07-08T17:42:33.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/backups/davisagli-python27@114380","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/backups/davisagli-python27@114380","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@backups%2Fdavisagli-python27%40114380","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/backups%2Fdavisagli-python27@114380","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/backups%2Fdavisagli-python27@114380/manifests","release_url":null},{"name":"3.6.0a1","sha":"0e7011d5ac974960fca498d2b78bb6e8c1e08ca9","kind":"commit","published_at":"2010-06-05T16:36:25.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/3.6.0a1","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/3.6.0a1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@3.6.0a1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/3.6.0a1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/3.6.0a1/manifests","release_url":null},{"name":"3.5.2","sha":"33506c5ed90d74ecee3382c40f6a1143b6f47102","kind":"commit","published_at":"2010-04-30T17:09:28.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/3.5.2","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/3.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@3.5.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/3.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/3.5.2/manifests","release_url":null},{"name":"3.5.1","sha":"0479b5d37f4cc616305e3a4a8d5ac7f5bcc532ca","kind":"commit","published_at":"2009-03-17T16:48:02.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/3.5.1","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/3.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@3.5.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/3.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/3.5.1/manifests","release_url":null},{"name":"3.5.0","sha":"7f342bf9c5773c63c9d6b2b61530ad4f43397cfc","kind":"commit","published_at":"2009-02-09T21:38:33.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/3.5.0","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/3.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@3.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/3.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/3.5.0/manifests","release_url":null},{"name":"3.4.3","sha":"8b08804356cb3841dea2dae4cd16df1c22d8b9af","kind":"commit","published_at":"2008-10-26T05:34:37.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/3.4.3","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/3.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@3.4.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/3.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/3.4.3/manifests","release_url":null},{"name":"backups/nikhil_n-py25@79581","sha":"1239ddb89027a3e066048720222291e6456f8ada","kind":"commit","published_at":"2007-08-28T15:58:58.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/backups/nikhil_n-py25@79581","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/backups/nikhil_n-py25@79581","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@backups%2Fnikhil_n-py25%4079581","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/backups%2Fnikhil_n-py25@79581","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/backups%2Fnikhil_n-py25@79581/manifests","release_url":null},{"name":"3.4.2","sha":"b31ed2e2006b03f30a9190ec8fe3dfe3be5209b9","kind":"commit","published_at":"2007-07-28T09:58:54.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/3.4.2","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/3.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@3.4.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/3.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/3.4.2/manifests","release_url":null},{"name":"3.4.1","sha":"694ce52dab98d19662f6fe8277834f65b3c30dd3","kind":"commit","published_at":"2007-06-23T11:24:43.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/3.4.1","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/3.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@3.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/3.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/3.4.1/manifests","release_url":null},{"name":"3.4.0","sha":"6fbafc53e6ea33446bf8e90de7159fff32823fdf","kind":"commit","published_at":"2007-06-04T17:54:17.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/3.4.0","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/3.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@3.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/3.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/3.4.0/manifests","release_url":null},{"name":"backups/zope2@76328","sha":"607418634eea18d1fe5d9b54880791ea25b3fa3a","kind":"commit","published_at":"2007-01-13T16:42:22.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/backups/zope2@76328","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/backups/zope2@76328","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@backups%2Fzope2%4076328","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/backups%2Fzope2@76328","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/backups%2Fzope2@76328/manifests","release_url":null},{"name":"3.2.0","sha":"bdcfb685f53380308f26fbcd777b492eb7c9087e","kind":"commit","published_at":"2006-04-05T16:06:32.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/3.2.0","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/3.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@3.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/3.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/3.2.0/manifests","release_url":null},{"name":"3.0.0","sha":"363618d54635583fb9cad35e11cab487b0b659f0","kind":"commit","published_at":"2006-04-05T15:59:48.000Z","download_url":"https://codeload.github.com/zopefoundation/RestrictedPython/tar.gz/3.0.0","html_url":"https://github.com/zopefoundation/RestrictedPython/releases/tag/3.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/zopefoundation/RestrictedPython@3.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/3.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/tags/3.0.0/manifests","release_url":null}]},"repo_metadata_updated_at":"2026-11-04T08:31:16.004Z","dependent_packages_count":15,"downloads":6724500,"downloads_period":"last-month","dependent_repos_count":716,"rankings":{"downloads":0.3592566287878788,"dependent_repos_count":0.45594055008931306,"dependent_packages_count":0.5949079511204363,"stargazers_count":3.4467724116161613,"forks_count":6.636673967521064,"docker_downloads_count":0.2684229951664124,"average":1.960329084050211},"purl":"pkg:pypi/restrictedpython","advisories":[{"uuid":"GSA_kwCzR0hTQS1ocDN2LTV2dzctZng5d84AB5OA","url":"https://github.com/advisories/GHSA-hp3v-5vw7-fx9w","title":"RestrictedPython vulnerable to sandbox escape via string.Formatter field resolution","description":"### Impact\nRestrictedPython could allow a sandbox escape when a policy exposes the standard library `string` module, or otherwise exposes `string.Formatter`, to restricted code.\n\n`string.Formatter` field resolution methods such as `get_field` can perform attribute and item traversal internally and return live object references. This can bypass RestrictedPython's normal attribute guards and may allow access to sensitive objects such as function globals, builtins, file access, or code execution primitives.\n\nUsers are impacted if they run untrusted code with RestrictedPython and expose `string.Formatter`, directly or indirectly, for example through a custom import policy or globals.\n\n### Patches\nThe problem has been patched by blocking access to `string.Formatter` and unsafe `string.Formatter` traversal methods in `safer_getattr`.\n\nUsers should upgrade to the patched release once available. Affected and patched version numbers should be filled in when the release is published.\n\n### Workarounds\nDo not expose the standard library `string` module or `string.Formatter` to restricted code.\n\nIf a custom import hook is used, deny imports of `string` or provide only a restricted wrapper that does not expose `Formatter`. If custom globals are supplied, ensure neither `string.Formatter` nor `Formatter` instances are available to restricted code.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2026-09-17T16:30:22.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":8.4,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:H/I:H/A:H","references":["https://github.com/zopefoundation/RestrictedPython/security/advisories/GHSA-hp3v-5vw7-fx9w","https://nvd.nist.gov/vuln/detail/CVE-2026-76825","https://github.com/zopefoundation/RestrictedPython/commit/3b47440070b91f8807c2b2998aca99e94783639a","https://github.com/zopefoundation/RestrictedPython/releases/tag/8.4","https://github.com/advisories/GHSA-hp3v-5vw7-fx9w"],"source_kind":"github","identifiers":["GHSA-hp3v-5vw7-fx9w","CVE-2026-76825"],"repository_url":null,"blast_radius":0.0,"created_at":"2026-09-17T17:00:09.301Z","updated_at":"2026-11-05T13:01:28.151Z","epss_percentage":0.00624,"epss_percentile":0.49632,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1ocDN2LTV2dzctZng5d84AB5OA","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS1ocDN2LTV2dzctZng5d84AB5OA","packages":[{"ecosystem":"pypi","package_name":"RestrictedPython","versions":[{"first_patched_version":"8.4","vulnerable_version_range":"\u003c 8.4"}],"purl":"pkg:pypi/restrictedpython"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1ocDN2LTV2dzctZng5d84AB5OA/related_packages","related_advisories":[]},{"uuid":"GSA_kwCzR0hTQS1mZmczLXA4Zm0tbWp4Ms4ABmDz","url":"https://github.com/advisories/GHSA-ffg3-p8fm-mjx2","title":"RestrictedPython guard hooks can be shadowed via positional-only arguments","description":"### Impact\n\nRestrictedPython rewrites sensitive operations to go through guard hooks. Attribute access becomes `_getattr_(obj, name)`, item access becomes `_getitem_(obj, key)`, writes go through `_write_`, and print goes through `_print_`. The embedding application supplies these hooks to enforce its policy.\n\nArgument-name validation rejects these protected names for regular arguments, `*args`, `**kwargs`, and keyword-only arguments, but it misses positional-only arguments (the ones before `/`). So a function like:\n\n```python\ndef f(_getattr_=evil, /):\n    return o.x\n```\n\nmakes `_getattr_` a local that shadows the policy hook, and the rewritten access calls `evil` instead. The same works for `_getitem_`, `_write_`, and `_print_`. Shadowing `_print_` can also be used to capture the internal `_getattr_` hook that RestrictedPython passes in.\n\nThe result is that sandboxed code can bypass the access policy the embedding application relies on. In applications that also handle sandbox-controlled objects unsafely (for example serializing them with pickle), this primitive can be chained further, up to remote code execution. That part depends on the embedding application, but the underlying guard bypass is in RestrictedPython.\n\n### Proof of concept\n\nOn an unpatched RestrictedPython this prints `shadowed` and an empty `calls` list, meaning the policy `_getattr_` never ran. With the fix, `compile_restricted` rejects the code.\n\n```python\nfrom RestrictedPython import compile_restricted\nfrom RestrictedPython.Guards import safe_globals, safer_getattr\n\ncalls = []\ndef policy_getattr(obj, name, default=None):\n    calls.append(name)  # the real guard records every access\n    return safer_getattr(obj, name, default)\n\nsrc = \"\"\"\ndef f(o, _getattr_=lambda obj, name: \"shadowed\", /):\n    return o.x\n\"\"\"\n\ncode = compile_restricted(src, \"\u003cs\u003e\", \"exec\")   # currently compiles, should be rejected\ng = dict(safe_globals)\ng[\"_getattr_\"] = policy_getattr\nexec(code, g)\n\nclass O:\n    x = \"secret\"\n\nprint(g[\"f\"](O()))   # -\u003e \"shadowed\"   (attacker's local was used)\nprint(calls)         # -\u003e []           (policy _getattr_ never ran)\n```\n\n### Patches\n\nThe fix validates positional-only argument names the same way the other argument kinds are already validated. It will ship in the next release.\n\n### Workarounds\n\nNone other than upgrading. If you cannot upgrade immediately, reject any submitted code whose function or lambda definitions use positional-only parameters with leading-underscore names before compiling.","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2026-08-28T22:51:35.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":8.3,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:H/I:H/A:L","references":["https://github.com/zopefoundation/RestrictedPython/security/advisories/GHSA-ffg3-p8fm-mjx2","https://nvd.nist.gov/vuln/detail/CVE-2026-55830","https://github.com/zopefoundation/RestrictedPython/commit/3737596ec9f28c34a073cc845bd2f4c0a80cb671","https://github.com/advisories/GHSA-ffg3-p8fm-mjx2"],"source_kind":"github","identifiers":["GHSA-ffg3-p8fm-mjx2","CVE-2026-55830"],"repository_url":null,"blast_radius":0.0,"created_at":"2026-08-28T23:00:09.441Z","updated_at":"2026-11-05T13:01:46.973Z","epss_percentage":0.00287,"epss_percentile":0.20995,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1mZmczLXA4Zm0tbWp4Ms4ABmDz","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS1mZmczLXA4Zm0tbWp4Ms4ABmDz","packages":[{"ecosystem":"pypi","package_name":"RestrictedPython","versions":[{"first_patched_version":"8.3","vulnerable_version_range":"\u003c= 8.2"}],"purl":"pkg:pypi/restrictedpython"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1mZmczLXA4Zm0tbWp4Ms4ABmDz/related_packages","related_advisories":[]},{"uuid":"GSA_kwCzR0hTQS1nbWo5LWg4MjUtY2hxMs4ABDvw","url":"https://github.com/advisories/GHSA-gmj9-h825-chq2","title":"try/except* clauses could allow bypass RestrictedPython via type confusion bug in the CPython interpreter","description":"### Impact\nVia a type confusion bug in the CPython interpreter when using `try/except*` RestrictedPython could be bypassed.\n\nWe believe this should be fixed upstream in Python itself until that we remove support for `try/except*` from RestrictedPython.\n(It has been fixed for some Python versions.)\n\n### Patches\nPatched in version 8.0 by removing support for `try/except*` clauses\n\n### Workarounds\nThere is no workaround.\n\n### References\nnone\n","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2025-01-23T17:19:34.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":7.9,"cvss_vector":"CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:H/I:H/A:L","references":["https://github.com/zopefoundation/RestrictedPython/security/advisories/GHSA-gmj9-h825-chq2","https://github.com/zopefoundation/RestrictedPython/commit/48a92c5bb617a647cffd0dadd4d5cfe626bcdb2f","https://nvd.nist.gov/vuln/detail/CVE-2025-22153","https://github.com/advisories/GHSA-gmj9-h825-chq2"],"source_kind":"github","identifiers":["GHSA-gmj9-h825-chq2","CVE-2025-22153"],"repository_url":"https://github.com/zopefoundation/RestrictedPython","blast_radius":0.0,"created_at":"2025-01-23T18:09:10.912Z","updated_at":"2026-11-05T13:08:49.425Z","epss_percentage":0.004,"epss_percentile":0.34209,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1nbWo5LWg4MjUtY2hxMs4ABDvw","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS1nbWo5LWg4MjUtY2hxMs4ABDvw","packages":[{"ecosystem":"pypi","package_name":"RestrictedPython","versions":[{"first_patched_version":"8.0","vulnerable_version_range":"\u003e= 6.0, \u003c 8.0"}],"purl":"pkg:pypi/restrictedpython"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS1nbWo5LWg4MjUtY2hxMs4ABDvw/related_packages","related_advisories":[]},{"uuid":"GSA_kwCzR0hTQS01cmZ2LTY2ZzQtanI4aM4AA_3y","url":"https://github.com/advisories/GHSA-5rfv-66g4-jr8h","title":"RestrictedPython information leakage via `AttributeError.obj` and the `string` module","description":"### Impact\nA user can gain access to protected (and potentially sensible) information indirectly via `AttributeError.obj` and the `string` module.\n\n### Patches\nThe problem will be fixed in version 7.3.\n\n\n### Workarounds\nIf the application does not require access to the module `string`, it can remove it from `RestrictedPython.Utilities.utility_builtins`  or otherwise do not make it available in the restricted execution environment.\n","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2024-09-30T17:14:00.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":8.7,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N","references":["https://github.com/zopefoundation/RestrictedPython/security/advisories/GHSA-5rfv-66g4-jr8h","https://github.com/zopefoundation/RestrictedPython/commit/d701cc36cccac36b21fa200f1f2d1945a9a215e6","https://nvd.nist.gov/vuln/detail/CVE-2024-47532","https://github.com/pypa/advisory-database/tree/main/vulns/restrictedpython/PYSEC-2024-186.yaml","https://github.com/advisories/GHSA-5rfv-66g4-jr8h"],"source_kind":"github","identifiers":["GHSA-5rfv-66g4-jr8h","CVE-2024-47532"],"repository_url":"https://github.com/zopefoundation/RestrictedPython","blast_radius":24.83774329407834,"created_at":"2024-09-30T18:06:17.499Z","updated_at":"2026-11-05T13:09:28.491Z","epss_percentage":0.00716,"epss_percentile":0.53508,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS01cmZ2LTY2ZzQtanI4aM4AA_3y","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS01cmZ2LTY2ZzQtanI4aM4AA_3y","packages":[{"ecosystem":"pypi","package_name":"RestrictedPython","versions":[{"first_patched_version":"7.3","vulnerable_version_range":"\u003c 7.3"}],"purl":"pkg:pypi/restrictedpython"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS01cmZ2LTY2ZzQtanI4aM4AA_3y/related_packages","related_advisories":[]},{"uuid":"GSA_kwCzR0hTQS14ancyLTZqbTktcmY2N84AA1lM","url":"https://github.com/advisories/GHSA-xjw2-6jm9-rf67","title":"Sandbox escape via various forms of \"format\".","description":"### Impact\nPython's \"format\" functionality allows someone controlling the format string to \"read\" all objects accessible through recursive attribute lookup and subscription from objects he can access. This can lead to critical information disclosure.\nWith `RestrictedPython`, the format functionality is available via the `format` and `format_map` methods of `str` (and `unicode`) (accessed either via the class or its instances) and via `string.Formatter`.\nAll known versions of `RestrictedPython` are vulnerable. \n\n### Patches\nThe issue will be fixed in 5.4 and 6.2.\n\n### Workarounds\nThere are no workarounds to fix the issue without upgrading.\n\n### References\n* https://docs.python.org/3/library/stdtypes.html#str.format_map\n* http://lucumr.pocoo.org/2016/12/29/careful-with-str-format/\n* https://www.exploit-db.com/exploits/51580\n\n### For more information\n\nIf you have any questions or comments about this advisory:\n\n* Open an issue in the [RestrictedPython issue tracker](https://github.com/zopefoundation/RestrictedPython/issues)\n* Email us at [security@plone.org](mailto:security@plone.org)\n\n### Credits\n\nThanks for analysing and reporting the go to:\n\n* Abhishek Govindarasu\n* Ankush Menat\n* Ward Theunisse\n\n","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2023-08-30T20:47:58.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":8.3,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:H/I:H/A:L","references":["https://github.com/zopefoundation/RestrictedPython/security/advisories/GHSA-xjw2-6jm9-rf67","https://nvd.nist.gov/vuln/detail/CVE-2023-41039","https://github.com/zopefoundation/RestrictedPython/commit/4134aedcff17c977da7717693ed89ce56d54c120","https://github.com/advisories/GHSA-xjw2-6jm9-rf67"],"source_kind":"github","identifiers":["GHSA-xjw2-6jm9-rf67","CVE-2023-41039"],"repository_url":"https://github.com/zopefoundation/RestrictedPython","blast_radius":0.0,"created_at":"2023-08-30T21:05:29.841Z","updated_at":"2026-11-05T13:14:08.750Z","epss_percentage":0.00683,"epss_percentile":0.52533,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS14ancyLTZqbTktcmY2N84AA1lM","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS14ancyLTZqbTktcmY2N84AA1lM","packages":[{"ecosystem":"pypi","package_name":"RestrictedPython","versions":[{"first_patched_version":"6.2","vulnerable_version_range":"\u003e= 6.0, \u003c= 6.1"},{"first_patched_version":"5.4","vulnerable_version_range":"\u003c= 5.3"}],"purl":"pkg:pypi/restrictedpython"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS14ancyLTZqbTktcmY2N84AA1lM/related_packages","related_advisories":[]},{"uuid":"GSA_kwCzR0hTQS13cWM4LXgycHItN2pxaM4AA0id","url":"https://github.com/advisories/GHSA-wqc8-x2pr-7jqh","title":"RestrictedPython vulnerable to arbitrary code execution via stack frame sandbox escape","description":"### Impact\n\nRestrictedPython does not check access to stack frames and their attributes. Stack frames are accessible within at least generators and generator expressions, which are allowed inside RestrictedPython. An attacker with access to a RestrictedPython environment can write code that gets the current stack frame in a generator and then walk the stack all the way beyond the RestrictedPython invocation boundary, thus breaking out of the restricted scope allowing the call of unrestricted Python code and therefore potentially allowing arbitrary code execution in the Python interpreter.\n\nAll RestrictedPython deployments that allow untrusted users to write Python code in the RestrictedPython environment are at risk. In terms of Zope and Plone, this would mean deployments where the administrator allows untrusted users to create and/or edit objects of type `Script (Python)`, `DTML Method`, `DTML Document` or `Zope Page Template`. This is a non-default configuration and likely to be extremely rare.\n\n### Patches\n\nThe problem has been fixed in releases 5.3 and 6.1.\n\n### Workarounds\n\nThere is no workaround available. If you cannot upgrade to the latest release you should ensure the RestrictedPython environment is only available for trusted users.\n\n### References\n\n- [RestrictedPython security advisory GHSA-wqc8-x2pr-7jqh](https://github.com/zopefoundation/RestrictedPython/security/advisories/GHSA-wqc8-x2pr-7jqh)\n\n## For more information\n\nIf you have any questions or comments about this advisory:\n\n- Open an issue in the [RestrictedPython issue tracker](https://github.com/zopefoundation/RestrictedPython/issues)\n- Email us at [security@plone.org](mailto:security@plone.org)\n\n## Credits\n\nThanks for analysing and reporting the go to:\n- Nakul Choudhary (Quasar0147 on GitHub)\n- despawningbone on GitHub\n- Robert Xiao (nneonneo on GitHub)","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2023-07-10T21:53:22.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":8.4,"cvss_vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:L","references":["https://github.com/zopefoundation/RestrictedPython/security/advisories/GHSA-wqc8-x2pr-7jqh","https://github.com/zopefoundation/RestrictedPython/commit/c8eca66ae49081f0016d2e1f094c3d72095ef531","https://nvd.nist.gov/vuln/detail/CVE-2023-37271","https://github.com/pypa/advisory-database/tree/main/vulns/restrictedpython/PYSEC-2023-118.yaml","https://github.com/advisories/GHSA-wqc8-x2pr-7jqh"],"source_kind":"github","identifiers":["GHSA-wqc8-x2pr-7jqh","CVE-2023-37271"],"repository_url":"https://github.com/zopefoundation/RestrictedPython","blast_radius":0.0,"created_at":"2023-07-10T22:03:37.312Z","updated_at":"2026-11-06T05:12:33.559Z","epss_percentage":0.00847,"epss_percentile":0.5762,"api_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS13cWM4LXgycHItN2pxaM4AA0id","html_url":"https://advisories.ecosyste.ms/advisories/GSA_kwCzR0hTQS13cWM4LXgycHItN2pxaM4AA0id","packages":[{"ecosystem":"pypi","package_name":"restrictedpython","versions":[{"first_patched_version":"5.3","vulnerable_version_range":"\u003e= 0, \u003c 5.3"}],"purl":"pkg:pypi/restrictedpython"},{"ecosystem":"pypi","package_name":"RestrictedPython","versions":[{"first_patched_version":"6.1","vulnerable_version_range":"\u003e= 6.0a1.dev0, \u003c 6.1"},{"first_patched_version":"5.3","vulnerable_version_range":"\u003c 5.3"}],"purl":"pkg:pypi/restrictedpython"}],"related_packages_url":"https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS13cWM4LXgycHItN2pxaM4AA0id/related_packages","related_advisories":[]}],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/restrictedpython","docker_dependents_count":67,"docker_downloads_count":834658299,"usage_url":"https://repos.ecosyste.ms/usage/pypi/restrictedpython","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/restrictedpython/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-11-01T11:11:32.523Z","issues_count":75,"pull_requests_count":105,"avg_time_to_close_issue":9817242.644067796,"avg_time_to_close_pull_request":2336313.1836734693,"issues_closed_count":59,"pull_requests_closed_count":98,"pull_request_authors_count":23,"issue_authors_count":48,"avg_comments_per_issue":2.6933333333333334,"avg_comments_per_pull_request":1.580952380952381,"merged_pull_requests_count":88,"bot_issues_count":0,"bot_pull_requests_count":1,"past_year_issues_count":4,"past_year_pull_requests_count":17,"past_year_avg_time_to_close_issue":697853.3333333334,"past_year_avg_time_to_close_pull_request":242400.7142857143,"past_year_issues_closed_count":3,"past_year_pull_requests_closed_count":14,"past_year_pull_request_authors_count":7,"past_year_issue_authors_count":2,"past_year_avg_comments_per_issue":2.0,"past_year_avg_comments_per_pull_request":0.23529411764705882,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":1,"past_year_merged_pull_requests_count":13,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/zopefoundation%2FRestrictedPython/issues","maintainers":[{"login":"icemac","count":54,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/icemac"},{"login":"loechel","count":26,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/loechel"},{"login":"dataflake","count":11,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/dataflake"},{"login":"jugmac00","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jugmac00"},{"login":"mauritsvanrees","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/mauritsvanrees"},{"login":"ale-rt","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ale-rt"},{"login":"afonsojanu","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/afonsojanu"},{"login":"davisagli","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/davisagli"}],"active_maintainers":[{"login":"icemac","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/icemac"},{"login":"afonsojanu","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/afonsojanu"},{"login":"dataflake","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/dataflake"},{"login":"loechel","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/loechel"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/restrictedpython/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/restrictedpython/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/restrictedpython/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/restrictedpython/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/restrictedpython/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/restrictedpython/codemeta","maintainers":[{"uuid":"agroszer","login":"agroszer","name":null,"email":null,"url":null,"packages_count":360,"html_url":"https://pypi.org/user/agroszer/","role":null,"created_at":"2023-02-25T08:37:01.199Z","updated_at":"2023-02-25T08:37:01.199Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/agroszer/packages"},{"uuid":"davisagli","login":"davisagli","name":null,"email":null,"url":null,"packages_count":538,"html_url":"https://pypi.org/user/davisagli/","role":null,"created_at":"2023-02-25T08:37:01.228Z","updated_at":"2023-02-25T08:37:01.228Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/davisagli/packages"},{"uuid":"hannosch","login":"hannosch","name":null,"email":null,"url":null,"packages_count":500,"html_url":"https://pypi.org/user/hannosch/","role":null,"created_at":"2023-02-25T08:37:01.235Z","updated_at":"2023-02-25T08:37:01.235Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/hannosch/packages"},{"uuid":"icemac","login":"icemac","name":null,"email":null,"url":null,"packages_count":244,"html_url":"https://pypi.org/user/icemac/","role":null,"created_at":"2023-02-25T08:37:01.242Z","updated_at":"2023-02-25T08:37:01.242Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/icemac/packages"},{"uuid":"J1m","login":"J1m","name":null,"email":null,"url":null,"packages_count":275,"html_url":"https://pypi.org/user/J1m/","role":null,"created_at":"2023-02-25T08:37:01.257Z","updated_at":"2023-02-25T08:37:01.257Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/J1m/packages"},{"uuid":"mgedmin","login":"mgedmin","name":null,"email":null,"url":null,"packages_count":302,"html_url":"https://pypi.org/user/mgedmin/","role":null,"created_at":"2023-02-25T08:37:01.264Z","updated_at":"2023-02-25T08:37:01.264Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/mgedmin/packages"},{"uuid":"tlotze","login":"tlotze","name":null,"email":null,"url":null,"packages_count":294,"html_url":"https://pypi.org/user/tlotze/","role":null,"created_at":"2023-02-25T08:37:01.271Z","updated_at":"2023-02-25T08:37:01.271Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/tlotze/packages"},{"uuid":"tseaver","login":"tseaver","name":null,"email":null,"url":null,"packages_count":150,"html_url":"https://pypi.org/user/tseaver/","role":null,"created_at":"2023-02-25T08:37:01.278Z","updated_at":"2023-02-25T08:37:01.278Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/tseaver/packages"},{"uuid":"Zope Foundation","login":"Zope Foundation","name":null,"email":null,"url":null,"packages_count":31,"html_url":"https://pypi.org/user/Zope Foundation/","role":null,"created_at":"2024-09-08T02:44:57.597Z","updated_at":"2024-09-08T02:44:57.597Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/Zope%20Foundation/packages"}]}