While this weakness might be caught by the compiler in some languages, it can occur more frequently in cases in which the called function accepts variable numbers of arguments, such as format strings in C. It also can occur in loosely typed languages or environments. This might require an understanding of intended program behavior or design to determine whether the value is incorrect.
Function Call With Incorrect Variable or Reference as Argument
This vulnerability occurs when a function is called with the wrong variable or reference passed as an argument. This simple coding mistake can cause the program to behave unpredictably, access…
What is CWE-688?
Real-world CVEs caused by CWE-688
-
Kernel code specifies the wrong variable in first argument, leading to resultant NULL pointer dereference.
Parcours de l'attaquant étape par étape
- 1
Identifier un chemin de code qui traite des entrées non fiables sans validation.
- 2
Élaborer une charge utile qui exploite le comportement non sécurisé — injection, traversal, débordement ou abus de logique.
- 3
Délivrer la charge utile via une requête normale et observer la réaction de l'application.
- 4
Itérer jusqu'à ce que la réponse divulgue des données, exécute le code de l'attaquant ou élève les privilèges.
Vulnerable Java
In the following Java snippet, the accessGranted() method is accidentally called with the static ADMIN_ROLES array rather than the user roles.
private static final String[] ADMIN_ROLES = ...;
public boolean void accessGranted(String resource, String user) {
String[] userRoles = getUserRoles(user);
return accessGranted(resource, ADMIN_ROLES);
}
private boolean void accessGranted(String resource, String[] userRoles) {
```
// grant or deny access based on user roles*
...} Secure pseudo
// Validate, sanitize, or use a safe API before reaching the sink.
function handleRequest(input) {
const safe = validateAndEscape(input);
return executeWithGuards(safe);
} How to prevent CWE-688
- Testing Because this function call often produces incorrect behavior it will usually be detected during testing or normal operation of the product. During testing exercise all possible control paths will typically expose this weakness except in rare cases when the incorrect function call accidentally produces the correct results or if the provided argument type is very similar to the expected argument type.
How to detect CWE-688
Don't catalog this weakness. Prove it's reachable.
Plexicus turns CWE catalogs into evidence: every CWE-pattern is matched against your real code graph, reach is proven on a sandbox clone, and verified findings ship as reviewed PRs.
Frequently asked questions
Qu'est-ce que CWE-688 ?
This vulnerability occurs when a function is called with the wrong variable or reference passed as an argument. This simple coding mistake can cause the program to behave unpredictably, access incorrect data, or trigger other security flaws.
Quelle est la gravité de CWE-688 ?
MITRE n'a pas publié de note de probabilité d'exploitation pour cette faiblesse. Traitez-la comme un impact moyen jusqu'à ce que votre modèle de menace prouve le contraire.
Quels langages ou plateformes sont affectés par CWE-688 ?
MITRE lists the following affected platforms: C, Perl.
Comment puis-je prévenir CWE-688 ?
Because this function call often produces incorrect behavior it will usually be detected during testing or normal operation of the product. During testing exercise all possible control paths will typically expose this weakness except in rare cases when the incorrect function call accidentally produces the correct results or if the provided argument type is very similar to the expected argument type.
Comment Plexicus détecte et corrige CWE-688 ?
Le moteur SAST de Plexicus reconnaît la signature de flux de données de CWE-688 à chaque commit. Lorsqu'une correspondance est trouvée, notre agent Codex Remedium ouvre une PR de correction avec le code corrigé, les tests et un résumé d'une ligne pour le relecteur.
Où puis-je en savoir plus sur CWE-688 ?
MITRE publie la définition canonique à https://cwe.mitre.org/data/definitions/688.html. Vous pouvez également consulter la documentation OWASP et NIST pour des conseils adjacents.
Weaknesses related to CWE-688
Function Call with Incorrectly Specified Arguments
This weakness occurs when a function is called with arguments that are incorrectly specified, causing the function to behave in an…
Function Call With Incorrect Order of Arguments
This vulnerability occurs when a program calls a function but supplies the arguments in the wrong order, which can cause unexpected…
Function Call With Incorrect Number of Arguments
This weakness occurs when a program calls a function, method, or subroutine but provides the wrong number of arguments—either too many or…
Function Call With Incorrect Argument Type
This vulnerability occurs when a program calls a function or method but passes an argument of the wrong data type, which can cause…
Function Call With Incorrectly Specified Argument Value
This vulnerability occurs when a function is called with an argument that holds an incorrect or unexpected value, leading to unintended…
Prêt à valider ce qui compte.
Plexicus est Proof-Driven AppSec : findings validés, compréhension contextuelle et remédiation relue — ancrée dans la preuve, scopée avec vous.