Cloudanix VulnDB

CVE-2024-35255

Medium · 5.5

CVSS

5.5

EPSS

0.8%

Published

Jun 11, 2024

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

Some Android apps using an older Microsoft sign-in component could let another app on the same device improperly access sensitive login information.

Chainable
Exploitation
Local Privilege
Attacker needs
Low Privilege
Complexity
Moderate
Impact
Privilege Gain
Component
Library
Class
Race Condition
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

This is a local elevation-of-privilege/confidentiality issue in Microsoft Authentication Library/Azure Identity Library code for Android caused by a race condition. A local attacker with low privileges on the same Android device could potentially win a timing window during authentication-library operations and gain access to sensitive authentication material or identity-related data that should be isolated from that attacker. The CVSS vector indicates local access is required, exploitation complexity is low, no user interaction is required, scope is unchanged, and the primary impact is high confidentiality exposure rather than integrity or availability loss.

Why it matters to the business

Applications that embed a vulnerable version of the Microsoft Authentication Library for Android may expose user authentication data on a compromised or shared device, which can lead to account access, privacy violations, incident response costs, and loss of trust in mobile authentication flows. The issue is not currently in CISA KEV, is not known to be used in ransomware campaigns, has low EPSS probability, and has no reported mature public exploit, so it is generally lower urgency than remotely exploitable internet-facing flaws; however, it has been public for a long time and should be removed from supported mobile applications during normal dependency maintenance.

How an attack unfolds

An attacker first needs local code execution or an app-level foothold on the same Android device, such as through a malicious installed application, a compromised device, or another local execution path. The attacker then targets an application that uses the vulnerable Microsoft Authentication Library for Android. By repeatedly interacting with, monitoring, or racing authentication-library operations, the attacker attempts to trigger the vulnerable timing condition. If the race is won, the attacker may gain access to sensitive identity or token-related information that the library should have protected. The attacker can then use the exposed data to impersonate the affected user or access downstream services, subject to token validity, conditional access controls, device binding, and server-side session protections.

How to fix it

Update applications that use azuread/microsoft-authentication-library-for-android to a version that includes the upstream fix. The fixed upstream Git commit is 3da30567e68ec62987d2c57d7967135fb3883fc5. If consuming MSAL Android through a package manager rather than directly from Git, upgrade to the first released package version that contains this commit or any later supported version. Rebuild and redeploy affected Android applications after updating the dependency; simply updating source control is not sufficient for already-distributed mobile apps. If immediate upgrade is not possible, reduce exposure by limiting use on unmanaged or rooted devices, enforcing mobile device compliance and app protection policies, minimizing token lifetimes where practical, requiring strong conditional access, and revoking sessions for users/devices suspected of compromise.

How to confirm the fix worked

Confirm the application dependency tree no longer resolves to vulnerable MSAL Android code and that the source or binary includes the fix corresponding to commit 3da30567e68ec62987d2c57d7967135fb3883fc5 or a later release. For source builds, inspect lockfiles, Gradle dependency output, vendored source, and software composition analysis results. For compiled Android artifacts, inspect the APK/AAB software bill of materials or decompile/scan the packaged libraries to confirm the updated Microsoft Authentication Library is present. Perform regression testing of sign-in, token acquisition, token refresh, account switching, brokered authentication if used, and sign-out. Validate exposure reduction by ensuring vulnerable application versions are no longer distributed through app stores, MDM/MAM channels, or internal release pipelines.

Typical attack path

  1. Gain local execution capability on the same Android device as a target application using the vulnerable authentication library.
  2. Identify that a target mobile application includes the affected Microsoft Authentication Library for Android code path.
  3. Trigger or wait for authentication-library activity such as sign-in, token acquisition, account selection, or token refresh.
  4. Exploit the race condition by manipulating timing around the vulnerable operation.
  5. Recover sensitive authentication or identity data exposed through the race condition.
  6. Use the recovered data to attempt access to protected services or user resources before tokens expire or are revoked.

How to detect it

