Skip to content
OpenAdvisories

Ecosystem

crates.io

2,056 known vulnerabilities.

2,055 results · Feed

  • Unscored —

    Uninitialized memory exposed when streaming decompression of a legacy frame fails

    When decompression fails inside a legacy (zstd v0.4 to v0.7) frame, the bundled zstd library reports the output buffer as fully written although nothing was written. `DCtx::decompress_stream` committed that position even on error, and for a `Vec<u8>` destinat…

  • Unscored —

    Heap buffer overflow in `CCtx::try_clone` on a multithreaded context

    `CCtx::try_clone` (`experimental` feature, deprecated) copies tables sized from the context's applied parameters. Starting a multithreaded frame (`zstdmt` feature) replaces those parameters with the workers' without resizing the context's own tables, so after…

  • Unscored —

    Out-of-bounds read in `train_from_buffer` when sample sizes overflow

    `ZDICT_trainFromBuffer` is never told the length of the samples buffer, so `train_from_buffer` checked that the sample sizes add up to it. With overflow checks off, as in release builds, that sum wrapped around: sizes totalling 2^64 plus the buffer length pas…

  • Unscored —

    Use-after-free of a dictionary after a one-shot call on a context with an open stream

    The one-shot `DCtx` and `CCtx` methods assumed the C library resets the context, but it leaves an open stream as it is. When a stream was left unfinished on a context, a one-shot call such as `decompress_using_dict` could leave the context pointing at the dic…

  • Unscored —

    Use-after-free through `init_using_cdict` and `init_using_ddict`

    `CCtx::init_using_cdict` and `DCtx::init_using_ddict` (`experimental` feature, deprecated) took the dictionary as `&CDict<'b>` and `&DDict<'b>` with only `'b: 'a`, so the dictionary itself could be dropped while the context still pointed at it. The same mista…

  • Unscored —

    `Seekable::decompress` sets a `Vec` length beyond its capacity for offsets past the end

    `ZSTD_seekable_decompress` shortens the requested length to the end of the data without checking that the offset is before it. For an offset past the end, it returns a wrapped-around length without writing anything, and `Seekable::decompress` passed that leng…

  • Unscored —

    `OutBuffer::around_pos` exposes uninitialized memory

    `OutBuffer::around_pos` accepted a position past the initialized length of a `Vec<u8>`. The next streaming call then marked everything before the position as initialized, so safe code could read stale heap memory between the vector's previous length and that …

  • Unscored —

    `Seekable` reads a NULL or out-of-bounds seek table

    `Seekable` did not record whether it was initialized. On a fresh `Seekable`, or one whose `init_buff()` failed, `decompress`, `offset_to_frame_index` and `frame_decompressed_size` made the C library read a NULL seek table. After a failed re-initialization, `d…

  • Unscored —

    Use-after-free with `CParameter::StableInBuffer`

    With `CParameter::StableInBuffer(true)` (`experimental` feature), the C library keeps a pointer to the input of one streaming call and reads from it in later calls, including `flush_stream` and `end_stream`, which take no input. An `InBuffer` only borrows its…

  • Unscored —

    Out-of-bounds read when training a dictionary from inconsistent sample sizes

    `ZDICT_trainFromBuffer` is never told the length of the samples buffer. Before 0.4.10, `zstd::dict::from_continuous` (initially `train_dict`) called it directly: up to 0.2.1 without checking the sample sizes against the buffer at all, and from 0.3.0 with a su…

  • Unscored —

    Uninitialized memory exposed by `write::Decoder` on a corrupt legacy frame

    From 0.4.22 to 0.7.x, the writer behind `zstd::stream::write::Decoder` set its output buffer's length to its full capacity before each decompression call, then to the position the call reported, and only checked for an error afterwards. When decompression fai…

  • Unscored —

    Data from an abandoned stream leaks into the next stream on a reused context

    The `with_context` constructors of the stream encoders and decoders used the borrowed context as it was. When a stream was abandoned on a context, for example an encoder dropped before `finish()` after an error, whatever it left there was carried into the nex…

  • Unscored —

    Missing case-insensitive matching for CSS url function

    URL filtering, such as relative URLs and URL scheme limits, is not always applied when CSS sanitization is used. When the inner URL is quoted, CSS `url("")` is matched case-sensitively, when it should be matched case-insensitively. As a result, while `url("")…

  • Unscored —

    `zvariant_derive` is unmaintained

    The `zvariant_derive` crate is no longer maintained as a standalone crate. Its derive macros are provided by [`zbus`](https://crates.io/crates/zbus) starting with version `6.0.0`. Users should migrate to [`zbus`](https://crates.io/crates/zbus), with its defau…

  • Unscored —

    `zbus_names` is unmaintained

    The `zbus_names` crate is no longer maintained as a standalone crate. It has been merged into [`zbus`](https://crates.io/crates/zbus) starting with version `6.0.0`, as its `names` module. Users should migrate to [`zbus`](https://crates.io/crates/zbus), with i…

  • Unscored —

    `zvariant` is unmaintained

    The `zvariant` crate is no longer maintained as a standalone crate. It has been merged into [`zbus`](https://crates.io/crates/zbus) starting with version `6.0.0`, as its `wire` module. Users should migrate to [`zbus`](https://crates.io/crates/zbus), with its …

  • Low 3.3

    Stack overflow when parsing deeply nested input in pest_grammars

    ## Impact In affected versions, parsing deeply nested input with `pest_grammars::json::JsonParser` can exhaust the native stack and abort the hosting process. Applications that accept attacker-controlled JSON without suitable resource limits may therefore be …

  • Medium 6.3

    ammonia: mXSS in ammonia via MathML `annotation-xml` encoding strip

    ammonia is a Rust library for repairing and securing untrusted HTML. Prior to 3.3.2, 4.0.2, and 4.1.3, applications that explicitly allow the math tag, annotation-xml, and at least one raw-text HTML element while disallowing the encoding attribute can permit …

  • High 7.8

    mise permits untrusted local configuration to override default shell arguments

    mise manages dev tools like node, python, cmake, and terraform. Prior to 2026.7.14, in the default non-safe mode, mise loads .mise.toml [settings] from an untrusted local project before trust approval and strip_local_only_settings removes only fields marked g…

  • High 7.5

    Remote DoS through unchecked `IdList` allocation in negentropy

    ## Summary The `negentropy` crate is vulnerable to denial-of-service through an unchecked, peer-controlled ID count in reconciliation messages. With the `std` feature enabled, which is the default configuration, a small malformed message can trigger an enormo…

  • Medium 5.4

    ammonia allows stored XSS through unsanitized SVG animate and set attributes

    ammonia is a Rust library for repairing and securing untrusted HTML. Prior to 3.3.3, 4.0.3, and 4.1.4, applications that allow the SVG animate or set elements can retain an animation whose attributeName targets href and whose value uses the javascript scheme.…

  • Unscored —

    `AsyncFd::new` and related constructors violate I/O safety

    `tokio::io::unix::AsyncFd` provides safe constructors (`new`, `with_interest`, `try_new`, and `try_with_interest`) that accept any `T: AsRawFd` rather than requiring proof of ownership or validity of the file descriptor. Because `RawFd` implements `AsRawFd`, …

  • High 7.5

    Decompression bomb in `ruzstd`: a tiny input can exhaust memory (OOM)

    A crafted `.zst` input under 128 KB can force `ruzstd` to allocate several gigabytes at once, crashing the process with an out-of-memory condition. Since `ruzstd` is a decoder for untrusted input, a single small file is enough to take down anything decoding i…

  • Critical 9.1

    ZipStreamReader::extract() and ZipArchive::extract() apply Unix permissions through symlinks without confining the target

    `ZipStreamReader::extract()` applies Unix permissions through extracted symlinks without validating the symlink target stays within the destination For further details see: https://github.com/zip-rs/zip2/security/advisories/GHSA-4684-h2q9-2vcp

  • Unscored —

    zip: `ZipArchive::extract` creates symbolic links whose attacker-controlled targets are outside the destination directory

    In `zip` 9.0.0-pre2, `ZipArchive::extract` creates a symbolic link from an archive entry after validating only the output entry path. The link target bytes are passed directly to the platform symlink API, so a malicious archive can create an entry inside the …

  • High 7.3

    Insecure Preservation of SUID/SGID Bits during ZIP Extraction Leading to Potential Privilege Escalation

    The `zip` crate preserves privileged Unix permission bits (SUID, SGID, and sticky bits) from ZIP `external_attributes` during extraction, instead of masking them to safe permission bits. If a privileged process (for example, `root` in an installer, CI/CD pipe…

  • High 7.5

    Poly1305 panics or computes a wrong tag on attacker-chosen messages of 64 bytes or more

    `Poly1305` in `ic-cipher` absorbs messages of 64 bytes or more four blocks at a time, summing four products before one reduction. From 0.2.5 to 0.2.19 the reduction kept its carries in 32-bit integers, which four summed products can overflow when the message'…

  • High 7.5

    MIKEY message MAC is never verified on receive, so forged messages are accepted

    `mykey` implements MIKEY (RFC 3830) for SRTP key exchange. No receive path verified the MIKEY message authentication code. `crypto::verify_mac` existed and was correct, but it was called only from unit tests — neither `MikeyMessage::from_bytes` nor `MikeyMess…

  • Critical 9.1

    Pre-shared key mode transmits the TGK in cleartext, exposing the SRTP master key

    `mykey` implements MIKEY (RFC 3830) for SRTP key exchange. Pre-shared key mode transmitted the TEK Generation Key (TGK) in the clear. `MikeyMessage::new_psk_init` built its KEMAC payload with `EncAlg::Null` and placed the TGK in `enc_data` verbatim. Anyone ab…

  • Unscored —

    Resource budgets not enforced on the typed deserialization path

    `ParserConfig::max_events`, `max_nodes`, `max_total_scalar_bytes`, `max_merge_keys`, `alias_anchor_ratio` and the alias jump factor were enforced only by the two `Value` loaders. A typed target with a default-shaped configuration is served by the streaming de…

  • Medium 5.3

    Rustls: TLS 1.3 handshake messages incorrectly accepted across encryption level boundaries

    Rustls accepted TLS 1.3 handshake messages sent at the wrong encryption level when they followed a key-changing message in the same record. The handshake transcript is still authenticated, so a network-position attacker cannot use this to alter or complete a …

  • Medium —

    hickory-resolver follows irrelevant CNAME records

    When the Hickory DNS resolver follows CNAME records, it sends queries that are not necessary to answer the original recursive query. If there are any CNAME records in the authority section or additional section of the response, queries will be sent for those …

  • High —

    hickory-resolver: Unbounded TC-retry loop in `NameServerPool::try_send` (resource-exhaustion DoS)

    When the `hickory-resolver` name server pool implementation receives an upstream response with the TC (truncated) header bit set, it re-queues the request to the same nameserver to retry with UDP transport disabled. However, the retry arm never inspects the t…

  • Unscored —

    `astral-tl` is unmaintained

    Astral deprecated `astral-tl` on October 5, 2026. All versions of the crate are unmaintained. For HTML parsing, Astral recommends [`astral-html`] as a replacement. [`astral-html`]: https://crates.io/crates/astral-html

  • High 7.5

    Praxis affected by HTTP/2 Bomb

    ### Summary Multiple denial-of-service vulnerabilities have been discovered in HTTP/2 server implementations. All have been rated with a severity impact of [Important](https://access.redhat.com/security/updates/classification). The vulnerabilities target HPAC…

  • Low 2.3

    xxhash-rust: Safe xxh3 custom-secret API accepts too-short secret in release

    I have a minimized safe Rust witness for xxhash-rust 0.8.15. Safe public route: xxhash_rust::xxh3::xxh3_64_with_secret(&[0x41], &[]) The caller-side harness contains no unsafe code. Under release execution, the internal minimum custom-secret length predicate …

  • Low 2.0

    Wasmtime: Preemption and traps during bulk operations enable breaking internal VM state

    Wasmtime is a runtime for WebAssembly. From 46.0.0 until 46.0.2 and 47.0.3, fuel and epoch preemption checks inside bulk operations including memory.copy, table.grow, and array.copy can expose invalid intermediate state when an embedder mutates a Store in Sto…

  • Medium —

    rmcp OAuth client fetches server-controlled resource_metadata URLs

    ## Summary The `rmcp` OAuth client accepts a server-controlled `resource_metadata=` URL from the `WWW-Authenticate` header and fetches it without same-origin or private-network validation. An attacker-controlled MCP server can return a `401 WWW-Authenticate: …

  • Medium 5.9

    uv: Path traversal on Windows through wheel extraction

    uv is a Python package and project manager written in Rust. From 0.12.7 until 0.12.18, uv wheel extraction on Windows can process a malicious wheel in a way that writes a file outside the installation prefix, including an executable in a directory already pre…

  • Unscored —

    anymap2 is unmaintained

    The `anymap2` crate is not maintained. `anymap3` is the recommended replacement.