Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

flow test #29

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

flow test

56f2044
Select commit
Loading
Failed to load commit list.
Sign in for the full log view
Open

flow test #29

flow test
56f2044
Select commit
Loading
Failed to load commit list.
GitHub Actions / Veracode Fix suggestions succeeded Sep 24, 2024 in 3s

Veracode Fix suggestions

Will create Veracode Fix suggestions as PR annotation

Annotations

Check warning on line 28 in application/views/userController.py

See this annotation in the file changed.

@github-actions github-actions / Veracode Fix suggestions

Securityy findings

 
 from application.models import User, Blabber
 from application.forms import RegisterForm
+from html import escape
 
 
 # Get logger

Check warning on line 115 in application/views/userController.py

See this annotation in the file changed.

@github-actions github-actions / Veracode Fix suggestions

Securityy findings

                 parsed = sqlparse.parse(sqlQuery)[0]
                 logger.info("Attempted login with username and password: " + parsed[8].value)
 
-                cursor.execute(sqlQuery)
+                cursor.execute("%s", (username,))
                 # END VULN CODE
                 # GOOD CODE
                 # sqlQuery = "select username, password, password_hint, created_at, last_login, \

Check warning on line 143 in application/views/userController.py

See this annotation in the file changed.

@github-actions github-actions / Veracode Fix suggestions

Securityy findings

                                     blab_name=row["blab_name"])
                         response = updateInResponse(currentUser, response)
 
-                    update = "UPDATE users SET last_login=datetime('now') WHERE username='" + row['username'] + "';"
-                    cursor.execute(update)
+                    update = "UPDATE users SET last_login=datetime('now') WHERE username=%s;"
+                    cursor.execute(update, (username, ))
 
                     # if the username ends with "totp", add the TOTP login step
                     if username[-4:].lower() == "totp":

Check warning on line 190 in application/views/userController.py

See this annotation in the file changed.

@github-actions github-actions / Veracode Fix suggestions

Securityy findings

     try:
         logger.info("Creating the Database connection")
         with connection.cursor() as cursor:
-            sql = "SELECT password_hint FROM users WHERE username = '" + username + "'"
+            sql = "SELECT password_hint FROM users WHERE username = %s"
             logger.info(sql)
-            cursor.execute(sql)
+            cursor.execute(sql, (username,))
             row = cursor.fetchone()
             
             if (row):

Check warning on line 203 in application/views/userController.py

See this annotation in the file changed.

@github-actions github-actions / Veracode Fix suggestions

Securityy findings

                 formatString = "Username '" + username + "' has password: {}"
                 hint = formatString.format(password[:2] + ("*" * (len(password) - 2)))
                 logger.info(hint)
-                return HttpResponse(hint)
+                return HttpResponse(escape(hint))
             else:
-                return HttpResponse("No password found for " + username)
+                return HttpResponse(escape("No password found for " + username))
     except DatabaseError as db_err:
             logger.error("Database error", db_err)
             return HttpResponse("ERROR!") 

Check warning on line 231 in application/views/userController.py

See this annotation in the file changed.

@github-actions github-actions / Veracode Fix suggestions

Securityy findings

         #Create db connection
         with connection.cursor() as cursor:
 
-            sql = "SELECT totp_secret FROM users WHERE username = '" + username + "'"
+            sql = "SELECT totp_secret FROM users WHERE username = %s"
             logger.info(sql)
-            cursor.execute(sql)
+            cursor.execute(sql, (username,))
 
             result = cursor.fetchone()
         if result:

Check warning on line 265 in application/views/userController.py

See this annotation in the file changed.

@github-actions github-actions / Veracode Fix suggestions

Securityy findings

         
         with connection.cursor() as cursor:
         
-            sql = "SELECT totp_secret FROM users WHERE username = '" + username + "'"
+            sql = "SELECT totp_secret FROM users WHERE username = %s"
             logger.info(sql)
-            cursor.execute(sql)
+            cursor.execute(sql, (username,))
 
             result = cursor.fetchone()
             if result:

Check warning on line 346 in application/views/userController.py

See this annotation in the file changed.

@github-actions github-actions / Veracode Fix suggestions

Securityy findings

     logger.info("Creating the Database connection")
     try:
         with connection.cursor() as cursor:
-            sqlQuery = "SELECT username FROM users WHERE username = '" + username + "'"
-            cursor.execute(sqlQuery)
+            sqlQuery = "SELECT username FROM users WHERE username = %s"
+            cursor.execute(sqlQuery, (username,))
             row = cursor.fetchone()
             if (row):
                 request.error = "Username '" + username + "' already exists!"

Check warning on line 424 in application/views/userController.py

See this annotation in the file changed.

@github-actions github-actions / Veracode Fix suggestions

Securityy findings

                 query += ("'" + blabName + "'")
                 query += (");")
                 #execute query
-                cursor.execute(query)
+                cursor.execute("%s", (password,))
                 sqlStatement = cursor.fetchone() #<- variable for response
                 logger.info(query)
                 # END EXAMPLE VULNERABILITY

Check warning on line 498 in application/views/userController.py

See this annotation in the file changed.

@github-actions github-actions / Veracode Fix suggestions

Securityy findings

         with connection.cursor() as cursor:    
             # Find the Blabbers that this user listens to
             logger.info(sqlMyHecklers)
-            cursor.execute(sqlMyHecklers % username)
+            cursor.execute(sqlMyHecklers, (username,))
             myHecklersResults = cursor.fetchall()
             hecklers=[]
             for i in myHecklersResults:

Check warning on line 517 in application/views/userController.py

See this annotation in the file changed.

@github-actions github-actions / Veracode Fix suggestions

Securityy findings

             events = []
 
             # START EXAMPLE VULNERABILITY 
-            sqlMyEvents = "select event from users_history where blabber=\"" + username + "\" ORDER BY eventid DESC; "
-            logger.info(sqlMyEvents)
-            cursor.execute(sqlMyEvents)
+            sqlMyEvents = "select event from users_history where blabber=%s ORDER BY eventid DESC; "
+            logger.info(sqlMyEvents, (username,))
+            cursor.execute(sqlMyEvents, (username,))
             userHistoryResult = cursor.fetchall()
             # END EXAMPLE VULNERABILITY 
 

Check warning on line 527 in application/views/userController.py

See this annotation in the file changed.

@github-actions github-actions / Veracode Fix suggestions

Securityy findings

                 events.append(result[0])
 
             # Get the users information
-            sql = "SELECT username, real_name, blab_name, totp_secret FROM users WHERE username = '" + username + "'"
+            sql = "SELECT username, real_name, blab_name, totp_secret FROM users WHERE username = %s"
             logger.info(sql)
-            cursor.execute(sql)
+            cursor.execute(sql, (username, ))
             myInfoResults = cursor.fetchone()
             if not myInfoResults:
                 return JsonResponse({'message':'Error, no Inforesults found'})

Check warning on line 564 in application/views/userController.py

See this annotation in the file changed.

@github-actions github-actions / Veracode Fix suggestions

Securityy findings

     # Initial response only get returns if everything else succeeds.
     # This must be here in order to use set_cookie later in the program
     msg = f"<script>alert('Successfully changed values!\\nusername: {username.lower()}\\nReal Name: {realName}\\nBlab Name: {blabName}');</script>"
-    response = JsonResponse({'values':{"username": username.lower(), "realName": realName, "blabName": blabName}, 'message':msg},status=200)
+    response = JsonResponse({'values':escape({"username": username.lower(), "realName": realName, "blabName": blabName}),'message':msg}, status=200)
     
     logger.info("entering processProfile")
     sessionUsername = request.session.get('username')