Quick answers
- Is CVE-2018-25024 exploited in the wild?
- No. Junglewise Threat Intelligence has no report of CVE-2018-25024 being exploited in the wild.
- How severe is CVE-2018-25024?
- Critical severity, with a CVSS score of 9.8, published 6 January 2022.
- Which products and versions are affected?
- actix-web (crates.io) < 0.7.19, SEMVER:introduced=0,fixed=0.7.19, SEMVER:introduced=0.0.0-0,fixed=0.7.20-0.
- Is there a fix for CVE-2018-25024?
- Yes. actix-web (crates.io): upgrade to 0.7.19, 0.7.20-0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
- How is CVE-2018-25024 attacked?
- It is attacked over the network, in a software library.
- Am I affected by CVE-2018-25024?
- Check whether you run actix-web (crates.io) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.
How to fix
- actix-web (crates.io): upgrade to 0.7.19, 0.7.20-0 or later
cargo update -p actix-web
Technical details
The actix-web crate prior to version 0.7.19 contains several unsound uses of 'unsafe' Rust code. Specifically, the framework was found to unsoundly coerce immutable references into mutable references, incorrectly extend the lifetimes of strings, and inappropriately apply the 'Send' marker trait to objects that are not thread-safe. These flaws break Rust's memory safety guarantees, potentially leading to out-of-bounds writes and use-after-free vulnerabilities. An attacker could exploit these issues via network requests to cause memory corruption, leading to arbitrary code execution or a denial-of-service (DoS) condition. The issues were addressed through a significant refactoring of the codebase to remove or secure unsafe blocks.
Affected products
- actix actix-web < 0.7.19
Identifiers
- CVE-2018-25024
- GHSA-7x36-h62w-vw65
- GHSA-9qj6-4rfq-vm84
- GHSA-fgfm-hqjw-3265
- GHSA-w65j-g6c7-g3m4
- RUSTSEC-2018-0019
Timeline
- 2018-06-08: disclosed: Initial tracking issue for unsound unsafe usage opened
- 2018-06-08: patched: Version 0.7.19 released with fixes
- 2021-12-27: advisory: NVD published CVE-2018-25024
- 2022-01-06: advisory: GitHub Advisory published