From ece04b41f6181fb87646eb97d7b1cffb273b9023 Mon Sep 17 00:00:00 2001 From: "advisory-database[bot]" <45398580+advisory-database[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 18:46:06 +0000 Subject: [PATCH] Publish GHSA-c827-hfw6-qwvm --- .../2023/10/GHSA-c827-hfw6-qwvm/GHSA-c827-hfw6-qwvm.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/advisories/github-reviewed/2023/10/GHSA-c827-hfw6-qwvm/GHSA-c827-hfw6-qwvm.json b/advisories/github-reviewed/2023/10/GHSA-c827-hfw6-qwvm/GHSA-c827-hfw6-qwvm.json index b7c8b7d191b..46d409fc0d7 100644 --- a/advisories/github-reviewed/2023/10/GHSA-c827-hfw6-qwvm/GHSA-c827-hfw6-qwvm.json +++ b/advisories/github-reviewed/2023/10/GHSA-c827-hfw6-qwvm/GHSA-c827-hfw6-qwvm.json @@ -1,10 +1,10 @@ { "schema_version": "1.4.0", "id": "GHSA-c827-hfw6-qwvm", - "modified": "2023-10-18T18:27:47Z", + "modified": "2024-08-26T18:44:40Z", "published": "2023-10-18T18:27:47Z", "aliases": [ - + "CVE-2024-43806" ], "summary": "rustix's `rustix::fs::Dir` iterator with the `linux_raw` backend can cause memory explosion", "details": "### Summary\n\nWhen using `rustix::fs::Dir` using the `linux_raw` backend, it's possible for the iterator to \"get stuck\" when an IO error is encountered. Combined with a memory over-allocation issue in `rustix::fs::Dir::read_more`, this can cause quick and unbounded memory explosion (gigabytes in a few seconds if used on a hot path) and eventually lead to an OOM crash of the application.\n\n### Details\n\n#### Discovery\n\nThe symptoms were initially discovered in https://github.com/imsnif/bandwhich/issues/284. That post has lots of details of our investigation. See [this post](https://github.com/imsnif/bandwhich/issues/284#issuecomment-1754321993) and the [Discord thread](https://discord.com/channels/273534239310479360/1161137828395237556) for details.\n\n#### Diagnosis\n\nThis issue is caused by the combination of two independent bugs:\n\n1. Stuck iterator\n- The `rustix::fs::Dir` iterator can fail to halt after encountering an IO error, causing the caller to be stuck in an infinite loop.\n2. Memory over-allocation\n- `Dir::read_more` incorrectly grows the read buffer unconditionally each time it is called, regardless of necessity.\n\nSince `