Skip to main content

capacitor-native-biometric CVE-2026-56294

| EUVDEUVD-2026-38121 MEDIUM
Improper Authentication (CWE-287)
2026-06-20 VulnCheck GHSA-58pv-hg46-37r9
4.3
CVSS 4.0 · Vendor: VulnCheck
Share

Severity by source

Vendor (VulnCheck) PRIMARY
4.3 MEDIUM
CVSS:4.0/AV:P/AC:H/AT:N/PR:N/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vuln.today AI
4.8 MEDIUM

Physical vector and high complexity required (Frida hooking on rooted device); no prior app privileges needed; no availability impact; integrity impact limited to auth state bypass.

3.1 AV:P/AC:H/PR:N/UI:N/S:U/C:H/I:L/A:N
4.0 AV:P/AC:H/AT:N/PR:N/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Physical
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
X

Lifecycle Timeline

3
Source Code Evidence Fetched
Jun 22, 2026 - 06:20 vuln.today
Analysis Generated
Jun 22, 2026 - 06:20 vuln.today
Patch available
Jun 20, 2026 - 17:16 EUVD

DescriptionCVE.org

capacitor-native-biometric before 12.128.2 contains an authentication bypass vulnerability where the onAuthenticationSucceeded() method fails to validate CryptoObject parameters. Attackers can hook the onAuthenticationSucceeded() function using dynamic instrumentation to bypass biometric authentication without valid credentials.

AnalysisAI

Authentication bypass in cap-go/capacitor-native-biometric allows an attacker with physical device access to circumvent biometric authentication by hooking the onAuthenticationSucceeded() callback via dynamic instrumentation. The root cause is that AuthActivity.java's implementation of BiometricPrompt.AuthenticationCallback never retrieves or validates the CryptoObject from the AuthenticationResult, making the entire cryptographic binding between biometric gesture and protected key material moot. All npm package versions below the patched release are affected. A proof-of-concept video is publicly available per the GHSA advisory, though no confirmed active exploitation (CISA KEV) has been identified at time of analysis.

Technical ContextAI

The Android BiometricPrompt API offers a CryptoObject binding mode in which a successful biometric gesture unlocks a cryptographic key inside the Android Keystore; downstream code must then use that CryptoObject to decrypt or sign data, preventing replay or hooking attacks. The vulnerable implementation in AuthActivity.java (line 88 per GHSA) overrides onAuthenticationSucceeded() but immediately calls finishActivity('success') without ever interrogating result.getCryptoObject(). This means the security contract the CryptoObject pattern is supposed to enforce - 'only proceed if the hardware-bound key was unlocked by a genuine biometric gesture' - is never checked. The CWE-287 (Improper Authentication) root cause is that authentication outcome is trusted based solely on the callback invocation rather than on cryptographic proof. Dynamic instrumentation frameworks such as Frida can inject into the running app process on a rooted or debuggable Android device and trigger onAuthenticationSucceeded() synthetically, making the biometric gate trivially bypassable. The affected CPE is cpe:2.3:a:capacitor-native-biometric:capacitor-native-biometric:*:*:*:*:*:*:*:*.

RemediationAI

Update @capgo/capacitor-native-biometric to the patched version via npm: run 'npm install @capgo/capacitor-native-biometric@latest' and verify the installed version is at or above 8.3.6 (per npm evidence) or 12.128.2 (per EUVD/CVE description). The fix commit is confirmed at https://github.com/Cap-go/capacitor-native-biometric/commit/1254602e942f8216e6258f646f0866d8e69c48a5 and the vendor advisory is at https://github.com/Cap-go/capgo/security/advisories/GHSA-vx5f-vmr6-32wf. For applications that cannot patch immediately, the primary compensating control is to enforce server-side re-authentication for any sensitive operation protected by biometric prompt, so that bypassing the local biometric gate does not grant access to back-end resources without a valid session token. Disabling the biometric feature entirely and falling back to PIN/password is a functional alternative with user-experience trade-offs. Note: relying solely on Android root-detection or certificate pinning as a mitigation is insufficient, as those controls can themselves be bypassed with the same instrumentation tooling used in this attack.

Share

CVE-2026-56294 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy