From 9c0b83fd34d4cb3cf66840b6a167fb85b30e99a9 Mon Sep 17 00:00:00 2001 From: edvraa <80588099+edvraa@users.noreply.github.com> Date: Thu, 29 Apr 2021 14:44:50 +0300 Subject: [PATCH] Use getAPredecessor --- .../CWE-1004/CookieWithoutHttpOnly.ql | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/ql/src/experimental/CWE-1004/CookieWithoutHttpOnly.ql b/ql/src/experimental/CWE-1004/CookieWithoutHttpOnly.ql index 4c81779943b..159cfcf8752 100644 --- a/ql/src/experimental/CWE-1004/CookieWithoutHttpOnly.ql +++ b/ql/src/experimental/CWE-1004/CookieWithoutHttpOnly.ql @@ -30,15 +30,13 @@ predicate isGinContextCookieFlow(Expr expr) { exists(CallExpr c | c.getTarget().getQualifiedName() = "github.com/gin-gonic/gin.Context.SetCookie" and c.getArgument(6) = expr and - exists(DataFlow::Node valSrc, DataFlow::Node httpOnlyArg | - DataFlow::localFlow(valSrc, httpOnlyArg) and + exists(DataFlow::Node httpOnlyArg | httpOnlyArg.asExpr() = c.getArgument(6) and - valSrc.asExpr().getBoolValue() = false + httpOnlyArg.getAPredecessor*().asExpr().getBoolValue() = false ) and - exists(DataFlow::Node nameSrc, DataFlow::Node nameArg | - DataFlow::localFlow(nameSrc, nameArg) and + exists(DataFlow::Node nameArg | nameArg.asExpr() = c.getArgument(0) and - isAuthVariable(nameSrc.asExpr()) + isAuthVariable(nameArg.getAPredecessor*().asExpr()) ) ) } @@ -57,10 +55,7 @@ predicate isGorillaSessionsCookieFlow(Expr expr) { or exists(DataFlow::Node rhs | rhs = getValueForFieldWrite(options.asExpr(), "HttpOnly") and - exists(DataFlow::Node valSrc | - DataFlow::localFlow(valSrc, rhs) and - valSrc.asExpr().getBoolValue() = false - ) + rhs.getAPredecessor*().asExpr().getBoolValue() = false ) ) )