There are no widely published, unique exploit indicators for this issue, and successful exploitation may not leave a distinctive application log entry because it is a local library race condition. Detection should combine exposure analysis with identity and endpoint telemetry. Review mobile application inventories, SBOMs, Gradle dependency reports, and SCA findings to identify apps built with vulnerable MSAL Android code. For possible prior exploitation, examine Microsoft Entra ID sign-in logs, token issuance and refresh activity, conditional access results, device identifiers, user agents, and impossible-travel or unfamiliar-device alerts for users who used vulnerable app versions. On managed Android endpoints, review EDR/MDM telemetry for malicious or sideloaded applications, rooted or tampered devices, suspicious inter-process behavior, accessibility abuse, overlay abuse, credential/token theft tooling, and abnormal access to application-private storage. Application teams should review crash logs and debug logs around authentication flows for unusual race-related errors, repeated token acquisition attempts, unexpected account context changes, or authentication cache anomalies, while avoiding collection of sensitive tokens in logs. Treat suspicious identity events as potentially token-related: revoke sessions, rotate credentials where applicable, require reauthentication, and correlate timing with vulnerable app usage.

What your security team should do

  • Inventory Android applications that include Microsoft Authentication Library for Android or Azure Identity authentication components.
  • Prioritize updating any supported app that uses azuread/microsoft-authentication-library-for-android to a release containing commit 3da30567e68ec62987d2c57d7967135fb3883fc5 or later.
  • Rebuild, sign, and redistribute patched mobile application versions; track adoption and force upgrade where business risk justifies it.
  • Use software composition analysis and mobile build pipeline checks to prevent reintroduction of vulnerable MSAL Android versions.
  • Review identity telemetry for anomalous sign-ins, token use, and device changes associated with users of vulnerable mobile app versions.
  • Apply compensating controls for high-risk users, including conditional access, device compliance enforcement, app protection policies, session revocation, and shorter refresh-token validity where appropriate.
  • Because there is no known KEV listing, ransomware association, or mature public exploit, handle as a dependency remediation item with elevated attention for apps used on unmanaged, shared, or high-risk Android devices.

The record

Azure Identity Libraries and Microsoft Authentication Library Elevation of Privilege Vulnerability

Affected packages

