Skip to content

CX SQL_Injection @ riches/WEB-INF/src/java/com/fortify/samples/riches/restful/TransactionResources.java [master] #46

@kmcdon83

Description

@kmcdon83

SQL_Injection issue exists @ riches/WEB-INF/src/java/com/fortify/samples/riches/restful/TransactionResources.java in branch master

The application's IsProfileExist method executes an SQL query with find, at line 241 of riches\WEB-INF\src\java\com\fortify\samples\riches\model\ProfileService.java. The application constructs this SQL query by embedding an untrusted string into the query without proper sanitization. The concatenated string is submitted to the database, where it is parsed and executed accordingly.
The attacker would be able to inject arbitrary data into the SQL query, by simply altering the user input username, which is read by the GetTransactions method at line 101 of riches\WEB-INF\src\java\com\fortify\samples\riches\restful\TransactionResources.java. This input then flows through the code to the database server, without sanitization.
This may enable an SQL Injection attack.

Severity: High

CWE:89

Vulnerability details and guidance

Internal Guidance

Checkmarx

Lines: 101 102 104 105 106 107


Code (Line #101):

    public String GetTransactions(@PathParam("username") String username,

Code (Line #102):

                           @PathParam("acctno") @DefaultValue("0422328325") String acctno,

Code (Line #104):

                           @MatrixParam("payee") String payee,

Code (Line #105):

                           @MatrixParam("amount") String amount,

Code (Line #106):

                           @QueryParam("memo") String memo,

Code (Line #107):

                           @QueryParam("id") String id){

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions