Pinky Promise Protocol: Bypassing Biometric Auth in Capacitor
Vulnerability ID: GHSA-VX5F-VMR6-32WF
CVSS Score: 5.5
Published: 2026-02-10
A critical flaw in the @capgo/capacitor-native-biometric Android implementation allowed attackers to bypass biometric authentication using simple instrumentation tools. By failing to bind the authentication event to a cryptographic operation, the plugin trusted the Java-layer callback blindly—a mechanism easily spoofed by frameworks like Frida.
TL;DR
The Android biometric implementation trusted the 'Yes, it's me' signal without checking the math. Attackers with local access (or malware) could use Frida to invoke the 'Success' callback directly, bypassing the fingerprint/FaceID check entirely. Fixed by binding the auth to a hardware-backed crypto object.
⚠️ Exploit Status: POC
Technical Details
- CWE ID: CWE-287
- Attack Vector: Local / Physical
- Impact: Authentication Bypass
- Exploit Status: POC Available (Trivial)
- Platform: Android
- Technology: Capacitor / Java
Affected Systems
- Android Applications using Capacitor
- @capgo/capacitor-native-biometric < 8.3.7
-
@capgo/capacitor-native-biometric: < 8.3.7 (Fixed in:
8.3.7)
Code Analysis
Commit: 1254602
feat(android): implement crypto object for stronger authentication
@@ -125,7 +125,8 @@
- biometricPrompt.authenticate(promptInfo);
+ Cipher cipher = getCipher();
+ BiometricPrompt.CryptoObject cryptoObject = new BiometricPrompt.CryptoObject(cipher);
+ biometricPrompt.authenticate(promptInfo, cryptoObject);
Exploit Details
- Researcher Analysis: Exploitation involves standard Android instrumentation techniques (Frida) to invoke the Success callback.
Mitigation Strategies
- Update to version 8.3.7 or later immediately.
- Implement root detection and anti-frida checks in the native layer (defense in depth).
- Never rely on client-side boolean flags for critical authentication; always use server-side session validation where possible.
Remediation Steps:
- Run
npm update @capgo/capacitor-native-biometricin your project root. - Verify
package.jsonreflects version^8.3.7. - Rebuild your Android project:
npx cap sync android && npx cap open android. - Test the authentication flow on a real device.
References
Read the full report for GHSA-VX5F-VMR6-32WF on our website for more details including interactive diagrams and full exploit analysis.
Top comments (0)