GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration
rustsec-2026-0275
Vulnerability from osv_rustsec
Published
2026-08-15 12:00
Modified
2026-09-01 19:23
Summary
Legacy `azure_core` writes the `authorization` header value to logs
Details

Applications built on the legacy Azure SDK for Rust (azure_core 0.21.0 and earlier) write the value of the outgoing authorization header to their logs whenever debug-level logging is enabled, and in every affected version also at trace level. The leaked values are live credentials — Microsoft Entra ID bearer tokens, Azure Storage SharedKey signatures, and SAS tokens — and anyone with read access to the logs can replay them until they expire (CWE-532).

Versions 0.22.0 and later, which are the rewritten and currently supported SDK, do not contain the affected code.

Affected versions

Every published legacy version except 0.2.0 writes the authorization header value to logs: 0.1.1 (2022-01-25), and 0.2.1 through 0.21.0 (2024-10-15).

Mitigation

  • Upgrade to azure_core 1.0.0 or newer.
  • If you are unable to upgrade, raise the log level above debug for the impacted crates or submit a feature request for missing crates built on azure_core 1.0.0 or newer.
  • Treat logs produced by an affected build as credential-bearing: rotate any long-lived secret that authenticated a request while debug logging was on.

Coordination

The finding was reported to the Microsoft Security Response Center (VULN-211331), which determined that it does not meet the Microsoft Security Servicing Criteria definition of a security vulnerability.

It was then disclosed publicly as Azure/azure-sdk-for-rust#5074 on 2026-08-15, asking the maintainers to confirm the behavior so that an advisory could be filed for the legacy crates. A maintainer replied on 2026-08-26 and closed the issue as not planned: the legacy branch is unsupported, there are no plans to update it, and users should move to crates built on azure_core 1.0.0 or newer.


{
  "affected": [
    {
      "database_specific": {
        "categories": [],
        "cvss": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N",
        "informational": null
      },
      "ecosystem_specific": {
        "affected_functions": null,
        "affects": {
          "arch": [],
          "functions": [],
          "os": []
        }
      },
      "package": {
        "ecosystem": "crates.io",
        "name": "azure_core",
        "purl": "pkg:cargo/azure_core"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0.0.0-0"
            },
            {
              "fixed": "0.2.0"
            },
            {
              "introduced": "0.2.1-0"
            },
            {
              "fixed": "0.22.0"
            }
          ],
          "type": "SEMVER"
        }
      ],
      "versions": []
    }
  ],
  "aliases": [],
  "database_specific": {
    "license": "CC0-1.0"
  },
  "details": "Applications built on the legacy Azure SDK for Rust (`azure_core` 0.21.0 and\nearlier) write the value of the outgoing `authorization` header to their logs\nwhenever debug-level logging is enabled, and in every affected version also at\ntrace level. The leaked values are live credentials \u2014 Microsoft Entra\nID bearer tokens, Azure Storage SharedKey signatures, and SAS tokens \u2014 and\nanyone with read access to the logs can replay them until they expire\n(CWE-532).\n\nVersions 0.22.0 and later, which are the rewritten and currently supported\nSDK, do not contain the affected code.\n\n## Affected versions\n\nEvery published legacy version except 0.2.0 writes the `authorization` header\nvalue to logs: 0.1.1 (2022-01-25), and 0.2.1 through 0.21.0 (2024-10-15).\n\n## Mitigation\n\n- Upgrade to `azure_core` 1.0.0 or newer.\n- If you are unable to upgrade, raise the log level above debug for the\n  impacted crates or submit a feature request for missing crates built on `azure_core` 1.0.0 or newer.\n- Treat logs produced by an affected build as credential-bearing: rotate any\n  long-lived secret that authenticated a request while debug logging was on.\n\n## Coordination\n\nThe finding was reported to the Microsoft Security Response Center\n(VULN-211331), which determined that it does not meet the Microsoft Security\nServicing Criteria definition of a security vulnerability.\n\nIt was then disclosed publicly as [Azure/azure-sdk-for-rust#5074][issue] on\n2026-08-15, asking the maintainers to confirm the behavior so that an advisory\ncould be filed for the legacy crates. A maintainer replied on 2026-08-26 and\nclosed the issue as not planned: the `legacy` branch is unsupported, there are\nno plans to update it, and users should move to crates built on `azure_core`\n1.0.0 or newer.\n\n[pr]: https://github.com/Azure/azure-sdk-for-rust/pull/1699\n[issue]: https://github.com/Azure/azure-sdk-for-rust/issues/5074",
  "id": "RUSTSEC-2026-0275",
  "modified": "2026-09-01T19:23:55Z",
  "published": "2026-08-15T12:00:00Z",
  "references": [
    {
      "type": "PACKAGE",
      "url": "https://crates.io/crates/azure_core"
    },
    {
      "type": "ADVISORY",
      "url": "https://rustsec.org/advisories/RUSTSEC-2026-0275.html"
    },
    {
      "type": "REPORT",
      "url": "https://github.com/Azure/azure-sdk-for-rust/issues/5074"
    },
    {
      "type": "WEB",
      "url": "https://github.com/Azure/azure-sdk-for-rust/pull/1699"
    },
    {
      "type": "WEB",
      "url": "https://github.com/Azure/azure-sdk-for-rust/commit/7a0e20c1e002ce06da0f3ec8795ef1529862ea97"
    }
  ],
  "related": [],
  "severity": [
    {
      "score": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N",
      "type": "CVSS_V3"
    }
  ],
  "summary": "Legacy `azure_core` writes the `authorization` header value to logs"
}



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…