{"id":"GHSA-qpjr-ch72-2qq4","summary":"Use after free in portaudio-rs","details":"Affected versions of this crate is not panic safe within callback functions stream_callback and stream_finished_callback. The call to user-provided closure might panic before a mem::forget call, which then causes a use after free that grants attacker to control the callback function pointer. This allows an attacker to construct an arbitrary code execution .","aliases":["CVE-2019-16881","RUSTSEC-2019-0022"],"modified":"2023-11-08T04:01:22.139199Z","published":"2021-08-25T20:45:17Z","database_specific":{"severity":"CRITICAL","github_reviewed":true,"github_reviewed_at":"2021-08-19T21:21:17Z","nvd_published_at":null,"cwe_ids":["CWE-416"]},"references":[{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2019-16881"},{"type":"WEB","url":"https://github.com/mvdnes/portaudio-rs/issues/20"},{"type":"WEB","url":"https://github.com/mvdnes/portaudio-rs/commit/7466df019f6739732fd91401017942c22364ef61"},{"type":"PACKAGE","url":"https://github.com/mvdnes/portaudio-rs"},{"type":"WEB","url":"https://rustsec.org/advisories/RUSTSEC-2019-0022.html"}],"affected":[{"package":{"name":"portaudio-rs","ecosystem":"crates.io","purl":"pkg:cargo/portaudio-rs"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.3.2"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2021/08/GHSA-qpjr-ch72-2qq4/GHSA-qpjr-ch72-2qq4.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"}]}