CVE-2023-6681
Medium · 5.3CVSS
5.3
EPSS
0.9%
Published
Feb 12, 2024
CISA due date
—
Cloudanix analysis
A software bug can let attackers overload systems to make them unavailable while making it easier to guess passwords through repeated attempts.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Denial of service
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The flaw in JWCrypto permits crafted inputs that trigger excessive computational consumption, enabling denial of service and amplifying the cost of password brute-force or dictionary attacks.
Why it matters to the business
Service availability can be disrupted by resource exhaustion while authentication becomes easier to attack at scale, increasing downtime and risk of credential compromise across dependent systems.
How an attack unfolds
An attacker identifies a service using the vulnerable JWCrypto implementation and submits specially formed cryptographic operations or tokens that force heavy computation; repeated requests exhaust CPU or memory, causing slowdowns or crashes while simultaneously allowing more password guesses to be attempted before detection or rate limiting takes effect.
How to fix it
Upgrade qemu-project/qemu to the fixed commit 295d81c62414a63c625fa2e78175573d4b3f5ba4; rebuild and redeploy affected components.
How to confirm the fix worked
Confirm the commit 295d81c62414a63c625fa2e78175573d4b3f5ba4 is present in the source tree or running binary; test with known high-cost inputs to verify resource usage remains bounded.
Typical attack path
- Locate services relying on the affected JWCrypto code path
- Craft and transmit malicious inputs designed to maximize computational cost
- Sustain high-volume requests to induce resource exhaustion
- Combine sustained load with parallel brute-force attempts against passwords
How to detect it
Review application and system logs for repeated high-cost cryptographic operations, sudden spikes in CPU or memory from JWCrypto calls, and patterns of requests that precede service degradation.
What your security team should do
- Apply the referenced commit immediately given the long publication window
- Implement rate limiting and request validation around cryptographic endpoints
- Monitor CPU and memory utilization for anomalous spikes tied to crypto operations
- Review downstream dependents for similar exposure
The record
A vulnerability was found in JWCrypto. This flaw allows an attacker to cause a denial of service (DoS) attack and possible password brute-force and dictionary attacks to be more resource-intensive. This issue can result in a large amount of computational consumption, causing a denial of service attack.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| PyPI | jwcrypto | 0 | 1.5.1 |
| AlmaLinux:9 | python3-jwcrypto | 0 | 1.5.6-2.el9 |
| Debian:11 | python-jwcrypto | 0 | No fix |
| Debian:12 | python-jwcrypto | 0 | No fix |
| Debian:13 | python-jwcrypto | 0 | 1.5.4-1 |
| Red Hat:enterprise_linux:8::appstream | bind-dyndb-ldap | 0 | 0:11.6-5.module+el8.10.0+21691+df63127d |
| Red Hat:enterprise_linux:8::appstream | bind-dyndb-ldap-debuginfo | 0 | 0:11.6-5.module+el8.10.0+21691+df63127d |
| Red Hat:enterprise_linux:8::appstream | bind-dyndb-ldap-debugsource | 0 | 0:11.6-5.module+el8.10.0+21691+df63127d |
| Red Hat:enterprise_linux:8::appstream | custodia | 0 | 0:0.6.0-3.module+el8.9.0+18911+94941f82 |
| Red Hat:enterprise_linux:8::appstream | ipa | 0 | 0:4.9.13-9.module+el8.10.0+21692+c9b201bc |
| Red Hat:enterprise_linux:8::appstream | ipa-client | 0 | 0:4.9.13-9.module+el8.10.0+21692+c9b201bc |
| Red Hat:enterprise_linux:8::appstream | ipa-client-common | 0 | 0:4.9.13-9.module+el8.10.0+21692+c9b201bc |
| Red Hat:enterprise_linux:8::appstream | ipa-client-debuginfo | 0 | 0:4.9.13-9.module+el8.10.0+21692+c9b201bc |
| Red Hat:enterprise_linux:8::appstream | ipa-client-epn | 0 | 0:4.9.13-9.module+el8.10.0+21692+c9b201bc |
| Red Hat:enterprise_linux:8::appstream | ipa-client-samba | 0 | 0:4.9.13-9.module+el8.10.0+21692+c9b201bc |
| Red Hat:enterprise_linux:8::appstream | ipa-common | 0 | 0:4.9.13-9.module+el8.10.0+21692+c9b201bc |
| Red Hat:enterprise_linux:8::appstream | ipa-debuginfo | 0 | 0:4.9.13-9.module+el8.10.0+21692+c9b201bc |
| Red Hat:enterprise_linux:8::appstream | ipa-debugsource | 0 | 0:4.9.13-9.module+el8.10.0+21692+c9b201bc |
| Red Hat:enterprise_linux:8::appstream | ipa-healthcheck | 0 | 0:0.12-3.module+el8.9.0+19692+fac39a03 |
| Red Hat:enterprise_linux:8::appstream | ipa-healthcheck-core | 0 | 0:0.12-3.module+el8.9.0+19692+fac39a03 |
| Red Hat:enterprise_linux:8::appstream | ipa-python-compat | 0 | 0:4.9.13-9.module+el8.10.0+21692+c9b201bc |
| Red Hat:enterprise_linux:8::appstream | ipa-selinux | 0 | 0:4.9.13-9.module+el8.10.0+21692+c9b201bc |
| Red Hat:enterprise_linux:8::appstream | ipa-server | 0 | 0:4.9.13-9.module+el8.10.0+21691+df63127d |
| Red Hat:enterprise_linux:8::appstream | ipa-server-common | 0 | 0:4.9.13-9.module+el8.10.0+21691+df63127d |
| Red Hat:enterprise_linux:8::appstream | ipa-server-debuginfo | 0 | 0:4.9.13-9.module+el8.10.0+21691+df63127d |
| Red Hat:enterprise_linux:8::appstream | ipa-server-dns | 0 | 0:4.9.13-9.module+el8.10.0+21691+df63127d |
| Red Hat:enterprise_linux:8::appstream | ipa-server-trust-ad | 0 | 0:4.9.13-9.module+el8.10.0+21691+df63127d |
| Red Hat:enterprise_linux:8::appstream | ipa-server-trust-ad-debuginfo | 0 | 0:4.9.13-9.module+el8.10.0+21691+df63127d |
| Red Hat:enterprise_linux:8::appstream | opendnssec | 0 | 0:2.1.7-1.module+el8.9.0+18911+94941f82 |
| Red Hat:enterprise_linux:8::appstream | opendnssec-debuginfo | 0 | 0:2.1.7-1.module+el8.9.0+18911+94941f82 |
| Red Hat:enterprise_linux:8::appstream | opendnssec-debugsource | 0 | 0:2.1.7-1.module+el8.9.0+18911+94941f82 |
| Red Hat:enterprise_linux:8::appstream | python-jwcrypto | 0 | 0:0.5.0-2.module+el8.10.0+21692+c9b201bc |
| Red Hat:enterprise_linux:8::appstream | python-kdcproxy | 0 | 0:0.4-5.module+el8.9.0+18911+94941f82 |
| Red Hat:enterprise_linux:8::appstream | python-qrcode | 0 | 0:5.1-12.module+el8.9.0+18920+2223d05e |
| Red Hat:enterprise_linux:8::appstream | python-yubico | 0 | 0:1.3.2-9.1.module+el8.9.0+18920+2223d05e |
| Red Hat:enterprise_linux:8::appstream | python3-custodia | 0 | 0:0.6.0-3.module+el8.9.0+18911+94941f82 |
| Red Hat:enterprise_linux:8::appstream | python3-ipaclient | 0 | 0:4.9.13-9.module+el8.10.0+21692+c9b201bc |
| Red Hat:enterprise_linux:8::appstream | python3-ipalib | 0 | 0:4.9.13-9.module+el8.10.0+21692+c9b201bc |
| Red Hat:enterprise_linux:8::appstream | python3-ipaserver | 0 | 0:4.9.13-9.module+el8.10.0+21691+df63127d |
| Red Hat:enterprise_linux:8::appstream | python3-ipatests | 0 | 0:4.9.13-9.module+el8.10.0+21691+df63127d |
| Red Hat:enterprise_linux:8::appstream | python3-jwcrypto | 0 | 0:0.5.0-2.module+el8.10.0+21692+c9b201bc |
| Red Hat:enterprise_linux:8::appstream | python3-kdcproxy | 0 | 0:0.4-5.module+el8.9.0+18911+94941f82 |
| Red Hat:enterprise_linux:8::appstream | python3-pyusb | 0 | 0:1.0.0-9.1.module+el8.9.0+18920+2223d05e |
| Red Hat:enterprise_linux:8::appstream | python3-qrcode | 0 | 0:5.1-12.module+el8.9.0+18920+2223d05e |
| Red Hat:enterprise_linux:8::appstream | python3-qrcode-core | 0 | 0:5.1-12.module+el8.9.0+18920+2223d05e |
| Red Hat:enterprise_linux:8::appstream | python3-yubico | 0 | 0:1.3.2-9.1.module+el8.9.0+18920+2223d05e |
| Red Hat:enterprise_linux:8::appstream | pyusb | 0 | 0:1.0.0-9.1.module+el8.9.0+18920+2223d05e |
| Red Hat:enterprise_linux:8::appstream | slapi-nis | 0 | 0:0.60.0-4.module+el8.10.0+20723+03062ebd |
| Red Hat:enterprise_linux:8::appstream | slapi-nis-debuginfo | 0 | 0:0.60.0-4.module+el8.10.0+20723+03062ebd |
| Red Hat:enterprise_linux:8::appstream | slapi-nis-debugsource | 0 | 0:0.60.0-4.module+el8.10.0+20723+03062ebd |
| Red Hat:enterprise_linux:8::appstream | softhsm | 0 | 0:2.6.0-5.module+el8.9.0+18911+94941f82 |
| Red Hat:enterprise_linux:8::appstream | softhsm-debuginfo | 0 | 0:2.6.0-5.module+el8.9.0+18911+94941f82 |
| Red Hat:enterprise_linux:8::appstream | softhsm-debugsource | 0 | 0:2.6.0-5.module+el8.9.0+18911+94941f82 |
| Red Hat:enterprise_linux:8::appstream | softhsm-devel | 0 | 0:2.6.0-5.module+el8.9.0+18911+94941f82 |
| Red Hat:enterprise_linux:9::appstream | python-jwcrypto | 0 | 0:1.5.6-2.el9 |
| Red Hat:enterprise_linux:9::appstream | python3-jwcrypto | 0 | 0:1.5.6-2.el9 |
| Rocky Linux:8 | bind-dyndb-ldap | 0 | 0:11.6-5.module+el8.10.0+1819+0aeba2f1 |
| Rocky Linux:8 | custodia | 0 | 0:0.6.0-3.module+el8.9.0+1371+ffa84eb9 |
| Rocky Linux:8 | ipa | 0 | 0:4.9.13-9.module+el8.10.0+1818+2dfda7a6 |
| Rocky Linux:8 | ipa-healthcheck | 0 | 0:0.12-3.module+el8.9.0+1433+5bd2f890 |
| Rocky Linux:8 | opendnssec | 0 | 0:2.1.7-1.module+el8.9.0+1371+ffa84eb9 |
| Rocky Linux:8 | python-jwcrypto | 0 | 0:0.5.0-2.module+el8.10.0+1818+2dfda7a6 |
| Rocky Linux:8 | python-kdcproxy | 0 | 0:0.4-5.module+el8.9.0+1371+ffa84eb9 |
| Rocky Linux:8 | python-qrcode | 0 | 0:5.1-12.module+el8.9.0+1371+ffa84eb9 |
| Rocky Linux:8 | python-yubico | 0 | 0:1.3.2-9.1.module+el8.9.0+1371+ffa84eb9 |
| Rocky Linux:8 | pyusb | 0 | 0:1.0.0-9.1.module+el8.9.0+1371+ffa84eb9 |
| Rocky Linux:8 | slapi-nis | 0 | 0:0.60.0-4.module+el8.9.0+1573+39ab85f4 |
| Rocky Linux:8 | softhsm | 0 | 0:2.6.0-5.module+el8.9.0+1371+ffa84eb9 |
| Rocky Linux:9 | python-jwcrypto | 0 | 0:1.5.6-2.el9 |
| Ubuntu:16.04:LTS | python-jwcrypto | 0 | No fix |
| Ubuntu:18.04:LTS | python-jwcrypto | 0 | No fix |
| Ubuntu:20.04:LTS | python-jwcrypto | 0 | No fix |
| Ubuntu:22.04:LTS | python-jwcrypto | 0 | No fix |
| Ubuntu:24.04:LTS | python-jwcrypto | 0 | No fix |
| Ubuntu:24.10 | python-jwcrypto | 0 | No fix |
| Ubuntu:25.04 | python-jwcrypto | 0 | No fix |
| Ubuntu:25.10 | python-jwcrypto | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | python-jwcrypto | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | python-jwcrypto | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | python-jwcrypto | 0 | No fix |
Related vulnerabilities
- CVE-2024-3183 A vulnerability was found in FreeIPA in a way when a Kerberos TGS-REQ is encrypted using… Also affects bind-dyndb-ldap
- CVE-2024-2698 A vulnerability was found in FreeIPA in how the initial implementation of MS-SFU by MIT… Also affects bind-dyndb-ldap
- CVE-2024-1481 A flaw was found in FreeIPA. Also affects bind-dyndb-ldap
- CVE-2023-5455 A Cross-site request forgery vulnerability exists in ipa/session/login_password in all… Also affects bind-dyndb-ldap
- CVE-2020-11022 In jQuery starting with 1.12.0 and before 3.5.0, passing HTML from untrusted sources… Also affects bind-dyndb-ldap
- CVE-2026-113795 pypdf is a free and open-source pure-python PDF library. CWE-400
- CVE-2026-83400 Vulnerability in the Oracle Java SE, Oracle GraalVM for JDK, Oracle GraalVM Enterprise… CWE-400
- CVE-2026-112400 Pillow is a Python imaging library. CWE-400