Lucene search
+L
RustSecMost viewed

1332 matches found

RustSec
RustSec
•added 2022/05/21 12:00 p.m.•39 views

Stack overflow during recursive expression parsing

When parsing untrusted rulex expressions, the stack may overflow, possibly enabling a Denial of Service attack. This happens when parsing an expression with several hundred levels of nesting, causing the process to abort immediately. The flaw was corrected in commits 60aa2dc03a by adding a check ...

6.5CVSS3.4AI score0.00946EPSS
SaveExploits0Affected Software1
RustSec
RustSec
•added 2022/02/01 12:00 p.m.•39 views

json is unmaintained

Last release was almost 3 years ago. The maintainer is unresponsive with outstanding issues. One of the outstanding issues include a possible soundness issue. Possible Alternatives The below list has not been vetted in any way and may or may not contain alternatives; - jzon maintained fork of jso...

7.2AI score
SaveExploits0
RustSec
RustSec
•added 2021/10/17 12:00 p.m.•39 views

abomonation transmutes &T to and from &[u8] without sufficient constraints

This transmute is at the core of the abomonation crates. It's so easy to use it to violate alignment requirements that no test in the crate's test suite passes under miri. The use of this transmute in serialization/deserialization also incorrectly assumes that the layout of a reprRust type is...

7.5CVSS1.2AI score0.01004EPSS
SaveExploits0
RustSec
RustSec
•added 2021/06/12 12:00 p.m.•39 views

`grep-cli` may run arbitrary executables on Windows

On Windows in versions of grep-cli prior to 0.1.6, it's possible for some of the routines to execute arbitrary executables. In particular, a quirk of the Windows process execution API is that it will automatically consider the current directory before other directories when resolving relative...

9.8CVSS3.5AI score0.01934EPSS
SaveExploits0Affected Software1
RustSec
RustSec
•added 2021/06/01 12:00 p.m.•39 views

`mopa` is technically unsound

The mopa crate redefines the deprecated TraitObject struct from core::raw like so: rust reprC deriveCopy, Clone dochidden pub struct TraitObject pub data: mut , pub vtable: mut , This is done to then transmute a reference to a trait object &dyn Trait for any trait Trait into this struct and...

9.8CVSS0.4AI score0.01701EPSS
SaveExploits0
RustSec
RustSec
•added 2021/03/06 12:00 p.m.•39 views

Multiple memory safety issues

Affected versions contain multiple memory safety issues, such as: - Setting a multi label type where an image doesn't exist would lead to a NULL pointer dereference. - Setting a window icon using a non-raster image which FLTK rasterizes lazily would lead to a NULL dereference. - Pixmap constructo...

9.1CVSS1.4AI score0.01278EPSS
SaveExploits0Affected Software1
RustSec
RustSec
•added 2021/02/18 12:00 p.m.•39 views

`through` and `through_and` causes a double free if the map function panics

through and throughand take a mutable reference as well as a mapping function to change the provided reference. They do this by calling ptr::read on the reference which duplicates ownership and then calling the mapping function. If the mapping function panics, both the original object and the one...

9.8CVSS2.5AI score0.01373EPSS
SaveExploits1
RustSec
RustSec
•added 2021/01/26 12:00 p.m.•39 views

Record::read : Custom `Read` on uninitialized buffer may cause UB

Affected versions of this crate passes an uninitialized buffer to a user-provided Read implementation. Record::read Arbitrary Read implementations can read from the uninitialized buffer memory exposure and also can return incorrect number of bytes written to the buffer. Reading from uninitialized...

7.5CVSS3.2AI score0.01498EPSS
SaveExploits1Affected Software1
RustSec
RustSec
•added 2020/12/18 12:00 p.m.•39 views

SyncRef's clone() and debug() allow data races

Affected versions of this crate unconditionally implement Sync for SyncRef. This definition allows data races if &T is accessible through &SyncRef. SyncRef derives Clone and Debug, and the default implementations of those traits access &T by invoking T::clone & T::fmt. It is possible to create da...

8.1CVSS2.8AI score0.01059EPSS
SaveExploits1Affected Software1
RustSec
RustSec
•added 2020/12/09 12:00 p.m.•39 views

nanorand 0.5.0 - RNGs failed to generate properly for non-64-bit numbers

