GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration
rustsec-2026-0242
Vulnerability from osv_rustsec
Published
2026-08-09 12:00
Modified
2026-08-09 12:34
Summary
Safe ErrorRegistry APIs can cause undefined behavior
Details

All published versions of dcrypt-api before 2.0.0 exposed safe ErrorRegistry operations that could trigger undefined behavior when the default std feature was enabled.

Stored Box<E> values were erased to raw pointers and later deallocated as Box<()>. The get_error<E> operation also performed an unchecked cast to a caller-selected type. Finally, concurrent replacement or clearing could free a value while another thread cloned it. Ordinary safe Rust could therefore cause mismatched deallocation, type confusion, and use-after-free. Crates that re-exported this API are affected transitively.

Version 2.0.0 replaces the raw pointers with owned Box<dyn Any + Send> values behind a mutex, performs checked downcasts, and uses a mutation generation so concurrent stores and clears win safely. There is no reliable workaround while calling the affected registry API. Upgrade to 2.0.0 or later and avoid process-global error state where possible.


{
  "affected": [
    {
      "database_specific": {
        "categories": [
          "memory-corruption",
          "thread-safety"
        ],
        "cvss": null,
        "informational": null
      },
      "ecosystem_specific": {
        "affected_functions": null,
        "affects": {
          "arch": [],
          "functions": [],
          "os": []
        }
      },
      "package": {
        "ecosystem": "crates.io",
        "name": "dcrypt-api",
        "purl": "pkg:cargo/dcrypt-api"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0.0.0-0"
            },
            {
              "fixed": "2.0.0"
            }
          ],
          "type": "SEMVER"
        }
      ],
      "versions": []
    }
  ],
  "aliases": [
    "GHSA-7hc7-h3f2-r4j6"
  ],
  "database_specific": {
    "license": "CC0-1.0"
  },
  "details": "All published versions of `dcrypt-api` before 2.0.0 exposed safe\n`ErrorRegistry` operations that could trigger undefined behavior when the\ndefault `std` feature was enabled.\n\nStored `Box\u003cE\u003e` values were erased to raw pointers and later deallocated as\n`Box\u003c()\u003e`. The `get_error\u003cE\u003e` operation also performed an unchecked cast to a\ncaller-selected type. Finally, concurrent replacement or clearing could free a\nvalue while another thread cloned it. Ordinary safe Rust could therefore cause\nmismatched deallocation, type confusion, and use-after-free. Crates that\nre-exported this API are affected transitively.\n\nVersion 2.0.0 replaces the raw pointers with owned `Box\u003cdyn Any + Send\u003e` values\nbehind a mutex, performs checked downcasts, and uses a mutation generation so\nconcurrent stores and clears win safely. There is no reliable workaround while\ncalling the affected registry API. Upgrade to 2.0.0 or later and avoid\nprocess-global error state where possible.",
  "id": "RUSTSEC-2026-0242",
  "modified": "2026-08-09T12:34:06Z",
  "published": "2026-08-09T12:00:00Z",
  "references": [
    {
      "type": "PACKAGE",
      "url": "https://crates.io/crates/dcrypt-api"
    },
    {
      "type": "ADVISORY",
      "url": "https://rustsec.org/advisories/RUSTSEC-2026-0242.html"
    },
    {
      "type": "ADVISORY",
      "url": "https://github.com/ioi-foundation/dcrypt/security/advisories/GHSA-7hc7-h3f2-r4j6"
    },
    {
      "type": "WEB",
      "url": "https://github.com/ioi-foundation/dcrypt/commit/c99cc86f0ee353010cd202cbcd2c310371b0bbb8"
    },
    {
      "type": "WEB",
      "url": "https://github.com/ioi-foundation/dcrypt/releases/tag/v2.0.0"
    }
  ],
  "related": [],
  "severity": [],
  "summary": "Safe ErrorRegistry APIs can cause undefined behavior"
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…