RUSTSEC-2021-0044

    Dashboard / Vulnerabilities / RUSTSEC-2021-0044

    RUSTSEC-2021-0044

    Published: 9 Feb 2021Last Modified: 8 Nov 2023

    Summary: Use after free possible in `uri::Formatter` on panic

    Details: Affected versions of this crate transmuted a `&str` to a `&'static str` before pushing it into a `StackVec`, this value was then popped later in the same function. This was assumed to be safe because the reference would be valid while the method's stack was active. In between the push and the pop, however, a function `f` was called that could invoke a user provided function. If the user provided panicked, then the assumption used by the function was no longer true and the transmute to `&'static` would create an illegal static reference to the string. This could result in a freed string being used during (such as in a `Drop` implementation) or after (e.g through `catch_unwind`) the panic unwinding. This flaw was corrected in commit [e325e2f](https://github.com/SergioBenitez/Rocket/commit/e325e2fce4d9f9f392761e9fb58b418a48cef8bb) by using a guard object to ensure that the `&'static str` was dropped inside the function.

    Affected packages

    Package

    Name: rocket

    Purl: pkg:cargo/rocket

    Affected ranges

    Type: SEMVER

    Events:

    Introduced- 0.0.0-0
    Fixed -0.4.7

    Affected versions

    Common Vulnerability Scoring System

    Attack Vector
    Network
    Adjacent
    Local
    Physical
    Privileges Required
    None
    Low
    High
    User Interaction
    None
    Required
    Scope
    Unchanged
    Changed
    Confidentiality
    None
    Low
    High
    Integrity
    None
    Low
    High
    Availability
    None
    Low
    High
    RUSTSEC-2021-0044 | CVE-DB