Ecosystem Package Introduced Fixed
Go github.com/Azure/azure-sdk-for-go/sdk/azidentity 0 1.6.0
Go github.com/Azure/azure-sdk-for-go/sdk/azidentity 0 1.6.0-beta.4.0.20240610221955-50774cd97099
Maven com.azure:azure-identity 0 1.12.2
Maven com.microsoft.azure:msal4j 1.14.4-beta 1.15.1
NuGet Azure.Identity 0 1.11.4
NuGet Microsoft.Identity.Client 4.49.1 4.60.4
NuGet Microsoft.Identity.Client 4.61.0 4.61.3
PyPI azure-identity 0 1.16.1
npm @azure/identity 0 4.2.1
npm @azure/msal-node 2.7.0 2.9.2
Chainguard airflow 0 2.9.2-r0
Chainguard airflow-bitnami-compat 0 2.9.2-r0
Chainguard airflow-compat 0 2.9.2-r0
Chainguard apache-nifi 0 2.6.0-r2
Chainguard apache-nifi-compat 0 2.6.0-r2
Chainguard apache-nifi-toolkit 0 2.6.0-r2
Chainguard argo-cd-2.13 0 2.13.0-r1
Chainguard argo-cd-2.13-compat 0 2.13.0-r1
Chainguard argo-cd-2.13-repo-server 0 2.13.0-r1
Chainguard argo-cd-fips-2.13 0 2.13.0-r1
Chainguard argo-cd-fips-2.13-compat 0 2.13.0-r1
Chainguard argo-cd-fips-2.13-repo-server 0 2.13.0-r1
Chainguard argo-events 0 1.9.2-r1
Chainguard argo-events-compat 0 1.9.2-r1
Chainguard argo-events-fips 0 1.9.2-r1
Chainguard argo-events-fips-compat 0 1.9.2-r1
Chainguard argo-workflow-cli 0 3.5.7-r2
Chainguard argo-workflow-cli-fips 0 3.5.7-r2
Chainguard argo-workflow-controller 0 3.5.7-r2
Chainguard argo-workflow-controller-compat 0 3.5.7-r2
Chainguard argo-workflow-controller-compat-fips 0 3.5.7-r2
Chainguard argo-workflow-controller-fips 0 3.5.7-r2
Chainguard argo-workflow-executor 0 3.5.7-r2
Chainguard argo-workflow-executor-compat 0 3.5.7-r2
Chainguard argo-workflow-executor-compat-fips 0 3.5.7-r2
Chainguard argo-workflow-executor-fips 0 3.5.7-r2
Chainguard argo-workflows 0 3.5.7-r2
Chainguard argo-workflows-fips 0 3.5.7-r2
Chainguard argo-workflows-known-hosts 0 3.5.7-r2
Chainguard argo-workflows-known-hosts-fips 0 3.5.7-r2
Chainguard argo-workflows-ui 0 3.5.7-r2
Chainguard bank-vaults 0 1.20.4-r15
Chainguard bank-vaults-fips 0 1.20.4-r12
Chainguard bank-vaults-template 0 1.20.4-r15
Chainguard bank-vaults-template-fips 0 1.20.4-r12
Chainguard boring-registry 0 0.14.0-r3
Chainguard boring-registry-fips 0 0.14.0-r5
Chainguard buildctl 0 0.14.0-r1
Chainguard buildkitd 0 0.14.0-r1
Chainguard cert-manager-1.14 0 1.14.6-r1
Chainguard cert-manager-1.14-acmesolver 0 1.14.6-r1
Chainguard cert-manager-1.14-cainjector 0 1.14.6-r1
Chainguard cert-manager-1.14-controller 0 1.14.6-r1
Chainguard cert-manager-1.14-startupapicheck 0 1.14.6-r1
Chainguard cert-manager-1.14-webhook 0 1.14.6-r1
Chainguard cert-manager-1.15 0 1.15.0-r1
Chainguard cert-manager-1.15-acmesolver 0 1.15.0-r1
Chainguard cert-manager-1.15-cainjector 0 1.15.0-r1
Chainguard cert-manager-1.15-controller 0 1.15.0-r1
Chainguard cert-manager-1.15-startupapicheck 0 1.15.0-r1
Chainguard cert-manager-1.15-webhook 0 1.15.0-r1
Chainguard cert-manager-acmesolver-1.15 0 1.15.0-r1
Chainguard cert-manager-acmesolver-1.15-bitnami-compat 0 1.15.0-r1
Chainguard cert-manager-acmesolver-1.15-iamguarded-compat 0 1.15.0-r1
Chainguard cert-manager-acmesolver-fips-1.15 0 1.15.0-r1
Chainguard cert-manager-cainjector-1.15 0 1.15.0-r1
Chainguard cert-manager-cainjector-1.15-bitnami-compat 0 1.15.0-r1
Chainguard cert-manager-cainjector-1.15-iamguarded-compat 0 1.15.0-r1
Chainguard cert-manager-cainjector-fips-1.15 0 1.15.0-r1
Chainguard cert-manager-controller-1.15 0 1.15.0-r1
Chainguard cert-manager-controller-1.15-bitnami-compat 0 1.15.0-r1
Chainguard cert-manager-controller-1.15-iamguarded-compat 0 1.15.0-r1
Chainguard cert-manager-controller-fips-1.15 0 1.15.0-r1
Chainguard cert-manager-fips-1.14 0 1.14.6-r1
Chainguard cert-manager-fips-1.14-acmesolver 0 1.14.6-r1
Chainguard cert-manager-fips-1.14-cainjector 0 1.14.6-r1
Chainguard cert-manager-fips-1.14-cmctl 0 1.14.6-r1
Chainguard cert-manager-fips-1.14-controller 0 1.14.6-r1
Chainguard cert-manager-fips-1.14-startupapicheck 0 1.14.6-r1
Chainguard cert-manager-fips-1.14-webhook 0 1.14.6-r1
Chainguard cert-manager-fips-1.15 0 1.15.0-r1
Chainguard cert-manager-fips-1.15-acmesolver 0 1.15.0-r1
Chainguard cert-manager-fips-1.15-cainjector 0 1.15.0-r1
Chainguard cert-manager-fips-1.15-controller 0 1.15.0-r1
Chainguard cert-manager-fips-1.15-startupapicheck 0 1.15.0-r1
Chainguard cert-manager-fips-1.15-webhook 0 1.15.0-r1
Chainguard cert-manager-startupapicheck-1.15 0 1.15.0-r1
Chainguard cert-manager-startupapicheck-fips-1.15 0 1.15.0-r1
Chainguard cert-manager-webhook-1.15 0 1.15.0-r1
Chainguard cert-manager-webhook-1.15-bitnami-compat 0 1.15.0-r1
Chainguard cert-manager-webhook-1.15-iamguarded-compat 0 1.15.0-r1
Chainguard cert-manager-webhook-fips-1.15 0 1.15.0-r1
Chainguard chezmoi 0 2.49.0-r1
Chainguard cluster-autoscaler-1.28 0 1.28.7-r1
Chainguard cluster-autoscaler-1.28-compat 0 1.28.7-r1
Chainguard cluster-autoscaler-1.30 0 1.30.3-r1
Chainguard cluster-autoscaler-1.30-compat 0 1.30.3-r1
Chainguard cluster-autoscaler-1.31 0 1.31.5-r1
Chainguard cluster-autoscaler-1.31-compat 0 1.31.5-r1
Chainguard cluster-autoscaler-1.32 0 1.32.0-r1
Chainguard cluster-autoscaler-1.32-compat 0 1.32.0-r1
Chainguard cluster-autoscaler-fips-1.30 0 1.30.3-r1
Chainguard cluster-autoscaler-fips-1.30-compat 0 1.30.3-r1
Chainguard cluster-autoscaler-fips-1.31 0 1.31.2-r0
Chainguard cluster-autoscaler-fips-1.31-compat 0 1.31.2-r0
Chainguard cluster-autoscaler-fips-1.32 0 1.32.0-r1
Chainguard cluster-autoscaler-fips-1.32-compat 0 1.32.0-r1
Chainguard cmctl-1.14 0 1.14.6-r1
Chainguard cmctl-1.14-fips 0 1.14.6-r1
Chainguard cortex 0 1.17.1-r2
Chainguard cortex-fips 0 1.17.1-r4
Chainguard cosign 0 2.2.4-r6
Chainguard cosign-fips 0 2.2.4-r4
Chainguard datadog-agent 0 7.56.0-r0
Chainguard datadog-agent-core-integrations 0 7.56.0-r0
Chainguard datadog-agent-core-integrations-fips 0 7.72.0-r0
Chainguard datadog-agent-fakeintake 0 7.56.0-r0
Chainguard datadog-agent-fakeintake-fips 0 7.72.0-r0
Chainguard datadog-agent-fips 0 7.72.0-r0
Chainguard datadog-agent-jmx 0 7.56.0-r0
Chainguard datadog-agent-jmx-fips 0 7.72.0-r0
Chainguard datadog-agent-oci-compat 0 7.56.0-r0
Chainguard datadog-agent-oci-compat-fips 0 7.72.0-r0
Chainguard datadog-agent-s6-overlay 0 7.56.0-r0
Chainguard datadog-agent-s6-overlay-fips 0 7.72.0-r0
Chainguard datadog-cluster-agent 0 7.56.0-r0
Chainguard datadog-cluster-agent-fips 0 7.72.1-r0
Chainguard datadog-cluster-agent-oci-compat 0 7.56.0-r0
Chainguard datadog-cluster-agent-oci-compat-fips 0 7.72.0-r0
Chainguard dogstatsd 0 7.56.0-r0
Chainguard druid 0 32.0.1-r1
Chainguard druid-compat 0 32.0.1-r1
Chainguard external-dns 0 0.14.2-r2
Chainguard external-dns-bitnami-compat 0 0.14.2-r2
Chainguard external-dns-fips 0 0.14.2-r3
Chainguard external-dns-fips-bitnami-compat 0 0.14.2-r3
Chainguard external-dns-fips-iamguarded-compat 0 0.14.2-r3
Chainguard external-dns-iamguarded-compat 0 0.14.2-r2
Chainguard external-secrets-0.7 0 0.7.3-r3
Chainguard external-secrets-0.7-compat 0 0.7.3-r3
Chainguard external-secrets-fips 0 0.9.19-r2
Chainguard external-secrets-operator 0 0.9.19-r2
Chainguard falcoctl 0 0.8.0-r2
Chainguard falcoctl-fips 0 0.8.0-r2
Chainguard filebeat 0 8.14.0-r1
Chainguard filebeat-fips 0 8.14.1-r1
Chainguard fluent-bit-plugin-loki 0 3.0.0-r3
Chainguard flux 0 2.3.0-r2
Chainguard flux-compat 0 2.3.0-r2
Chainguard flux-image-reflector-controller 0 0.32.0-r3
Chainguard flux-image-reflector-controller-iamguarded-compat 0 0.32.0-r3
Chainguard flux-kustomize-controller 0 1.3.0-r4
Chainguard flux-kustomize-controller-bitnami-compat 0 1.3.0-r4
Chainguard flux-kustomize-controller-iamguarded-compat 0 1.3.0-r4
Chainguard flux-source-controller 0 1.3.0-r3
Chainguard flux-source-controller-bitnami-compat 0 1.3.0-r3
Chainguard flux-source-controller-iamguarded-compat 0 1.3.0-r3
Chainguard fluxcd-source-controller-bitnami-compat 0 1.3.0-r3
Chainguard flyte 0 1.12.0-r3
Chainguard fulcio 0 1.4.5-r4
Chainguard fulcio-fips 0 1.4.5-r5
Chainguard gitlab-runner 0 17.0.0-r2
Chainguard gitlab-runner-helper 0 17.0.0-r2
Chainguard goreleaser 0 2.0.1-r1
Chainguard grafana-10.4 0 10.4.4-r1
Chainguard grafana-10.4-oci-compat 0 10.4.4-r1
Chainguard grafana-11.0 0 11.0.0-r3
Chainguard grafana-9 0 9.5.19-r2
Chainguard grafana-9-fips 0 9.5.19-r2
Chainguard grafana-9-fips-oci-compat 0 9.5.19-r2
Chainguard grafana-agent-operator 0 0.41.1-r1
Chainguard grafana-fips-10.3 0 10.3.6-r2
Chainguard grafana-fips-10.3-oci-compat 0 10.3.6-r2
Chainguard grafana-fips-10.4 0 10.4.3-r2
Chainguard grafana-fips-10.4-oci-compat 0 10.4.3-r2
Chainguard grafana-fips-11.0 0 11.0.0-r2
Chainguard grafana-fips-11.0-oci-compat 0 11.0.0-r2
Chainguard grafana-mimir 0 2.12.0-r2
Chainguard grafana-mimir-metaconvert 0 2.12.0-r2
Chainguard grafana-mimir-mimirtool 0 2.12.0-r2
Chainguard grafana-mimir-query-tee 0 2.12.0-r2
Chainguard grafana-oci-compat 0 11.0.0-r3
Chainguard grafana-oci-compat 0 10.4.4-r1
Chainguard grafana-oci-compat-9 0 9.5.19-r2
Chainguard guac 0 0.7.2-r1
Chainguard guaccsub 0 0.7.2-r1
Chainguard guacgql 0 0.7.2-r1
Chainguard guacingest 0 0.7.2-r1
Chainguard guacone 0 0.7.2-r1
Chainguard harbor-registry 0 3.0.0_alpha1-r5
Chainguard harbor-registry-fips 0 3.0.0_alpha1-r5
Chainguard hugo 0 0.127.0-r1
Chainguard hugo-extended 0 0.130.0-r0
Chainguard k8sgpt 0 0.3.32-r3
Chainguard keda-2.13 0 2.13.1-r9
Chainguard keda-2.13-adapter 0 2.13.1-r9
Chainguard keda-2.13-admission-webhooks 0 2.13.1-r9
Chainguard keda-2.13-compat 0 2.13.1-r9
Chainguard keda-2.14 0 2.14.0-r4
Chainguard keda-2.14-adapter 0 2.14.0-r4

Related vulnerabilities