In versions of nanorand prior to 0.5.1, RandomGen implementations for standard unsigned integers could fail to properly generate numbers, due to using bit-shifting to truncate a 64-bit number, rather than just an as conversion. This often manifested as RNGs returning nothing but 0, including the...

9.8CVSS2.8AI score0.01534EPSS
SaveExploits0Affected Software1
RustSec
RustSec
•added 2020/12/08 12:00 p.m.•39 views

Thex<T> allows data races of non-Send types across threads

thex::Thex implements Sync for all types T. However, it is missing a bound for T: Send. This allows non-Send types such as Rc to be sent across thread boundaries which can trigger undefined behavior and memory corruption...

5.5CVSS2.2AI score0.00313EPSS
SaveExploits0
RustSec
RustSec
•added 2020/11/10 12:00 p.m.•39 views

`Shared` can cause a data race

Shared data structure in model crate implements Send and Sync traits regardless of the inner type. This allows safe Rust code to trigger a data race, which is undefined behavior in Rust. Users are advised to treat Shared as an unsafe type. It should not be used outside of the testing context, and...

8.1CVSS1.4AI score0.01098EPSS
SaveExploits1
RustSec
RustSec
•added 2020/11/10 12:00 p.m.•39 views

Potential segfault in `localtime_r` invocations

Impact Unix-like operating systems may segfault due to dereferencing a dangling pointer in specific circumstances. This requires an environment variable to be set in a different thread than the affected functions. This may occur without the user's knowledge, notably in a third-party library...

5.3CVSS3.6AI score0.01965EPSS
SaveExploits0Affected Software1
RustSec
RustSec
•added 2020/11/06 12:00 p.m.•39 views

`socket2` invalidly assumes the memory layout of std::net::SocketAddr

The socket2 crate has assumed std::net::SocketAddrV4 and std::net::SocketAddrV6 have the same memory layout as the system C representation sockaddr. It has simply casted the pointers to convert the socket addresses to the system representation. The standard library does not say anything about the...

2.7AI score
SaveExploits0Affected Software1
RustSec
RustSec
•added 2020/08/25 12:00 p.m.•39 views

Chunk API does not respect align requirement

Chunk API does not respect the align requirement of types. Unaligned reference can be created with the API, which is an undefined behavior...

7.5CVSS1.8AI score0.00915EPSS
SaveExploits0
RustSec
RustSec
•added 2020/05/31 12:00 p.m.•39 views

Double free when calling `sys_info::disk_info` from multiple threads

Affected versions of sys-info use a static, global, list to store temporary disk information while running. The function that cleans up this list, DFCleanup, assumes a single threaded environment and will try to free the same memory twice in a multithreaded environment. This results in consistent...

9.8CVSS1.8AI score0.0123EPSS
SaveExploits0Affected Software1
RustSec
RustSec
•added 2019/06/08 12:00 p.m.•39 views

Out of Memory in stream::read_raw_bytes_into()

Affected versions of this crate called Vec::reserve on user-supplied input. This allows an attacker to cause an Out of Memory condition while calling the vulnerable method on untrusted data...

7.5CVSS5.6AI score0.03764EPSS
SaveExploits0Affected Software1
RustSec
RustSec
•added 2017/01/23 12:00 p.m.•39 views

headers containing newline characters can split messages

Serializing of headers to the socket did not filter the values for newline bytes \r or \n, which allowed for header values to split a request or response. People would not likely include newlines in the headers in their own applications, so the way for most people to exploit this is if an...

5.3CVSS3AI score0.01033EPSS
SaveExploits0Affected Software1
RustSec
RustSec
•added 2026/08/09 12:00 p.m.•38 views

Ed25519 identity public keys permit universal signature forgery

All published versions of dcrypt-sign before 2.0.0 accepted the Edwards identity as an Ed25519 public key. A signature with R = B and S = 1 then verified for every message because the challenge term multiplied the identity. The implementation also admitted other noncanonical or small-order inputs...

5.3AI score
SaveExploits0Affected Software1
RustSec
RustSec
•added 2026/06/11 12:00 p.m.•38 views

Out-of-bounds read in `nth` / `nth_back` for `PyList` and `PyTuple` iterators

PyO3 0.24.0 added optimized implementations of Iterator::nth and DoubleEndedIterator::nthback for the BoundListIterator and BoundTupleIterator types. These implementations computed the target index using unchecked usize addition index + n before bounds-checking against the sequence length, then...

