diff --git a/advisories/github-reviewed/2025/04/GHSA-pph8-gcv7-4qj5/GHSA-pph8-gcv7-4qj5.json b/advisories/github-reviewed/2025/04/GHSA-pph8-gcv7-4qj5/GHSA-pph8-gcv7-4qj5.json new file mode 100644 index 00000000000..65446d9c601 --- /dev/null +++ b/advisories/github-reviewed/2025/04/GHSA-pph8-gcv7-4qj5/GHSA-pph8-gcv7-4qj5.json @@ -0,0 +1,63 @@ +{ + "schema_version": "1.4.0", + "id": "GHSA-pph8-gcv7-4qj5", + "modified": "2025-04-02T13:19:19Z", + "published": "2025-04-02T13:19:19Z", + "aliases": [], + "summary": "PyO3 Risk of buffer overflow in `PyString::from_object`", + "details": "`PyString::from_object` took `&str` arguments and forwarded them directly to the Python C API without checking for terminating nul bytes. This could lead the Python interpreter to read beyond the end of the `&str` data and potentially leak contents of the out-of-bounds read (by raising a Python exception containing a copy of the data including the overflow).\n\nIn PyO3 0.24.1 this function will now allocate a `CString` to guarantee a terminating nul bytes. PyO3 0.25 will likely offer an alternative API which takes `&CStr` arguments.", + "severity": [ + { + "type": "CVSS_V4", + "score": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:P" + } + ], + "affected": [ + { + "package": { + "ecosystem": "crates.io", + "name": "pyo3" + }, + "ranges": [ + { + "type": "ECOSYSTEM", + "events": [ + { + "introduced": "0.1.0" + }, + { + "fixed": "0.24.1" + } + ] + } + ] + } + ], + "references": [ + { + "type": "WEB", + "url": "https://github.com/PyO3/pyo3/issues/5005" + }, + { + "type": "WEB", + "url": "https://github.com/PyO3/pyo3/pull/5008" + }, + { + "type": "PACKAGE", + "url": "https://github.com/PyO3/pyo3" + }, + { + "type": "WEB", + "url": "https://rustsec.org/advisories/RUSTSEC-2025-0020.html" + } + ], + "database_specific": { + "cwe_ids": [ + "CWE-125" + ], + "severity": "LOW", + "github_reviewed": true, + "github_reviewed_at": "2025-04-02T13:19:19Z", + "nvd_published_at": null + } +} \ No newline at end of file