Impact Via a type confusion bug in the CPython interpreter when using try/except RestrictedPython could be bypassed.
We believe this should be fixed upstream in Python itself until that we remove support for try/except from RestrictedPython. (It has been fixed for some Python versions.)
Patches Patched in version 8.0 by removing support for try/except clauses
Workarounds There is no workaround.
References none
Impact A user can gain access to protected (and potentially sensible) information indirectly via AttributeError.obj and the string module.
Patches The problem will be fixed in version 7.3.
Workarounds If the application does not require access to the module string, it can remove it from RestrictedPython.Utilities.utilitybuiltins or otherwise do not make it available in the restricted execution environment.
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