5.8AI score
SaveExploits0Affected Software1
RustSec
RustSec
•added 2026/05/21 12:00 p.m.•38 views

Potential Panic in AVX2 SHAKE-256

The AVX2-optimized implementation of SHAKE-256 intended for use in ML-KEM and ML-DSA would panic if the length of the output buffers was greater than 32 and not a multiple of 8, due to an out-of-bounds indexing operation. Impact This bug impacts users on AVX2 platforms that use the...

5.7AI score
SaveExploits0Affected Software1
RustSec
RustSec
•added 2026/05/15 12:00 p.m.•38 views

Unchecked `CryptoVec` allocation and growth handling

CryptoVec used unchecked capacity growth, unchecked length arithmetic, and unsafe allocation and locking paths. In affected russh releases, attacker-controlled input could reach these code paths through buffer resizing operations. Two affected reachability paths were identified: Current russh...

7.5CVSS6AI score0.0046EPSS
SaveExploits0Affected Software1
RustSec
RustSec
•added 2026/05/08 12:00 p.m.•38 views

`InterfaceAccount` allows account substitution between unexpected types

Affected versions of anchor-lang allowed InterfaceAccount to accept accounts with an unexpected Anchor discriminator. A change to InterfaceAccount caused checked deserialization to be bypassed for this account wrapper, so validation proved only that the account owner matched one of the accepted...

5.8AI score
SaveExploits0Affected Software1
RustSec
RustSec
•added 2026/05/01 12:00 p.m.•38 views

CPU exhaustion during message encoding due to O(n²) name compression

During message encoding, hickory-proto's BinEncoder stores pointers to labels that are candidates for name compression in a Vec. The name compression logic then searches for matches with a linear scan. A malicious message with many records can both introduce many candidate labels, and invoke this...

5.3CVSS6.7AI score0.00801EPSS
SaveExploits0Affected Software1
RustSec
RustSec
•added 2026/04/24 12:00 p.m.•38 views

Unsound transmute while debug/display printing batch Insert statements in Diesel's SQLite backend

Diesel allows users to output the generated SQL for any query DSL construct via th diesel::debugquery function as Display and Debug output. For the particular implementation used by batch Insert statements in the SQLite backend Diesel relied on an unspecified transmute between types with a reprru...

5.9AI score
SaveExploits0Affected Software1
RustSec
RustSec
•added 2026/04/21 12:00 p.m.•38 views

Broken hard revocation handling

Before sq-git checks if a commit can be authenticated, it first looks for hard revocations. Because parsing a policy is expensive and a project's policy rarely changes, sq-git has an optimization to only check a policy if it hasn't checked it before. It does this by maintaining a set of policies...

5.4AI score
SaveExploits0Affected Software1
RustSec
RustSec
•added 2026/04/14 12:00 p.m.•38 views

Name constraints were accepted for certificates asserting a wildcard name

Permitted subtree name constraints for DNS names were accepted for certificates asserting a wildcard name. This was incorrect because, given a name constraint of accept.example.com, .example.com could feasibly allow a name of reject.example.com which is outside the constraint. This is very simila...

6.5CVSS7AI score0.00284EPSS
SaveExploits0Affected Software1
RustSec
RustSec
•added 2026/04/13 12:00 p.m.•38 views

`microsoftsystem64` was removed from crates.io for malicious code

microsoftsystem64 installs a hardcoded SSH authorizedkeys entry persistence/backdoor and scans for sensitive files .env, credential-like JSON names, keyword-matching docs, reads their contents, base64-encodes where needed, and exfiltrates everything to a remote server via HTTP. It also packages a...

5.8AI score
SaveExploits0
RustSec
RustSec
•added 2025/03/10 12:00 p.m.•38 views

`tree-sitter-pkl` was removed from crates.io for malicious code

tree-sitter-pkl was part of a campaign that attempted to exfiltrate environmental data from the host. The malicious crate had 1 version published in March 2025, and had no evidence of actual usage. This crate had no dependencies on crates.io...

5.9AI score
SaveExploits0
RustSec
RustSec
•added 2023/04/12 12:00 p.m.•38 views

Parsing borsh messages with ZST which are not-copy/clone is unsound

