{"answers":{"affected":"It affects 1 product.","exploited":"There is no known exploitation of CVE-2024-14041 in the wild and no public exploit code.","fix":"Upgrade to a fixed version.","what":"CVE-2024-14041 is a high-severity vulnerability in Bouncycastle Bc-Java, published on 28 Jul 2026. An attacker can exploit it over the internet without logging in, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2024-14041 and fix it if it is affected.\n\nWhat it is: CVE-2024-14041 is a high-severity vulnerability in Bouncycastle Bc-Java, published on 28 Jul 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.\nExploitation: There is no known exploitation of CVE-2024-14041 in the wild and no public exploit code.\n\nAffected product: Bouncycastle Bc-Java. No package-level version data is available, so check the vendor advisory linked from the reference page.\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2024-14041/ (Markdown: https://insights.sbomify.com/CVE-2024-14041/index.md)","id":"CVE-2024-14041","markdown":"https://insights.sbomify.com/CVE-2024-14041/index.md","name":"CVE-2024-14041","record":{"aliases":["DEBIAN-CVE-2024-14041","GHSA-6wh4-p7q8-98wf","UBUNTU-CVE-2024-14041"],"analysis":{"component_type":"library","fix_type":"upgrade","impacts":["data_read"],"network_reachable":"yes","non_default_config":false,"product_category":"Java cryptography library","requires_auth":"none","summary":"Timing side-channel in Bouncy Castle ML-KEM allows attackers to recover private keys by measuring decapsulation times.","user_interaction":"not_required","vuln_class":"information_disclosure"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"bcorg","cpe":[{"product":"bc-java","vendor":"bouncycastle"}],"cvss":{"score":8.2,"severity":"high","source":"cna","vector":"CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/U:Amber","version":"4.0"},"cwes":[{"id":"CWE-208","name":"Observable Timing Discrepancy"}],"description":"In Bouncy Castle for Java from 1.73 to before 1.78, three ML-KEM (CRYSTALS-Kyber) routines divided secret-derived polynomial coefficients by the modulus q: Poly.toMsg, which decodes the decrypted message, and the ciphertext compression routines Poly.compressPoly and PolyVec.compressPolyVec. An attacker able to measure the timing of a large number of decapsulations performed with the same long-term private key can recover that key. These are the KyberSlash1 (Poly.toMsg) and KyberSlash2 (ciphertext compression) divisions. Compression performed during encapsulation operates on values that become the public ciphertext and is not affected.","ecosystems":[],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"none_known"},"has_fix":true,"headline":"Information disclosure in BC-JAVA","id":"CVE-2024-14041","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":null,"product":"bouncycastle:bc-java","products":["bouncycastle:bc-java"],"type":"information_disclosure","year":"2024"},"n_packages":0,"n_references":4,"next":{"headline":"Open5GS Diameter S6a hss-s6a-path.c hss_ogs_diam_s6a_ulr_cb stack-based overflow","id":"CVE-2024-14042"},"packages":[],"prev":{"headline":"net: nexthop: Increase weight to u16","id":"CVE-2024-14040"},"products":["BC-JAVA"],"published":"2026-07-28","related":[{"cvss_score":10,"headline":"Legion of the Bouncy Castle Java Cryptography API Bleichenbacher Oracle Vulnerability","id":"CVE-2007-6721","kev_date_added":null,"published":"2009-03-30"},{"cvss_score":9.8,"headline":"Deserialization of Untrusted Data in Bouncy castle","id":"CVE-2018-1000613","kev_date_added":null,"published":"2018-07-09"},{"cvss_score":9.3,"headline":"Stapled OCSP response accepted without binding to the checked certificate","id":"CVE-2026-58062","kev_date_added":null,"published":"2026-08-03"},{"cvss_score":9.3,"headline":"JSSE hostname verifier CN-fallback enabled by default despite documented opt-in","id":"CVE-2026-59638","kev_date_added":null,"published":"2026-08-03"},{"cvss_score":9.3,"headline":"MTI/A0 DH agreement exponentiates unvalidated peer value","id":"CVE-2026-59650","kev_date_added":null,"published":"2026-08-03"},{"cvss_score":9.3,"headline":"Name Constraints bypass via trailing dot in rfc822Name and URI","id":"CVE-2026-8763","kev_date_added":null,"published":"2026-08-03"},{"cvss_score":8.7,"headline":"MLS membership checks compare a uint32 leaf_index as signed, admitting an out-of-range sender","id":"CVE-2026-17507","kev_date_added":null,"published":"2026-10-02"}],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"US public information, NVD API terms","name":"NVD"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":"no","exploitation":"none","technical_impact":"partial"},"state":"PUBLISHED","updated":"2026-08-09","vendors":["Legion of the Bouncy Castle Inc."]},"summary":"Timing side-channel in Bouncy Castle ML-KEM allows attackers to recover private keys by measuring decapsulation times.","url":"https://insights.sbomify.com/CVE-2024-14041/"}