RUSTSEC-2023-0006

Source
https://rustsec.org/advisories/RUSTSEC-2023-0006
Import Source
https://github.com/rustsec/advisory-db/blob/osv/crates/RUSTSEC-2023-0006.json
JSON Data
https://api.osv.dev/v1/vulns/RUSTSEC-2023-0006
Aliases
Published
2023-02-07T12:00:00Z
Modified
2023-11-08T04:11:06.998300Z
Summary
X.400 address type confusion in X.509 `GeneralName`
Details

There is a type confusion vulnerability relating to X.400 address processing inside an X.509 GeneralName. X.400 addresses were parsed as an ASN1_STRING but the public structure definition for GENERAL_NAME incorrectly specified the type of the x400Address field as ASN1_TYPE. This field is subsequently interpreted by the OpenSSL function GENERAL_NAME_cmp as an ASN1_TYPE rather than an ASN1_STRING.

When CRL checking is enabled (i.e. the application sets the X509_V_FLAG_CRL_CHECK flag), this vulnerability may allow an attacker to pass arbitrary pointers to a memcmp call, enabling them to read memory contents or enact a denial of service. In most cases, the attack requires the attacker to provide both the certificate chain and CRL, neither of which need to have a valid signature. If the attacker only controls one of these inputs, the other input must already contain an X.400 address as a CRL distribution point, which is uncommon. As such, this vulnerability is most likely to only affect applications which have implemented their own functionality for retrieving CRLs over a network.

References

Affected packages

crates.io / openssl-src

Package

Affected ranges

Type
SEMVER
Events
Introduced
0.0.0-0
Fixed
111.25.0
Introduced
300.0.0
Fixed
300.0.12

Ecosystem specific

{
    "affected_functions": null,
    "affects": {
        "os": [],
        "functions": [],
        "arch": []
    }
}

Database specific

{
    "cvss": null,
    "informational": null,
    "categories": [
        "denial-of-service",
        "memory-exposure"
    ]
}