Affected versions of borsh cause undefined behavior when zero-sized-types ZST are parsed and the Copy/Clone traits are not implemented/derived. For instance if 1000 instances of a ZST are deserialized, and the ZST is not copy this can be achieved through a singleton, then accessing/writing to...

6.5AI score
SaveExploits0Affected Software1
RustSec
RustSec
•added 2022/05/21 12:00 p.m.•38 views

Panic due to improper UTF-8 indexing

When parsing untrusted rulex expressions, rulex may panic, possibly enabling a Denial of Service attack. This happens when the expression contains a multi- byte UTF-8 code point in a string literal or after a backslash, because rulex tries to slice into the code point and panics as a result. The...

6.5CVSS1.2AI score0.00857EPSS
SaveExploits0Affected Software1
RustSec
RustSec
•added 2022/01/05 12:00 p.m.•38 views

lmdb is unmaintained, use lmdb-rkv instead

The lmdb crate hasn't had any updates since August 2018. Mozilla's lmdb-rkv fork of the crate has received additional maintenance work beyond that and is the best available replacement...

1.8AI score
SaveExploits0
RustSec
RustSec
•added 2021/08/15 12:00 p.m.•38 views

serde_cbor is unmaintained

The serdecbor crate is unmaintained. The author has archived the github repository. Alternatives proposed by the author: ciborium minicbor...

2.3AI score
SaveExploits0
RustSec
RustSec
•added 2021/07/30 12:00 p.m.•38 views

Partial read is incorrect in molecule

Anyone who uses totalsize.. function to partial read the length of any FixVec will get an incorrect result, due to an incorrect implementation. This has been resolved in the 0.7.2 release...

9.8CVSS2.6AI score0.01361EPSS
SaveExploits0Affected Software1
RustSec
RustSec
•added 2021/05/19 12:00 p.m.•38 views

Soundness issue in `iced-x86` versions <= 1.10.3

Versions of iced-x86...

9.8CVSS2.1AI score0.01275EPSS
SaveExploits1Affected Software1
RustSec
RustSec
•added 2021/01/26 12:00 p.m.•38 views

insert_many can drop elements twice on panic

Affected versions of insertmany used ptr::copy to move over items in a vector to make space before inserting, duplicating their ownership. It then iterated over a provided Iterator to insert the new items. If the iterator's .next method panics then the vector would drop the same elements twice...

7.5CVSS4.2AI score0.01175EPSS
SaveExploits1
RustSec
RustSec
•added 2021/01/20 12:00 p.m.•38 views

QueryInterface should call AddRef before returning pointer

Affected version of this crate, which is a required dependency in com-impl, provides a faulty implementation of the IUnknown::QueryInterface method. QueryInterface implementation must call IUnknown::AddRef before returning the pointer, as describe in this documentation: As it is not incrementing...

7.5CVSS1.7AI score0.01088EPSS
SaveExploits0Affected Software1
RustSec
RustSec
•added 2021/01/11 12:00 p.m.•38 views

FromIterator implementation for Vector/Matrix can drop uninitialized memory

The FromIterator methods for Vector and Matrix rely on the type parameter N to allocate space in the iterable. If the passed in N type parameter is larger than the number of items returned by the iterator, it can lead to uninitialized memory being left in the Vector or Matrix type which gets...

9.8CVSS3.1AI score0.01373EPSS
SaveExploits1
RustSec
RustSec
•added 2021/01/05 12:00 p.m.•38 views

`Read` on uninitialized memory may cause UB (fn preamble_skipcount())

Affected versions of this crate passes an uninitialized buffer to a user-provided Read implementation within fn preambleskipcount. Arbitrary Read implementations can read from the uninitialized buffer memory exposure and also can return incorrect number of bytes written to the buffer. Reading fro...

9.8CVSS3.6AI score0.0123EPSS
SaveExploits0Affected Software1
RustSec
RustSec
•added 2021/01/03 12:00 p.m.•38 views

`Read` on uninitialized buffer can cause UB (impl of `ReadKVExt`)

Affected versions of this crate passes an uninitialized buffer to a user-provided Read implementation. Arbitrary Read implementations can read from the uninitialized buffer memory exposure and also can return incorrect number of bytes written to the buffer. Reading from uninitialized memory...

9.8CVSS3.7AI score0.0123EPSS
SaveExploits0
RustSec
RustSec
•added 2020/12/31 12:00 p.m.•38 views

