-
Notifications
You must be signed in to change notification settings - Fork 369
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Translate database into V3 advisory format (#420)
As proposed in #240 and tracked in #414, this PR translates all advisories into the new "V3" advisory format, which is based on Markdown with leading TOML front matter. This format makes it easier to see rendered Markdown syntax descriptions, whether rendered by an IDE or GitHub. This should help with both crafting advisories initially as well as review, and ideally encourages more lengthy descriptions. Support for this format shipped in `cargo-audit` v0.12.0 on May 6th, 2020.
- Loading branch information
Showing
127 changed files
with
1,291 additions
and
1,059 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
15 changes: 8 additions & 7 deletions
15
crates/actix-codec/RUSTSEC-2020-0049.toml → crates/actix-codec/RUSTSEC-2020-0049.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,17 +1,18 @@ | ||
```toml | ||
[advisory] | ||
id = "RUSTSEC-2020-0049" | ||
package = "actix-codec" | ||
categories = ["memory-corruption"] | ||
date = "2020-01-30" | ||
title = "Use-after-free in Framed due to lack of pinning" | ||
url = "https://github.com/actix/actix-net/issues/91" | ||
categories = ["memory-corruption"] | ||
|
||
description = """ | ||
[versions] | ||
patched = [">= 0.3.0-beta.1"] | ||
``` | ||
|
||
# Use-after-free in Framed due to lack of pinning | ||
|
||
Affected versions of this crate did not require the buffer wrapped in `Framed` to be pinned, | ||
but treated it as if it had a fixed location in memory. This may result in a use-after-free. | ||
|
||
The flaw was corrected by making the affected functions accept `Pin<&mut Self>` instead of `&mut self`. | ||
""" | ||
|
||
[versions] | ||
patched = [">= 0.3.0-beta.1"] |
16 changes: 8 additions & 8 deletions
16
crates/actix-http/RUSTSEC-2020-0048.toml → crates/actix-http/RUSTSEC-2020-0048.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,19 +1,19 @@ | ||
```toml | ||
[advisory] | ||
id = "RUSTSEC-2020-0048" | ||
package = "actix-http" | ||
categories = ["memory-corruption"] | ||
date = "2020-01-24" | ||
title = "Use-after-free in BodyStream due to lack of pinning" | ||
url = "https://github.com/actix/actix-web/issues/1321" | ||
categories = ["memory-corruption"] | ||
|
||
description = """ | ||
[versions] | ||
patched = [">= 2.0.0-alpha.1"] | ||
``` | ||
|
||
# Use-after-free in BodyStream due to lack of pinning | ||
|
||
Affected versions of this crate did not require the buffer wrapped in `BodyStream` to be pinned, | ||
but treated it as if it had a fixed location in memory. This may result in a use-after-free. | ||
|
||
The flaw was corrected by making the trait `MessageBody` require `Unpin` | ||
and making `poll_next()` function accept `Pin<&mut Self>` instead of `&mut self`. | ||
""" | ||
|
||
# Versions which include fixes for this vulnerability (mandatory) | ||
[versions] | ||
patched = [">= 2.0.0-alpha.1"] |
18 changes: 9 additions & 9 deletions
18
crates/actix-service/RUSTSEC-2020-0046.toml → crates/actix-service/RUSTSEC-2020-0046.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,22 +1,22 @@ | ||
```toml | ||
[advisory] | ||
id = "RUSTSEC-2020-0046" | ||
package = "actix-service" | ||
date = "2020-01-08" | ||
|
||
title = "bespoke Cell implementation allows obtaining several mutable references to the same data" | ||
url = "https://github.com/actix/actix-net/pull/158" | ||
categories = ["memory-corruption"] | ||
date = "2020-01-08" | ||
informational = "unsound" | ||
url = "https://github.com/actix/actix-net/pull/158" | ||
|
||
[versions] | ||
patched = [">= 1.0.6"] | ||
``` | ||
|
||
# bespoke Cell implementation allows obtaining several mutable references to the same data | ||
|
||
description = """ | ||
The custom implementation of a Cell primitive in the affected versions of this crate | ||
does not keep track of mutable references to the underlying data. | ||
|
||
This allows obtaining several mutable references to the same object | ||
which may result in arbitrary memory corruption, most likely use-after-free. | ||
|
||
The flaw was corrected by switching from a bespoke `Cell<T>` implementation to `Rc<RefCell<T>>`. | ||
""" | ||
|
||
[versions] | ||
patched = [">= 1.0.6"] |
18 changes: 9 additions & 9 deletions
18
crates/actix-utils/RUSTSEC-2020-0045.toml → crates/actix-utils/RUSTSEC-2020-0045.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,22 +1,22 @@ | ||
```toml | ||
[advisory] | ||
id = "RUSTSEC-2020-0045" | ||
package = "actix-utils" | ||
date = "2020-01-08" | ||
|
||
title = "bespoke Cell implementation allows obtaining several mutable references to the same data" | ||
url = "https://github.com/actix/actix-net/issues/160" | ||
categories = ["memory-corruption"] | ||
date = "2020-01-08" | ||
informational = "unsound" | ||
url = "https://github.com/actix/actix-net/issues/160" | ||
|
||
[versions] | ||
patched = [">= 2.0.0"] | ||
``` | ||
|
||
# bespoke Cell implementation allows obtaining several mutable references to the same data | ||
|
||
description = """ | ||
The custom implementation of a Cell primitive in the affected versions of this crate | ||
does not keep track of mutable references to the underlying data. | ||
|
||
This allows obtaining several mutable references to the same object | ||
which may result in arbitrary memory corruption, most likely use-after-free. | ||
|
||
The flaw was corrected by switching from a bespoke `Cell<T>` implementation to `Rc<RefCell<T>>`. | ||
""" | ||
|
||
[versions] | ||
patched = [">= 2.0.0"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
12 changes: 7 additions & 5 deletions
12
crates/alg_ds/RUSTSEC-2020-0033.toml → crates/alg_ds/RUSTSEC-2020-0033.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +1,15 @@ | ||
```toml | ||
[advisory] | ||
id = "RUSTSEC-2020-0033" | ||
package = "alg_ds" | ||
date = "2020-08-25" | ||
title = "Matrix::new() drops uninitialized memory" | ||
url = "https://gitlab.com/dvshapkin/alg-ds/-/issues/1" | ||
description = """ | ||
`Matrix::new()` internally calls `Matrix::fill_with()` which uses `*ptr = value` pattern to initialize the buffer. | ||
This pattern assumes that there is an initialized struct at the address and drops it, which results in dropping of uninitialized struct. | ||
""" | ||
|
||
[versions] | ||
patched = [] | ||
``` | ||
|
||
# Matrix::new() drops uninitialized memory | ||
|
||
`Matrix::new()` internally calls `Matrix::fill_with()` which uses `*ptr = value` pattern to initialize the buffer. | ||
This pattern assumes that there is an initialized struct at the address and drops it, which results in dropping of uninitialized struct. |
12 changes: 7 additions & 5 deletions
12
crates/alpm-rs/RUSTSEC-2020-0032.toml → crates/alpm-rs/RUSTSEC-2020-0032.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,16 @@ | ||
```toml | ||
[advisory] | ||
id = "RUSTSEC-2020-0032" | ||
package = "alpm-rs" | ||
date = "2020-08-20" | ||
informational = "unsound" | ||
title = "StrcCtx deallocates a memory region that it doesn't own" | ||
url = "https://github.com/pigeonhands/rust-arch/issues/2" | ||
description = """ | ||
`StrcCtx` deallocate a memory region that it doesn't own when `StrcCtx` is created without using `StrcCtx::new`. | ||
This can introduce memory safety issues such as double-free and use-after-free to client programs. | ||
""" | ||
|
||
[versions] | ||
patched = [] | ||
``` | ||
|
||
# StrcCtx deallocates a memory region that it doesn't own | ||
|
||
`StrcCtx` deallocate a memory region that it doesn't own when `StrcCtx` is created without using `StrcCtx::new`. | ||
This can introduce memory safety issues such as double-free and use-after-free to client programs. |
28 changes: 15 additions & 13 deletions
28
crates/ammonia/RUSTSEC-2019-0001.toml → crates/ammonia/RUSTSEC-2019-0001.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,25 +1,27 @@ | ||
```toml | ||
[advisory] | ||
id = "RUSTSEC-2019-0001" | ||
package = "ammonia" | ||
aliases = ["CVE-2019-15542"] | ||
date = "2019-04-27" | ||
title = "Uncontrolled recursion leads to abort in HTML serialization" | ||
url = "https://github.com/rust-ammonia/ammonia/blob/master/CHANGELOG.md#210" | ||
keywords = ["stack-overflow", "crash"] | ||
description = """ | ||
Affected versions of this crate did use recursion for serialization of HTML | ||
DOM trees. | ||
This allows an attacker to cause abort due to stack overflow by providing | ||
a pathologically nested input. | ||
The flaw was corrected by serializing the DOM tree iteratively instead. | ||
""" | ||
aliases = ["CVE-2019-15542"] | ||
url = "https://github.com/rust-ammonia/ammonia/blob/master/CHANGELOG.md#210" | ||
|
||
[affected.functions] | ||
"ammonia::clean" = ["< 2.1.0"] | ||
"ammonia::Document::to_string" = ["< 2.1.0"] | ||
"ammonia::Document::write_to" = ["< 2.1.0"] | ||
"ammonia::clean" = ["< 2.1.0"] | ||
|
||
[versions] | ||
patched = [">= 2.1.0"] | ||
``` | ||
|
||
# Uncontrolled recursion leads to abort in HTML serialization | ||
|
||
Affected versions of this crate did use recursion for serialization of HTML | ||
DOM trees. | ||
|
||
This allows an attacker to cause abort due to stack overflow by providing | ||
a pathologically nested input. | ||
|
||
The flaw was corrected by serializing the DOM tree iteratively instead. |
14 changes: 8 additions & 6 deletions
14
crates/arr/RUSTSEC-2020-0034.toml → crates/arr/RUSTSEC-2020-0034.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,16 +1,18 @@ | ||
```toml | ||
[advisory] | ||
id = "RUSTSEC-2020-0034" | ||
package = "arr" | ||
date = "2020-08-25" | ||
title = "Multiple security issues including data race, buffer overflow, and uninitialized memory drop" | ||
url = "https://github.com/sjep/array/issues/1" | ||
description = """ | ||
|
||
[versions] | ||
patched = [] | ||
``` | ||
|
||
# Multiple security issues including data race, buffer overflow, and uninitialized memory drop | ||
|
||
`arr` crate contains multiple security issues. Specifically, | ||
|
||
1. It incorrectly implements Sync/Send bounds, which allows to smuggle non-Sync/Send types across the thread boundary. | ||
2. `Index` and `IndexMut` implementation does not check the array bound. | ||
3. `Array::new_from_template()` drops uninitialized memory. | ||
""" | ||
|
||
[versions] | ||
patched = [] |
17 changes: 9 additions & 8 deletions
17
crates/array-queue/RUSTSEC-2020-0047.toml → crates/array-queue/RUSTSEC-2020-0047.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,17 +1,18 @@ | ||
```toml | ||
[advisory] | ||
id = "RUSTSEC-2020-0047" | ||
package = "array-queue" | ||
date = "2020-09-26" | ||
title = "array_queue pop_back() may cause a use-after-free" | ||
url = "https://github.com/raviqqe/array-queue/issues/2" | ||
description = """ | ||
array_queue implements a circular queue that wraps around an array. However, it | ||
fails to properly index into the array in the `pop_back` function allowing the | ||
reading of previously dropped or uninitialized memory. | ||
""" | ||
keywords = ["memory-corruption", "uninitialized-memory", "use-after-free"] | ||
url = "https://github.com/raviqqe/array-queue/issues/2" | ||
|
||
[versions] | ||
|
||
patched = [] | ||
unaffected = ["< 0.3.0"] | ||
``` | ||
|
||
# array_queue pop_back() may cause a use-after-free | ||
|
||
array_queue implements a circular queue that wraps around an array. However, it | ||
fails to properly index into the array in the `pop_back` function allowing the | ||
reading of previously dropped or uninitialized memory. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
18 changes: 10 additions & 8 deletions
18
crates/asn1_der/RUSTSEC-2019-0007.toml → crates/asn1_der/RUSTSEC-2019-0007.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,18 +1,20 @@ | ||
```toml | ||
[advisory] | ||
id = "RUSTSEC-2019-0007" | ||
package = "asn1_der" | ||
aliases = ["CVE-2019-15549"] | ||
date = "2019-06-13" | ||
title = "Processing of maliciously crafted length fields causes memory allocation SIGABRTs" | ||
url = "https://github.com/KizzyCode/asn1_der/issues/1" | ||
keywords = ["dos"] | ||
description = """ | ||
url = "https://github.com/KizzyCode/asn1_der/issues/1" | ||
|
||
[versions] | ||
patched = [">= 0.6.2"] | ||
``` | ||
|
||
# Processing of maliciously crafted length fields causes memory allocation SIGABRTs | ||
|
||
Affected versions of this crate tried to preallocate a vector for an arbitrary amount of bytes announced by the ASN.1-DER length field without further checks. | ||
|
||
This allows an attacker to trigger a SIGABRT by creating length fields that announce more bytes than the allocator can provide. | ||
|
||
The flaw was corrected by not preallocating memory. | ||
""" | ||
aliases = ["CVE-2019-15549"] | ||
|
||
[versions] | ||
patched = [">= 0.6.2"] |
14 changes: 8 additions & 6 deletions
14
crates/atom/RUSTSEC-2020-0044.toml → crates/atom/RUSTSEC-2020-0044.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,17 @@ | ||
```toml | ||
[advisory] | ||
id = "RUSTSEC-2020-0044" | ||
package = "atom" | ||
date = "2020-09-21" | ||
informational = "unsound" | ||
title = "Unsafe Send implementation in Atom allows data races" | ||
url = "https://github.com/slide-rs/atom/issues/13" | ||
description = """ | ||
The `atom` crate contains a security issue revolving around its implementation | ||
of the Send trait. It incorrectly allows any arbitrary type to be sent across | ||
threads potentially leading to use-after-free issues through memory races. | ||
""" | ||
|
||
[versions] | ||
patched = [] | ||
``` | ||
|
||
# Unsafe Send implementation in Atom allows data races | ||
|
||
The `atom` crate contains a security issue revolving around its implementation | ||
of the Send trait. It incorrectly allows any arbitrary type to be sent across | ||
threads potentially leading to use-after-free issues through memory races. |
Oops, something went wrong.