CVE-2026-77401
Zope AccessControl: Information disclosure through Python string `format` and `format_map` functions
Zope AccessControl provides a general security framework for use in Zope. Prior to 7.4, applications that allow untrusted users to create and execute AccessControl-controlled Python code do not safely guard str.format and str.format_map when those methods are reached through a str subclass. In both ImplPython.py and cAccessControl.c, Python formatting can recursively access attributes and subscriptions using unrestricted getattr and getitem behavior instead of the policy-restricted getattr and getitem operations. A controlled format string can therefore disclose objects reachable from values available to the formatting operation. This issue is fixed in version 7.4.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- High
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- None
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
6.8
Zope AccessControl: Information disclosure through Python string `format` and `format_map` functions
Zope AccessControl provides a general security framework for use in Zope. Prior to 7.4, applications that allow untrusted users to create and execute AccessControl-controlled Python code do not safely guard str.format and str.format_map when those methods are reached through a str subclass. In both ImplPython.py and cAccessControl.c, Python formatting can recursively access attributes and subscriptions using unrestricted getattr and getitem behavior instead of the policy-restricted getattr and getitem operations. A controlled format string can therefore disclose objects reachable from values available to the formatting operation. This issue is fixed in version 7.4.
- Record
CVE-2026-77401- CVSS 3.1
- 6.8 Medium
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:N/A:N - Weakness
- CWE-693
- Updated
- 2026-11-02
EUVDEUVD-2026-80790
6.8
Zope AccessControl provides a general security framework for use in Zope. Prior to 7.4, applications that allow untrusted users to create and execute AccessControl-controlled Python code do not safely guard str.format and str.format_map when those methods are reached through a str subclass. In both ImplPython.py and cAccessControl.c, Python formatting can recursively access attributes and subscriptions using unrestricted getattr and getitem behavior instead of the policy-restricted getattr and getitem operations. A controlled format string can therefore disclose objects reachable from values available to the formatting operation. This issue is fixed in version 7.4.
- Record
EUVD-2026-80790- CVSS 3.1
- 6.8 Medium
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:N/A:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-pq59-9fq7-m886
6.8
Zope AccessControl vulnerable to information disclosure through Python string `format` and `format_map` functions
Impact
Python's string format functionality allows someone controlling the format string to "read" objects accessible (recursively) via attribute access and subscription from accessible objects. Those attribute accesses and subscriptions use Python's full blown getattr and getitem, not the policy restricted AccessControl variants _getattr_ and _getitem_. This can lead to critical information disclosure.
The AccessControl package already guards against direct access to the formatting functions on string instances, but these mitigations did not cover subclasses of str.
Affected are all users who allow untrusted users to create AccessControl controlled Python code and execute it.
Patches
A fix was published with version 7.4.
Workarounds
There is no workaround.
- Record
GHSA-pq59-9fq7-m886- CVSS 3.1
- 6.8 Medium
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:N/A:N - Weakness
- CWE-693
- Updated
- 2026-11-02
NVD
6.8
Zope AccessControl provides a general security framework for use in Zope. Prior to 7.4, applications that allow untrusted users to create and execute AccessControl-controlled Python code do not safely guard str.format and str.format_map when those methods are reached through a str subclass. In both ImplPython.py and cAccessControl.c, Python formatting can recursively access attributes and subscriptions using unrestricted getattr and getitem behavior instead of the policy-restricted getattr and getitem operations. A controlled format string can therefore disclose objects reachable from values available to the formatting operation. This issue is fixed in version 7.4.
- Record
CVE-2026-77401- CVSS 3.1
- 6.8 Medium
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:N/A:N - Weakness
- CWE-693
- Updated
- 2026-11-02
OSV
6.8
Zope AccessControl: Information disclosure through Python string `format` and `format_map` functions
Zope AccessControl provides a general security framework for use in Zope. Prior to 7.4, applications that allow untrusted users to create and execute AccessControl-controlled Python code do not safely guard str.format and str.format_map when those methods are reached through a str subclass. In both ImplPython.py and cAccessControl.c, Python formatting can recursively access attributes and subscriptions using unrestricted getattr and getitem behavior instead of the policy-restricted getattr and getitem operations. A controlled format string can therefore disclose objects reachable from values available to the formatting operation. This issue is fixed in version 7.4.
- Record
CVE-2026-77401- CVSS 3.1
- 6.8 Medium
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:N/A:N - Weakness
- CWE-693
- Updated
- 2026-11-02
OSVGHSA-pq59-9fq7-m886
6.8
Zope AccessControl vulnerable to information disclosure through Python string `format` and `format_map` functions
Impact
Python's string format functionality allows someone controlling the format string to "read" objects accessible (recursively) via attribute access and subscription from accessible objects. Those attribute accesses and subscriptions use Python's full blown getattr and getitem, not the policy restricted AccessControl variants _getattr_ and _getitem_. This can lead to critical information disclosure.
The AccessControl package already guards against direct access to the formatting functions on string instances, but these mitigations did not cover subclasses of str.
Affected are all users who allow untrusted users to create AccessControl controlled Python code and execute it.
Patches
A fix was published with version 7.4.
Workarounds
There is no workaround.
- Record
GHSA-pq59-9fq7-m886- CVSS 3.1
- 6.8 Medium
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:N/A:N - Weakness
- CWE-693
- Updated
- 2026-11-02
OSVPYSEC-2026-4022
6.8
Zope AccessControl vulnerable to information disclosure through Python string `format` and `format_map` functions
Impact
Python's string format functionality allows someone controlling the format string to "read" objects accessible (recursively) via attribute access and subscription from accessible objects. Those attribute accesses and subscriptions use Python's full blown getattr and getitem, not the policy restricted AccessControl variants _getattr_ and _getitem_. This can lead to critical information disclosure.
The AccessControl package already guards against direct access to the formatting functions on string instances, but these mitigations did not cover subclasses of str.
Affected are all users who allow untrusted users to create AccessControl controlled Python code and execute it.
Patches
A fix was published with version 7.4.
Workarounds
There is no workaround.
- Record
PYSEC-2026-4022- CVSS 3.1
- 6.8 Medium
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:N/A:N - Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
accesscontrolPyPI |
before 7.4 | 7.4 |
accesscontrolPyPI |
before 7.4, plus listed versions 2.13.02.13.12.13.102.13.112.13.12 Show 45 moreShow less2.13.132.13.142.13.152.13.162.13.22.13.32.13.42.13.52.13.62.13.72.13.82.13.93.03.0.13.0.103.0.113.0.123.0.133.0.143.0.23.0.33.0.43.0.53.0.63.0.73.0.83.0.94.04.0a14.0a24.0a34.0a44.0a54.0a64.0a74.0b14.0b24.0b34.0b44.0b54.0b64.0b74.14.24.3 |
7.4 |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-77401 is a medium vulnerability (CVSS 6.8) in Zopefoundation Accesscontrol, published September 16, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.47%, the 40th percentile. Fixed in accesscontrol 7.4.
References
github.com/zopefoundation/AccessControl/security/advisories/GHSA-pq59-9fq7-m886
github.com/zopefoundation/AccessControl/commit/f980450eea416718be62847f34dfd51822938e43
github.com/zopefoundation/AccessControl/releases/tag/7.4
nvd.nist.gov/vuln/detail/CVE-2026-77401
github.com/advisories/GHSA-pq59-9fq7-m886
github.com/CVEProject/cvelistV5/tree/main/cves/2026/77xxx/CVE-2026-77401.json
github.com/zopefoundation/AccessControl
pypi.org/project/accesscontrol
Left out here: 18 versions. The JSON record has them.