Staging Environment: Content and features may be unstable or change without notice.
Search for packages
Package details: pkg:deb/debian/rust-cargo@0.86.0-2?distro=trixie
purl pkg:deb/debian/rust-cargo@0.86.0-2?distro=trixie
Vulnerabilities affecting this package (0)
Vulnerability Summary Fixed by
This package is not known to be affected by vulnerabilities.
Vulnerabilities fixed by this package (5)
Vulnerability Summary Aliases
VCID-19kb-chr9-x7fm Malicious dependencies can inject arbitrary JavaScript into cargo-generated timing reports The Rust Security Response WG was notified that Cargo did not escape Cargo feature names when including them in the report generated by `cargo build --timings`. A malicious package included as a dependency may inject nearly arbitrary HTML here, potentially leading to XSS if the report is subsequently uploaded somewhere. The severity of this vulnerability is "low" for users relying on dependencies from git, local paths, or alternative registries. Users who solely depend on crates.io are unaffected. Note that **by design** Cargo allows code execution at build time, due to build scripts and procedural macros. The vulnerability in this advisory allows performing a subset of the possible damage in a harder to track down way. Your dependencies must still be trusted if you want to be protected from attacks, as it's possible to perform the same attacks with build scripts and procedural macros. # Overview Rust 1.60.0 [introduced](https://blog.rust-lang.org/2022/04/07/Rust-1.60.0.html#cargo---timings) `cargo build --timings`, which produces a report of how long the different steps of the build process took. It includes lists of Cargo features for each crate. Prior to Rust 1.72, Cargo feature names were allowed to contain almost any characters (with some exceptions as used by the feature syntax), but it would produce a future incompatibility warning about them [since Rust 1.49](https://github.com/rust-lang/cargo/pull/8814). crates.io is far more stringent about what it considers a valid feature name and has not allowed such feature names. As the feature names defined in the `Cargo.toml` file were included unescaped in the timings report, they could be used to inject Javascript into the page. For example with a feature name like `features = ["<img src='' onerror=alert(0)"]`. If this report were subsequently uploaded to a domain that uses credentials, the injected Javascript could access resources from the website visitor. This issue was fixed by [turning the future incompatibility warning into an error](https://github.com/rust-lang/cargo/pull/12291). # Affected versions The vulnerability is present in all versions of Cargo after and including 1.60.0. Rust 1.72, to be released on August 24, will include a fix for it. Users whose dependencies are entirely on crates.io are unaffected. # Mitigations We recommend users always excercise care in which package they download, by only including trusted dependencies in their projects. Please note that even with these vulnerabilities fixed, by design Cargo allows arbitrary code execution at build time thanks to build scripts and procedural macros: a malicious dependency will be able to cause damage regardless of these vulnerabilities. crates.io has server-side checks preventing this attack, and there are no packages on crates.io exploiting these vulnerabilities. crates.io users still need to excercise care in choosing their dependencies though, as remote code execution is allowed by design there as well. CVE-2023-40030
GHSA-wrrj-h57r-vx9p
VCID-fa6z-bb5y-jbg8 Cargo not respecting umask when extracting crate archives The Rust Security Response WG was notified that Cargo did not respect the umask when extracting crate archives on UNIX-like systems. If the user downloaded a crate containing files writeable by any local user, another local user could exploit this to change the source code compiled and executed by the current user. This vulnerability has been assigned CVE-2023-38497. ## Overview In UNIX-like systems, each file has three sets of permissions: for the user owning the file, for the group owning the file, and for all other local users. The "[umask][1]" is configured on most systems to limit those permissions during file creation, removing dangerous ones. For example, the default umask on macOS and most Linux distributions only allow the user owning a file to write to it, preventing the group owning it or other local users from doing the same. When a dependency is downloaded by Cargo, its source code has to be extracted on disk to allow the Rust compiler to read as part of the build. To improve performance, this extraction only happens the first time a dependency is used, caching the pre-extracted files for future invocations. Unfortunately, it was discovered that Cargo did not respect the umask during extraction, and propagated the permissions stored in the crate archive as-is. If an archive contained files writeable by any user on the system (and the system configuration didn't prevent writes through other security measures), another local user on the system could replace or tweak the source code of a dependency, potentially achieving code execution the next time the project is compiled. ## Affected Versions All Rust versions before 1.71.1 on UNIX-like systems (like macOS and Linux) are affected. Note that additional system-dependent security measures configured on the local system might prevent the vulnerability from being exploited. Users on Windows and other non-UNIX-like systems are not affected. ## Mitigations We recommend all users to update to Rust 1.71.1, which will be released later today, as it fixes the vulnerability by respecting the umask when extracting crate archives. If you build your own toolchain, patches for 1.71.0 source tarballs are [available here][2]. To prevent existing cached extractions from being exploitable, the Cargo binary included in Rust 1.71.1 or later will purge the caches it tries to access if they were generated by older Cargo versions. If you cannot update to Rust 1.71.1, we recommend configuring your system to prevent other local users from accessing the Cargo directory, usually located in `~/.cargo`: ``` chmod go= ~/.cargo ``` ## Acknowledgments We want to thank Addison Crump for responsibly disclosing this to us according to the [Rust security policy][3]. We also want to thank the members of the Rust project who helped us disclose the vulnerability: Weihang Lo for developing the fix; Eric Huss for reviewing the fix; Pietro Albini for writing this advisory; Pietro Albini, Manish Goregaokar and Josh Stone for coordinating this disclosure; Josh Triplett, Arlo Siemen, Scott Schafer, and Jacob Finkelman for advising during the disclosure. [1]: https://en.wikipedia.org/wiki/Umask [2]: https://github.com/rust-lang/wg-security-response/tree/main/patches/CVE-2023-38497 [3]: https://www.rust-lang.org/policies/security CVE-2023-38497
GHSA-j3xp-wfr4-hx87
VCID-n4fu-fzu3-sbex Cargo did not verify SSH host keys The Rust Security Response WG was notified that Cargo did not perform SSH host key verification when cloning indexes and dependencies via SSH. An attacker could exploit this to perform man-in-the-middle (MITM) attacks. This vulnerability has been assigned CVE-2022-46176. ## Overview When an SSH client establishes communication with a server, to prevent MITM attacks the client should check whether it already communicated with that server in the past and what the server's public key was back then. If the key changed since the last connection, the connection must be aborted as a MITM attack is likely taking place. It was discovered that Cargo never implemented such checks, and performed no validation on the server's public key, leaving Cargo users vulnerable to MITM attacks. ## Affected Versions All Rust versions containing Cargo before 1.66.1 are vulnerable (prior to 0.67.1 for the crates.io package). Note that even if you don't explicitly use SSH for alternate registry indexes or crate dependencies, you might be affected by this vulnerability if you have configured git to replace HTTPS connections to GitHub with SSH (through git's [`url.<base>.insteadOf`][1] setting), as that'd cause you to clone the crates.io index through SSH. ## Mitigations We will be releasing Rust 1.66.1 today, 2023-01-10, changing Cargo to check the SSH host key and abort the connection if the server's public key is not already trusted. We recommend everyone to upgrade as soon as possible. Patch files for Rust 1.66.0 are also available [here][2] for custom-built toolchains. For the time being Cargo will not ask the user whether to trust a server's public key during the first connection. Instead, Cargo will show an error message detailing how to add that public key to the list of trusted keys. Note that this might break your automated builds if the hosts you clone dependencies or indexes from are not already trusted. If you can't upgrade to Rust 1.66.1 yet, we recommend configuring Cargo to use the `git` CLI instead of its built-in git support. That way, all git network operations will be performed by the `git` CLI, which is not affected by this vulnerability. You can do so by adding this snippet to your [Cargo configuration file](https://doc.rust-lang.org/cargo/reference/config.html): ```toml [net] git-fetch-with-cli = true ``` ## Acknowledgments Thanks to the Julia Security Team for disclosing this to us according to our [security policy][3]! We also want to thank the members of the Rust project who contributed to fixing this issue. Thanks to Eric Huss and Weihang Lo for writing and reviewing the patch, Pietro Albini for coordinating the disclosure and writing this advisory, and Josh Stone, Josh Triplett and Jacob Finkelman for advising during the disclosure. [1]: https://git-scm.com/docs/git-config#Documentation/git-config.txt-urlltbasegtinsteadOf [2]: https://github.com/rust-lang/wg-security-response/tree/main/patches/CVE-2022-46176 [3]: https://www.rust-lang.org/policies/security CVE-2022-46176
GHSA-r5w3-xm58-jv6j
VCID-r9ky-9nbm-yucw Multiple vulnerabilities have been discovered in Rust, the worst of which could result in denial of service. CVE-2022-36113
GHSA-rfj2-q3h3-hm5j
VCID-ssct-y25y-3qbw Multiple vulnerabilities have been discovered in Rust, the worst of which could result in denial of service. CVE-2022-36114
GHSA-2hvr-h6gw-qrxp

Date Actor Action Vulnerability Source VulnerableCode Version
2026-04-03T07:52:28.483560+00:00 Debian Importer Fixing VCID-19kb-chr9-x7fm https://security-tracker.debian.org/tracker/data/json 38.1.0
2026-04-03T07:52:28.432626+00:00 Debian Importer Fixing VCID-fa6z-bb5y-jbg8 https://security-tracker.debian.org/tracker/data/json 38.1.0
2026-04-03T07:52:28.380608+00:00 Debian Importer Fixing VCID-n4fu-fzu3-sbex https://security-tracker.debian.org/tracker/data/json 38.1.0
2026-04-03T07:52:28.344307+00:00 Debian Importer Fixing VCID-ssct-y25y-3qbw https://security-tracker.debian.org/tracker/data/json 38.1.0
2026-04-03T07:52:28.303529+00:00 Debian Importer Fixing VCID-r9ky-9nbm-yucw https://security-tracker.debian.org/tracker/data/json 38.1.0