rustsec
Client library for the RustSec security advisory database
0.33.0
12M downloads/mo
#2796 most downloaded on crates.io
rustsec/rustsec
What this package is like to depend on
Last release 2 months ago
05 Jun 2026
Ships fairly regularly
a new release about every 2 months
Nearly every release is documented
notes for 62 of 68 stable releases
8 versions withdrawn
withdrawn after publishing
9 years old
91 releases · first in 2017
3 releases in the last 12 months
see the full history below
Release timeline
91 releases · Feb 2017 to Jun 2026Releases
latest 60 of 91-
0.33.005 Jun 2026Release notes
Open source →What's Changed
- Sort paths in
lintfunction by @smoelius in #1544 - build(deps): bump toml from 0.9.11+spec-1.1.0 to 1.0.1+spec-1.1.0 by @dependabot[bot] in #1547
- build(deps): bump gix from 0.78.0 to 0.79.0 by @dependabot[bot] in #1539
- build(deps): bump gix from 0.79.0 to 0.80.0 by @dependabot[bot] in #1553
- Add
maliciousas an explicit category by @LawnGnome in #1559 - Upgrade to gix 0.81 by @djc in #1564
- rustsec: avoid warning about packages that are not from crates.io by @djc in #1573
- build(deps): bump gix from 0.81.0 to 0.83.0 by @dependabot[bot] in #1594
- print the invalid char when linting affected functions by @Skgland in #1598
- Validate advisory dates with jiff crate by @waamm in #1603
- build(deps): bump gix from 0.83.0 to 0.84.0 by @dependabot[bot] in #1605
- admin: make ID assignment stricter by @djc in #1608
- Sort paths in
-
0.32.004 Feb 2026Nothing published for this version
-
0.31.007 Nov 2025Nothing published for this version
-
0.30.412 Jun 2025Nothing published for this version
-
0.30.228 Feb 2025Release notes
Open source →Fixed
- Upgraded to
tame-indexv0.18.1 to fix an incompatibility with Rust 1.85 and later (#1333)
- Upgraded to
-
0.30.119 Jan 2025Release notes
Open source →Added
- Added public APIs for scanning binary files that were previously private to
cargo audit(#1291)
Fixed
- Added public APIs for scanning binary files that were previously private to
-
0.30.029 Oct 2024 -
0.30.0-rc.115 Oct 2024 pre-releaseNothing published for this version
-
0.30.0-rc.010 Oct 2024 pre-releaseNothing published for this version
-
0.30.0-pre.030 Jul 2024 pre-releaseNothing published for this version
-
0.29.324 May 2024Nothing published for this version
-
0.29.202 May 2024Release notes
Open source →Changed
- Upgraded to
gixv0.62. This fixes RUSTSEC-2024-0335. It also transitively upgrades toreqwestv0.12 andhyperv1.0. (#1174)
- Upgraded to
-
0.29.117 Mar 2024Release notes
Open source →Changed
- Upgraded to
gixv0.60. This fixes build issues due to a semver-incompatible change in the interaction ofgixandtame-index. (#1143)
- Upgraded to
-
0.29.016 Feb 2024Release notes
Open source →Changed
- Completely rewritten the
fixmodule. (#1113)- Now it edits
Cargo.lockas opposed toCargo.toml, and performs only semver-compatible upgrades. - Fixes are performed by calling
cargo update, migrating away from the unmaintainedcargo-edit-9crate. - The
fixfeature is removed and the module is always enabled now that it requires no additional dependencies. - The module is still experimental, and its behavior may change in the future.
- Now it edits
- Require
tame-index0.9.3 or later, which fixes issues with some enterprise firewalls. (#1103)
- Completely rewritten the
-
0.28.611 Feb 2024Release notes
Open source →Changed
- Additions to the OSV advisory struct (#656)
- Add the
schema_versionfield toOsvAdvisory - Add a
Deserializeimplementation forOsvAdvisory - Add getter methods for
OsvAdvisorycontent
- Add the
- Additions to the OSV advisory struct (#656)
-
0.28.503 Feb 2024Nothing published for this version
-
0.28.417 Nov 2023Release notes
Open source →Changed
- Upgraded dependencies
gixto 0.58.x andtame-indexto 0.9.x (#1099)
- Upgraded dependencies
-
0.28.314 Oct 2023Release notes
Open source →Changed
- Switched from Git-compatible lockfiles to locks provided by the operating system. This fixes issues around stale lockfiles being left behind on power loss. (#1032)
CachedIndexnow acquires the global Cargo package lock. This was necessary to avoid racing with Cargo when updating crates.io index via Git or writing sparse index entries. Note that this also prevents most Cargo operations for the current user untilCachedIndexis dropped. (#1032)- The
gixcrate is now used in themax-performance-safeconfiguration, enabling multi-threading. (#1045)
Added
- The
Severitytype now implementsHash(#1042)
-
0.28.225 Sep 2023Release notes
Open source →Fixed
- Upgraded to
tame-index0.6.0 andgix0.53.1 to fix a vulnerability ingix, see RUSTSEC-2023-0064 (#1015) - Correctly report error when encountering a stale git lockfile (#1012)
- Upgraded to
-
0.28.106 Sep 2023Release notes
Open source →Changed
- No longer require HTTP/2 for accessing sparse crates.io index. This degrades performance somewhat due to an additional roundtrip to crates.io, but allows index access through corporate transparent proxies that do not support HTTP/2. (#992)
Fixed
- Fixed a performance regression where the cached crates.io index would re-request items that are already cached (#987)
-
0.28.031 Aug 2023Release notes
Open source →Added
- Sparse crates.io index is now supported. This dramatically speeds up the checks for yanked crates. This crate honors the Cargo settings for the use of sparse index, should you need to opt out. (#923)
- Added directory locking and explicit locking controls to the API to avoid several processes modifying local data at the same time. (#923, #944)
- Added
affectedfield toWarning, to communicate e.g. warnings specific to a particular platform. (#964) - Added
licensefield to the advisory format in preparation for data import from GHSA. (#682) - Added a
CommitHashtype to represent git commit hashes independently from the git implementation used. (#961)
Changed
- Switched from OpenSSL to rustls as the TLS implementation. (#923, #925)
- Due to this change CPU platforms other than x86 and ARM are no longer supported. This issue is tracked as #962.
- The
fixfeature is not yet converted; enabling it will pull in OpenSSL.
- Switched from
libgit2togitoxideas the git implementation. (#925) - Switched from
crates-indextotame-indexfor crates.io access. (#923) - Increased the minimum supported rust version to 1.67. (#923)
Removed
- Removed
rustsec::registry::Indexbecause it is impractically slow when the sparse crates.io index is used. Userustsec::registry::CachedIndexinstead. (#923) - Removed
rustsec::registry::CachedIndex.is_yanked(). Use.find_yanked()instead. Checking a large number of crates at once is orders of magnitude faster when using the sparse index. (#937) - Removed many
Fromimplementations fromrustsec::Errorto avoid tyingrustsecSemVer to that of dependency crates. This should result in less frequent SemVer bumps forrustsecin the future. (#961)
Fixed
rustseccan now be used in Alpine Linux containers (#466).- Several users of
rustsecrunning in parallel can now fetch Git repositories without races (#490). - Accessing Git repositories over SSH is now supported (#292).
- Credential helpers to access private repositories are now supported #555.
- Fix an edge case in git source dependency resolution when dependencies differ only in their hash. (#889)
-
0.28.0-rc.131 Aug 2023 pre-releaseNothing published for this version
-
0.27.010 May 2023Release notes
Open source →Added
- Upgraded to
cargo-lockv9.0.0, which enables support for sparse registries.
- Upgraded to
-
0.26.522 Mar 2023Release notes
Open source →Changed
- Migrated to a maintained fork of
cargo-editv0.9.x to fix CVE-2023-22742 in the transitive dependencylibgit2-sys(#831) - Removed the experimental check for the presence of a signature on the advisory-db repository. It only verified the presence of a signature without checking for any particular key, so it provided no additional security. (#816)
- Fixed a build failure with certain dependency versions on recent compilers due to failing type inference (#836)
Release notes
Open source →Changed
- Migrated to a maintained fork of
cargo-editv0.9.x to fix CVE-2023-22742 in the transitive dependencylibgit2-sys(#831) - Removed the experimental check for the presence of a signature on the advisory-db repository. It only verified the presence of a signature without checking for any particular key, so it provided no additional security. (#816)
- Fixed a build failure with certain dependency versions on recent compilers due to failing type inference (#836)
- Migrated to a maintained fork of
-
0.26.415 Nov 2022Release notes
Open source →Fixed
registry::CachedIndexnow correctly handles invalid semver versions in crates.io registry, which crates.io allows for some reason (#762)
-
0.26.301 Nov 2022Release notes
Open source →Added
registry::CachedIndexwhich is orders of magnitude faster thanregistry::Indexwhen scanning multipleCargo.lockfiles or binaries (#730)
-
0.26.215 Aug 2022 -
0.26.115 Aug 2022 -
0.26.022 May 2022Release notes
Open source →Added
Changed
- Bump
git2dependency to v0.14; MSRV 1.57 (#524) - Bump
platformsdependency to v3.0 (#532) - Update to 2021 edition (#538)
- Use
Query::crate_scope()as theDefault(#544) - Bump
cvssdependency to v2.0 (#550) - Bump
cargo-lockdependency to v8.0 (#561) - Flatten
warningsmodule; renameWarningKind(#572) - Flatten
advisory::idmodule; renameIdKind(#573)
Removed
- Legacy database scopes (#541)
- Bump
-
0.25.115 Nov 2021 -
0.25.012 Nov 2021 withdrawn -
0.24.312 Sep 2021 -
0.24.220 Jul 2021 -
0.24.102 Jul 2021 withdrawn -
0.24.028 Jun 2021 withdrawn -
0.23.308 Mar 2021 -
0.23.207 Mar 2021 -
0.23.124 Feb 2021 withdrawn -
0.23.026 Jan 2021 withdrawnRelease notes
Open source →Added
- Advisory
referencesas a URL list - Support for omitting leading
[advisory]table thread-safetycategory
Changed
- Rename previous
referencesfield torelated - Use
urlcrate to parse metadata URL - Bump
smol_strto v0.1.17; MSRV 1.46+ - Replace
chronowithhumantime - Mark enums as non_exhaustive
- Use
SystemTimeinstead of agit::Timestamptype - Rename
fetchCargo feature togit - Rename
repository::GitRepositorytorepository::git::Repository
Removed
markdownfeature
- Advisory
-
0.23.0-pre23 Nov 2020 pre-releaseNothing published for this version
-
0.22.227 Oct 2020Release notes
Open source →What's Changed
- Disable embedded file timestamps in rust-embed by @kpcyrd in #1554
- rustsec: avoid warning about packages that are not from crates.io by @djc in #1573
- cargo-audit: add CLI option to skip checking for yanked crates by @djc in #1574
- cargo-audit: cap input size for audit bin by @glaziermag in #1516
- Show affected functions in binaries by @smoelius in #1542
- cargo-audit: when run with -q, suppress dependency trees by @djc in #1587
- build(deps): bump object from 0.38.1 to 0.39.0 by @dependabot[bot] in #1589
- Affected binary tweaks by @djc in #1588
-
0.22.126 Oct 2020 withdrawn -
0.22.025 Oct 2020 withdrawnRelease notes
Open source →Added
fetchfeature
Changed
- Bump
cargo-lockto v6;semverto v0.11 - Make
advisory.titleandadvisory.descriptionstruct fields - Remove support for the V2 advisory format
- Mark the
advisory::parsermodule aspub - Bump
cargo-editto 0.7.0 - Bump
crates-indexfrom 0.15.4 to 0.16.0 advisory: laxer function path handlinglinter: fully deprecateobsoletein favor ofyankedadvisory:markdownfeature andAdvisory::description_htmllinter: add support for V3 advisory format- MSRV 1.41+
- Bump
platformscrate to v1
Fixed
linter: correctly handle crates with dashes in names
Removed
advisory.metadata.titleandadvisory.metadata.description
-
0.22.0-pre325 Oct 2020 pre-releaseNothing published for this version
-
0.22.0-pre222 Oct 2020 pre-releaseNothing published for this version
-
0.22.0-pre01 Oct 2020 pre-releaseNothing published for this version
-
0.21.023 Jun 2020Release notes
Open source →Added
year,month, anddaymethods toadvisory::Dateunsoundinformational advisory kind
Changed
- Bump
crates-indexfrom 0.14 to 0.15 - Rename
obsoleteadvisories toyanked - Rename
warning::Kind::Informationalto::Notice - Make
warning::Kinda#[non_exhausive]enum - Make
Informationala#[non_exhausive]enum
Removed
- Legacy
patched_versionsandunaffected_versions
-
0.20.114 Jun 2020 -
0.20.006 May 2020 -
0.19.005 May 2020Release notes
Open source →- Refactor package scopes
- Prototype V3 Advisory Format
- Bump dependencies to link
libgit2dynamically - Add
WarningInfoand modifyWarningstruct - Drop support for the V1 advisory format
-
0.18.005 Feb 2020 -
0.17.123 Jan 2020 -
0.17.020 Jan 2020 withdrawnRelease notes
Open source →- Bump MSRV to 1.39
- Extract
cargo audit fixlogic intoFixer - Warn for yanked crates
- Add
vendored-opensslfeature - Support crate sources as a vulnerability query attribute
- Try to auto-detect proxy setting
-
0.16.013 Oct 2019 -
0.15.208 Oct 2019 -
0.15.108 Oct 2019Release notes
Open source →- linter: Add
informationalas an allowable[advisory]key - repository: Expose
authenticationmodule
- linter: Add
-
0.15.001 Oct 2019 -
0.14.126 Sep 2019 -
0.14.024 Sep 2019Release notes
Open source →- warning: Extract into module; make more like
Vulnerability - Upgrade to
cvsscrate v1.0 - Upgrade to
cargo-lockcrate v1.0
- warning: Extract into module; make more like
-
0.13.023 Sep 2019Release notes
Open source →- linter: Ensure advisory date's year matches year in advisory ID
- Use the
cargo-lockcrate - lockfile: Add (optional) DependencyGraph analysis
- Rename
rustsec::dbmodule torustsec::database - report: Generate warnings for selected informational advisories
- vulnerability: Add
affected_functions() - Add
rustsec::advisory::Linter - package: Parse dependencies from Cargo.lock
- Initial
reportmodule and built-in report-generating - Basic query support
- Index the
rustadvisory directory fromRustSec/advisory-db - Add first-class support for GitHub Security Advisories (GHSA)
- Re-vendor Cargo's git authentication code
support.tomlfor indicating supported versions- Add support for "informational" advisories
- Add
rustsec::advisory::Category - Refactor advisory types: add
[affected]and[versions]sections - advisory: Add (optional)
cvssfield with CVSS v3.1 score - Freshen deps: add
home, removedirectoriesandfailure - Improved handling of prereleases; MSRV 1.35+
- Add
VersionandVersionReqnewtypes