`impl Random` on arrays can lead to dropping uninitialized memory

Affected versions of this crate had a panic safety issue to drop partially uninitialized array of T upon panic in a user provided function T::random. Dropping uninitialized T can potentially cause memory corruption or undefined behavior. The flaw was corrected in commit 565d508 by using MaybeUnin...

7.8CVSS2.9AI score0.00431EPSS
SaveExploits1Affected Software1
RustSec
RustSec
•added 2020/12/10 12:00 p.m.•38 views

Dangling reference in `access::Map` with Constant

Using the arcswap::access::Map with the Constant test helper or with user-provided implementation of the Access trait could sometimes lead to the map returning dangling references. Replaced by implementation without unsafe, at the cost of added Clone bound on the closure and small penalty on...

7.5CVSS1.1AI score0.01619EPSS
SaveExploits1Affected Software1
RustSec
RustSec
•added 2020/11/12 12:00 p.m.•38 views

Bunch<T> unconditionally implements Send/Sync

Affected versions of this crate unconditionally implements Send/Sync for Bunch. This allows users to insert T: !Sync to Bunch. It is possible to create a data race to a T: !Sync by invoking the Bunch::get API which returns &T from multiple threads. It is also possible to send T: !Send to other...

8.1CVSS3.7AI score0.01249EPSS
SaveExploits1
RustSec
RustSec
•added 2020/07/04 12:00 p.m.•39 views

Ozone contains several memory safety issues

Ozone contains several memory safety issues including out-of-bound access and dropping of uninitialized memory...

3.1AI score
SaveExploits0
RustSec
RustSec
•added 2020/06/26 12:00 p.m.•38 views

Undefined Behavior in bounded channel

The affected version of this crate's the bounded channel incorrectly assumes that Vec::fromiter has allocated capacity that same as the number of iterator elements. Vec::fromiter does not actually guarantee that and may allocate extra memory. The destructor of the bounded channel reconstructs Vec...

9.8CVSS2AI score0.02701EPSS
SaveExploits1Affected Software1
RustSec
RustSec
•added 2020/06/02 12:00 p.m.•38 views

Improper Synchronization and Race Condition in vm-memory

rust-vmm vm-memory before 0.1.1 and 0.2.x before 0.2.1 allows attackers to cause a denial of service loss of IP networking because readobj and writeobj do not properly access memory. This affects aarch64 with musl or glibc and x8664 with musl...

7.5CVSS5.7AI score0.01639EPSS
SaveExploits0Affected Software1
RustSec
RustSec
•added 2019/09/14 12:00 p.m.•38 views

Stream callback function is not unwind safe

Affected versions of this crate is not panic safe within callback functions streamcallback and streamfinishedcallback. 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...

9.8CVSS5.3AI score0.02506EPSS
SaveExploits1Affected Software1
RustSec
RustSec
•added 2019/06/15 12:00 p.m.•38 views

Buffer overflow and format vulnerabilities in functions exposed without unsafe

ncurses exposes functions from the ncurses library which: - Pass buffers without length to C functions that may write an arbitrary amount of data, leading to a buffer overflow. instr, mvwinstr, etc - Passes rust &str to strings expecting C format arguments, allowing hostile input to execute a...

9.8CVSS4.7AI score0.01615EPSS
SaveExploits0Affected Software1
RustSec
RustSec
•added 2026/07/05 12:00 p.m.•37 views

`let_cxx_string!` uses uninitialized value due to exception safety violations

In affected versions of this crate, letcxxstring! is not exception safe. After creating the StackString, if match $value panics, the content of StackString is not yet initialized, while the drop implementation of StackString unconditionally deinitializes the content, leading to use of uninitializ...

5.9AI score
SaveExploits0Affected Software1
RustSec
RustSec
•added 2026/06/12 12:00 p.m.•37 views

Unbounded SCRAM iteration count allows a malicious server to cause CPU-exhaustion denial of service

A malicious, compromised, or man-in-the-middle server can supply an arbitrarily large SCRAM-SHA-256 PBKDF2 iteration count during authentication. The client runs it inline with no upper bound, pinning a tokio worker thread for minutes per connection, possibly stalling the whole async runtime...

5.4AI score
SaveExploits0Affected Software1
Total number of security vulnerabilities1332