CVE-2023-41039: Sandbox escape via various forms of "format" in RestrictedPython
Impact Python'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. With RestrictedPython, the format functionality is available via the format and formatmap methods of str (and unicode) (accessed either via the class or its instances) and via string.Formatter. All known versions of RestrictedPython are vulnerable.
Patches The issue will be fixed in 5.4 and 6.2.
Workarounds There are no workarounds to fix the issue without upgrading.
References https://docs.python.org/3/library/stdtypes.html#str.formatmap http://lucumr.pocoo.org/2016/12/29/careful-with-str-format/ https://www.exploit-db.com/exploits/51580
For more information
If you have any questions or comments about this advisory:
Open an issue in the RestrictedPython issue tracker Email us at security@plone.org
Credits
Thanks for analysing and reporting the go to:
Abhishek Govindarasu Ankush Menat Ward Theunisse
Other sources
RestrictedPython is a restricted execution environment for Python to run untrusted code. Python'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. With RestrictedPython, the format functionality is available via the format and formatmap methods of str (and unicode) (accessed either via the class or its instances) and via string.Formatter. All known versions of RestrictedPython are vulnerable. This issue has been addressed in commit 4134aedcff1 which has been included in the 5.4 and 6.2 releases. Users are advised to upgrade. There are no known workarounds for this vulnerability.
— MITRE
Affected Software
Remediation
Event History
Frequently Asked Questions
What is CVE-2023-41039?
CVE-2023-41039 is a vulnerability in RestrictedPython, a restricted execution environment for Python, that allows for critical information disclosure through manipulated format strings.
How does the vulnerability in RestrictedPython impact Python?
The vulnerability allows an attacker to control the format string and gain unauthorized access to objects, potentially leading to critical information disclosure.
What is the severity of CVE-2023-41039?
The severity of CVE-2023-41039 is high, with a CVSS score of 8.3.
How can I fix the vulnerability in RestrictedPython?
To fix the vulnerability, update RestrictedPython to version 6.2 if using pip, or refer to the Zope RestrictedPython advisory for the appropriate fix.
Where can I find more information about CVE-2023-41039?
You can find more information about CVE-2023-41039 on the following references: - [GitHub Security Advisory](https://github.com/zopefoundation/RestrictedPython/security/advisories/GHSA-xjw2-6jm9-rf67) - [NIST National Vulnerability Database](https://nvd.nist.gov/vuln/detail/CVE-2023-41039) - [GitHub Commit](https://github.com/zopefoundation/RestrictedPython/commit/4134aedcff17c977da7717693ed89ce56d54c120)