Vulnerability Details : CVE-2021-32807
The module `AccessControl` defines security policies for Python code used in restricted code within Zope applications. Restricted code is any code that resides in Zope's object database, such as the contents of `Script (Python)` objects. The policies defined in `AccessControl` severely restrict access to Python modules and only exempt a few that are deemed safe, such as Python's `string` module. However, full access to the `string` module also allows access to the class `Formatter`, which can be overridden and extended within `Script (Python)` in a way that provides access to other unsafe Python libraries. Those unsafe Python libraries can be used for remote code execution. By default, you need to have the admin-level Zope "Manager" role to add or edit `Script (Python)` objects through the web. Only sites that allow untrusted users to add/edit these scripts through the web - which would be a very unusual configuration to begin with - are at risk. The problem has been fixed in AccessControl 4.3 and 5.2. Only AccessControl versions 4 and 5 are vulnerable, and only on Python 3, not Python 2.7. As a workaround, a site administrator can restrict adding/editing `Script (Python)` objects through the web using the standard Zope user/role permission mechanisms. Untrusted users should not be assigned the Zope Manager role and adding/editing these scripts through the web should be restricted to trusted users only. This is the default configuration in Zope.
Vulnerability category: Execute code
Products affected by CVE-2021-32807
- cpe:2.3:a:zope:accesscontrol:*:*:*:*:*:*:*:*
- cpe:2.3:a:zope:accesscontrol:*:*:*:*:*:*:*:*
Exploit prediction scoring system (EPSS) score for CVE-2021-32807
1.88%
Probability of exploitation activity in the next 30 days
EPSS Score History
~ 82 %
Percentile, the proportion of vulnerabilities that are scored at or less
CVSS scores for CVE-2021-32807
Base Score | Base Severity | CVSS Vector | Exploitability Score | Impact Score | Score Source | First Seen |
---|---|---|---|---|---|---|
6.5
|
MEDIUM | AV:N/AC:L/Au:S/C:P/I:P/A:P |
8.0
|
6.4
|
NIST | |
7.2
|
HIGH | CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H |
1.2
|
5.9
|
NIST | |
4.4
|
MEDIUM | CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:H/A:N |
0.7
|
3.6
|
GitHub, Inc. |
CWE ids for CVE-2021-32807
-
The product receives input from an upstream component that specifies multiple attributes, properties, or fields that are to be initialized or updated in an object, but it does not properly control which attributes can be modified.Assigned by: security-advisories@github.com (Secondary)
-
The product receives input from an upstream component that specifies attributes that are to be initialized or updated in an object, but it does not properly control modifications of attributes of the object prototype.Assigned by: nvd@nist.gov (Primary)
References for CVE-2021-32807
-
https://github.com/zopefoundation/AccessControl/security/advisories/GHSA-qcx9-j53g-ccgf
Remote Code Execution via unsafe classes in otherwise permitted modules · Advisory · zopefoundation/AccessControl · GitHubThird Party Advisory
-
https://github.com/zopefoundation/AccessControl/blob/master/CHANGES.rst#51-2021-07-30
AccessControl/CHANGES.rst at master · zopefoundation/AccessControl · GitHubRelease Notes;Third Party Advisory
-
https://github.com/zopefoundation/AccessControl/commit/b42dd4badf803bb9fb71ac34cd9cb0c249262f2c
Merge pull request from GHSA-qcx9-j53g-ccgf · zopefoundation/AccessControl@b42dd4b · GitHubPatch;Third Party Advisory
Jump to