{"answers":{"affected":"3 open source packages ship an affected version, including candid. It affects 1 product.","exploited":"There is no known exploitation of CVE-2023-6245 in the wild and no public exploit code.","fix":"Upgrade candid to 0.9.10 or later.","what":"CVE-2023-6245 is a high-severity denial of service vulnerability in Internet Computer Candid, published on 8 Dec 2023. An attacker can exploit it over the internet without logging in, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2023-6245 and fix it if it is affected.\n\nWhat it is: CVE-2023-6245 is a high-severity denial of service vulnerability in Internet Computer Candid, published on 8 Dec 2023. 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-2023-6245 in the wild and no public exploit code.\n\nAffected packages and fixed versions:\n- candid (crates.io): affected from 0.9.0; fixed in 0.9.10\n- candid (crates.io): affected from 0.9.0; fixed in 0.9.10\n- candid (crates.io): affected from 0.9.0; fixed in 0.9.10\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-2023-6245/ (Markdown: https://insights.sbomify.com/CVE-2023-6245/index.md)","id":"CVE-2023-6245","markdown":"https://insights.sbomify.com/CVE-2023-6245/index.md","name":"CVE-2023-6245","record":{"aliases":["GHSA-7787-p7x6-fq3j","RUSTSEC-2023-0073"],"analysis":{"component_type":"library","fix_type":"upgrade","impacts":["denial_of_service"],"network_reachable":"yes","non_default_config":false,"product_category":"Rust Candid library","requires_auth":"none","summary":"Attackers can cause a denial of service in Internet Computer canisters by sending crafted payloads that trigger an infinite decoding loop in the Candid library.","user_interaction":"not_required","vuln_class":"denial_of_service"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"Dfinity","cpe":[{"product":"candid","vendor":"dfinity"}],"cvss":{"score":7.5,"severity":"high","source":"cna","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","version":"3.1"},"cwes":[{"id":"CWE-20","name":"Improper Input Validation"},{"id":"CWE-835","name":"Loop with Unreachable Exit Condition"},{"id":"CWE-168","name":"Improper Handling of Inconsistent Special Elements"},{"id":"CWE-1288","name":"Improper Validation of Consistency within Input"}],"description":"The Candid library causes a Denial of Service while \nparsing a specially crafted payload with 'empty' data type. For example,\n if the payload is `record { * ; empty }` and the canister interface expects `record { * }` then the Rust candid decoder treats empty as an extra field required by the type.  The problem with the type empty is that the candid Rust library wrongly categorizes empty as a recoverable error when skipping the field and thus causing an infinite decoding loop.\n\nCanisters using affected versions of candid\n are exposed to denial of service by causing the decoding to run \nindefinitely until the canister traps due to reaching maximum \ninstruction limit per execution round. Repeated exposure to the payload \nwill result in degraded performance of the canister. Note: Canisters written in Motoko are unaffected.","ecosystems":["crates.io"],"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":"Infinite decoding loop through specially crafted payload","id":"CVE-2023-6245","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":"crates.io","product":null,"products":[],"type":"denial_of_service","year":"2023"},"n_packages":3,"n_references":5,"next":{"headline":"Glibc: heap-based buffer overflow in __vsyslog_internal()","id":"CVE-2023-6246"},"packages":[{"ecosystem":"crates.io","fixed":["0.9.10"],"introduced":["0.9.0"],"last_affected":[],"package":"candid","purl":null,"source":"GHSA-7787-p7x6-fq3j"},{"ecosystem":"crates.io","fixed":["0.9.10"],"introduced":["0.9.0"],"last_affected":[],"package":"candid","purl":"pkg:cargo/candid","source":"GHSA-7787-p7x6-fq3j"},{"ecosystem":"crates.io","fixed":["0.9.10"],"introduced":["0.9.0"],"last_affected":[],"package":"candid","purl":"pkg:cargo/candid","source":"RUSTSEC-2023-0073"}],"prev":{"headline":"Cross-site request forgery in EventON (Pro) - WordPress Virtual Event Calendar Plugin","id":"CVE-2023-6244"},"products":["Candid"],"published":"2023-12-08","related":[],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"CC BY 4.0","name":"GitHub Advisory Database","prefix":"GHSA"},{"class":"open","licence":"CC0 1.0","name":"RustSec","prefix":"RUSTSEC"},{"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":"yes","exploitation":"none","technical_impact":"partial"},"state":"PUBLISHED","updated":"2024-12-02","vendors":["Internet Computer"]},"summary":"Attackers can cause a denial of service in Internet Computer canisters by sending crafted payloads that trigger an infinite decoding loop in the Candid library.","url":"https://insights.sbomify.com/CVE-2023-6245/"}