Skip to content

Code Security Report: 25 high severity findings, 33 total findings #30

@mend-for-github-com

Description

@mend-for-github-com

Code Security Report

Scan Metadata

Latest Scan: 2024-11-01 02:40pm
Total Findings: 33 | New Findings: 0 | Resolved Findings: 0
Tested Project Files: 425
Detected Programming Languages: 2 (Java*, JavaScript / TypeScript*)

  • Check this box to manually trigger a scan

Most Relevant Findings

The list below presents the 10 most relevant findings that need your attention. To view information on the remaining findings, navigate to the Mend Application.

SeverityVulnerability TypeCWEFileData FlowsDate
HighSQL Injection

CWE-89

SqlInjectionLesson6a.java:74

32024-05-29 07:16pm
Vulnerable Code

usedUnion = false;
}
try (Statement statement =
connection.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY)) {
ResultSet results = statement.executeQuery(query);

3 Data Flow/s detected
View Data Flow 1

public AttackResult attack(@RequestParam("userid_sql_only_input_validation") String userId) {

AttackResult attackResult = lesson6a.injectableQuery(userId);

public AttackResult injectableQuery(String accountName) {

query = "SELECT * FROM user_data WHERE last_name = '" + accountName + "'";

View Data Flow 2

public AttackResult completed(@RequestParam(value = "userid_6a") String userId) {

public AttackResult injectableQuery(String accountName) {

query = "SELECT * FROM user_data WHERE last_name = '" + accountName + "'";

View Data Flow 3

userId = userId.toUpperCase().replace("FROM", "").replace("SELECT", "");

public AttackResult injectableQuery(String accountName) {

query = "SELECT * FROM user_data WHERE last_name = '" + accountName + "'";

Secure Code Warrior Training Material

● Training

   ▪ Secure Code Warrior SQL Injection Training

● Videos

   ▪ Secure Code Warrior SQL Injection Video

● Further Reading

   ▪ OWASP SQL Injection Prevention Cheat Sheet

   ▪ OWASP SQL Injection

   ▪ OWASP Query Parameterization Cheat Sheet

 
HighSQL Injection

CWE-89

SqlInjectionLesson10.java:71

12024-05-29 07:16pm
Vulnerable Code

try (Connection connection = dataSource.getConnection()) {
try {
Statement statement =
connection.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet results = statement.executeQuery(query);

1 Data Flow/s detected

public AttackResult completed(@RequestParam String action_string) {

protected AttackResult injectableQueryAvailability(String action) {

String query = "SELECT * FROM access_log WHERE action LIKE '%" + action + "%'";

Secure Code Warrior Training Material

● Training

   ▪ Secure Code Warrior SQL Injection Training

● Videos

   ▪ Secure Code Warrior SQL Injection Video

● Further Reading

   ▪ OWASP SQL Injection Prevention Cheat Sheet

   ▪ OWASP SQL Injection

   ▪ OWASP Query Parameterization Cheat Sheet

 
HighSQL Injection

CWE-89

SqlInjectionLesson5.java:80

12024-05-29 07:16pm
Vulnerable Code

protected AttackResult injectableQuery(String query) {
try (Connection connection = dataSource.getConnection()) {
try (Statement statement =
connection.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE)) {
statement.executeQuery(query);

1 Data Flow/s detected

Secure Code Warrior Training Material

● Training

   ▪ Secure Code Warrior SQL Injection Training

● Videos

   ▪ Secure Code Warrior SQL Injection Video

● Further Reading

   ▪ OWASP SQL Injection Prevention Cheat Sheet

   ▪ OWASP SQL Injection

   ▪ OWASP Query Parameterization Cheat Sheet

 
HighSQL Injection

CWE-89

Servers.java:72

12024-05-29 07:16pm
Vulnerable Code

public List<Server> sort(@RequestParam String column) throws Exception {
List<Server> servers = new ArrayList<>();
try (var connection = dataSource.getConnection()) {
try (var statement =
connection.prepareStatement(

1 Data Flow/s detected

public List<Server> sort(@RequestParam String column) throws Exception {

"select id, hostname, ip, mac, status, description from SERVERS where status <> 'out"

Secure Code Warrior Training Material

● Training

   ▪ Secure Code Warrior SQL Injection Training

● Videos

   ▪ Secure Code Warrior SQL Injection Video

● Further Reading

   ▪ OWASP SQL Injection Prevention Cheat Sheet

   ▪ OWASP SQL Injection

   ▪ OWASP Query Parameterization Cheat Sheet

 
HighSQL Injection

CWE-89

SqlInjectionLesson3.java:63

12024-05-29 07:16pm
Vulnerable Code

try (Connection connection = dataSource.getConnection()) {
try (Statement statement =
connection.createStatement(TYPE_SCROLL_INSENSITIVE, CONCUR_READ_ONLY)) {
Statement checkStatement =
connection.createStatement(TYPE_SCROLL_INSENSITIVE, CONCUR_READ_ONLY);
statement.executeUpdate(query);

1 Data Flow/s detected

public AttackResult completed(@RequestParam String query) {

Secure Code Warrior Training Material

● Training

   ▪ Secure Code Warrior SQL Injection Training

● Videos

   ▪ Secure Code Warrior SQL Injection Video

● Further Reading

   ▪ OWASP SQL Injection Prevention Cheat Sheet

   ▪ OWASP SQL Injection

   ▪ OWASP Query Parameterization Cheat Sheet

 
HighSQL Injection

CWE-89

SqlInjectionLesson4.java:62

12024-05-29 07:16pm
Vulnerable Code

protected AttackResult injectableQuery(String query) {
try (Connection connection = dataSource.getConnection()) {
try (Statement statement =
connection.createStatement(TYPE_SCROLL_INSENSITIVE, CONCUR_READ_ONLY)) {
statement.executeUpdate(query);

1 Data Flow/s detected

public AttackResult completed(@RequestParam String query) {

Secure Code Warrior Training Material

● Training

   ▪ Secure Code Warrior SQL Injection Training

● Videos

   ▪ Secure Code Warrior SQL Injection Video

● Further Reading

   ▪ OWASP SQL Injection Prevention Cheat Sheet

   ▪ OWASP SQL Injection

   ▪ OWASP Query Parameterization Cheat Sheet

 
HighSQL Injection

CWE-89

SqlInjectionChallenge.java:69

12024-05-29 07:16pm
Vulnerable Code

try (Connection connection = dataSource.getConnection()) {
String checkUserQuery =
"select userid from sql_challenge_users where userid = '" + username_reg + "'";
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(checkUserQuery);

1 Data Flow/s detected

"select userid from sql_challenge_users where userid = '" + username_reg + "'";

ResultSet resultSet = statement.executeQuery(checkUserQuery);

Secure Code Warrior Training Material

● Training

   ▪ Secure Code Warrior SQL Injection Training

● Videos

   ▪ Secure Code Warrior SQL Injection Video

● Further Reading

   ▪ OWASP SQL Injection Prevention Cheat Sheet

   ▪ OWASP SQL Injection

   ▪ OWASP Query Parameterization Cheat Sheet

 
HighSQL Injection

CWE-89

Assignment5.java:60

12024-05-29 07:16pm
Vulnerable Code

if (!"Larry".equals(username_login)) {
return failed(this).feedback("user.not.larry").feedbackArgs(username_login).build();
}
try (var connection = dataSource.getConnection()) {
PreparedStatement statement =
connection.prepareStatement(

1 Data Flow/s detected

"select password from challenge_users where userid = '"

Secure Code Warrior Training Material

● Training

   ▪ Secure Code Warrior SQL Injection Training

● Videos

   ▪ Secure Code Warrior SQL Injection Video

● Further Reading

   ▪ OWASP SQL Injection Prevention Cheat Sheet

   ▪ OWASP SQL Injection

   ▪ OWASP Query Parameterization Cheat Sheet

 
HighSQL Injection

CWE-89

SqlInjectionLesson5a.java:67

12024-05-29 07:16pm
Vulnerable Code

query =
"SELECT * FROM user_data WHERE first_name = 'John' and last_name = '" + accountName + "'";
try (Statement statement =
connection.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE)) {
ResultSet results = statement.executeQuery(query);

1 Data Flow/s detected

return injectableQuery(account + " " + operator + " " + injection);

protected AttackResult injectableQuery(String accountName) {

"SELECT * FROM user_data WHERE first_name = 'John' and last_name = '" + accountName + "'";

Secure Code Warrior Training Material

● Training

   ▪ Secure Code Warrior SQL Injection Training

● Videos

   ▪ Secure Code Warrior SQL Injection Video

● Further Reading

   ▪ OWASP SQL Injection Prevention Cheat Sheet

   ▪ OWASP SQL Injection

   ▪ OWASP Query Parameterization Cheat Sheet

 
HighSQL Injection

CWE-89

SqlInjectionLesson5b.java:86

12024-05-29 07:16pm
Vulnerable Code

query.setInt(1, count);
// String query = "SELECT * FROM user_data WHERE Login_Count = " + login_count + " and userid
// = " + accountName, ;
try {
ResultSet results = query.executeQuery();

1 Data Flow/s detected

protected AttackResult injectableQuery(String login_count, String accountName) {

String queryString = "SELECT * From user_data WHERE Login_Count = ? and userid= " + accountName;

Secure Code Warrior Training Material

● Training

   ▪ Secure Code Warrior SQL Injection Training

● Videos

   ▪ Secure Code Warrior SQL Injection Video

● Further Reading

   ▪ OWASP SQL Injection Prevention Cheat Sheet

   ▪ OWASP SQL Injection

   ▪ OWASP Query Parameterization Cheat Sheet

Findings Overview

Severity Vulnerability Type CWE Language Count
High SQL Injection CWE-89 Java* 14
High Deserialization of Untrusted Data CWE-502 Java* 2
High Path/Directory Traversal CWE-22 Java* 7
High Server Side Request Forgery CWE-918 Java* 2
Medium XML External Entity (XXE) Injection CWE-611 Java* 1
Medium Error Messages Information Exposure CWE-209 Java* 4
Low System Properties Disclosure CWE-497 Java* 1
Low Weak Hash Strength CWE-328 Java* 1
Low Log Forging CWE-117 Java* 1

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions