False negative: AndroidInsecureLocalAuthentication.ql
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 55/100
Rechercherichtung
Beginne mit Security/CWE/CWE-287/AndroidInsecureLocalAuthentication.ql und reproduziere die gemeldeten Java-Beispiele, wobei du die direkte Verwendung von Parametern mit Zuweisungen, Delegation und Aufrufen über einen Helper vergleichst. Als abgeschlossen gilt die Aufgabe, wenn die Abfrage die unsichere Authentifizierungsbehandlung für die bereitgestellten Varianten konsistent meldet und keine False Negatives erzeugt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Version
codeql 2.23.9
When I detect the code like this using Security/CWE/CWE-287/AndroidInsecureLocalAuthentication.ql, the problem is reported normally:
package scensct.core.pos;
import android.hardware.fingerprint.FingerprintManager;
public class PosCase1 extends FingerprintManager.AuthenticationCallback {
@Override
public void onAuthenticationSucceeded(FingerprintManager.AuthenticationResult result) { // [REPORTED LINE]
// Parameter 'result' is declared but never accessed or referenced.
// No cryptographic operation or any use of 'result'.
System.out.println("Authentication succeeded.");
}
}
However, when I insert a temporary variable, AndroidInsecureLocalAuthentication.ql is unable to detect the problem:
package scensct.var.pos;
import android.hardware.fingerprint.FingerprintManager;
public class PosCase1_Var3 extends FingerprintManager.AuthenticationCallback {
@Override
public void onAuthenticationSucceeded(FingerprintManager.AuthenticationResult result) {
// Introduce a temporary variable that shadows but does not use result.
Object ignored = result;
// Still no cryptographic operation or actual usage.
System.out.println("Authentication succeeded.");
// The 'ignored' variable is never read.
}
}
AndroidInsecureLocalAuthentication.ql scanning the following code also fails to detect the issue:
package scensct.var.pos;
import android.hardware.biometrics.BiometricPrompt;
public class PosCase2_Var1 extends BiometricPrompt.AuthenticationCallback {
@Override
public void onAuthenticationSucceeded(BiometricPrompt.AuthenticationResult result) {
// Introduce a temporary variable that does not change the usage
BiometricPrompt.AuthenticationResult res = result;
super.onAuthenticationSucceeded(res);
}
}
package scensct.var.pos;
import android.hardware.biometrics.BiometricPrompt;
public class PosCase2_Var4 extends BiometricPrompt.AuthenticationCallback {
// Extract a private helper method that only passes the parameter
private void callSuper(BiometricPrompt.AuthenticationResult r) {
super.onAuthenticationSucceeded(r);
}
@Override
public void onAuthenticationSucceeded(BiometricPrompt.AuthenticationResult result) {
callSuper(result);
}
}
package scensct.var.pos;
import android.hardware.biometrics.BiometricPrompt;
public class PosCase2_Var5 extends BiometricPrompt.AuthenticationCallback {
@Override
public void onAuthenticationSucceeded(BiometricPrompt.AuthenticationResult result) {
// Add a redundant local variable and a no-op statement
BiometricPrompt.AuthenticationResult authResult = result;
int dummy = 0; // unrelated to result
super.onAuthenticationSucceeded(authResult);
}
}
- Vorherrschende Sprache
- CodeQL
- Sterne
- 10.1k
- Forks
- 2.1k
- Ø Merge
- 2 T. 16 Std.
- Gemergte PRs (30 T.)
- 143
Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus github/codeql
-
agentic-workflows
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
-
false-positive javascript
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
-
C#: cs/simplifiable-boolean-expression false positive on Nullable<bool> compared with a literal Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
-
false-positive
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
punkpeye/mcp-remote#369 ·
-
Mend: dependency security vulnerability untriaged
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 86/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
-
bug
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100
cisagov/vulnrichment#337 ·
-
bug DUP Reservations
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
bcgov/reserve-rec-public#896 ·