Software Security | Protect your Software at the Source (2024)

  • ABAP
  • ActionScript
  • Apex
  • C#/VB.NET/ASP.NET
  • C/C++
  • COBOL
  • Dart
  • Golang
  • Java/JSP
  • JavaScript/TypeScript
  • Objective-C
  • PHP
  • PLSQL/TSQL
  • Python
  • Ruby
  • Scala
  • Swift
  • VisualBasic/VBScript/ASP

Abstract

Without proper access control, executing a SQL statement that contains a user-controlled primary key can allow an attacker to view unauthorized records.

Explanation

Database access control errors occur when:

1. Data enters a program from an untrusted source.

2. The data is used to specify the value of a primary key in a SQL query.
Example 1: The following code uses a statement that relies on an integer and thus is not vulnerable to SQL injection vulnerabilities, to construct and execute a SQL query that searches for an invoice matching the specified identifier [1]. The identifier is selected from a list of all invoices associated with the current authenticated user.


DATA: id TYPE i.
...
id = request->get_form_field( 'invoiceID' ).

CONCATENATE `INVOICEID = '` id `'` INTO cl_where.
SELECT *
FROM invoices
INTO CORRESPONDING FIELDS OF TABLE itab_invoices
WHERE (cl_where).
ENDSELECT.
...

The problem is that the developer has failed to consider all of the possible values of ID. Although the interface generates a list of invoice identifiers that belong to the current user, an attacker might bypass this interface to request any desired invoice. Because the code in this example does not check to ensure that the user has permission to access the requested invoice, it will display any invoice, even if it does not belong to the current user.

References

[1] S. J. Friedl SQL Injection Attacks by Example

[2] Standards Mapping - CIS Azure Kubernetes Service Benchmark

3.0

[3] Standards Mapping - CIS Amazon Elastic Kubernetes Service Benchmark

1.0

[4] Standards Mapping - CIS Amazon Web Services Foundations Benchmark

1

[5] Standards Mapping - CIS Google Kubernetes Engine Benchmark

confidentiality

[6] Standards Mapping - CIS Kubernetes Benchmark

complete

[7] Standards Mapping - Common Weakness Enumeration

CWE ID 566

[8] Standards Mapping - Common Weakness Enumeration Top 25 2023

[24] CWE ID 863

[9] Standards Mapping - DISA Control Correlation Identifier Version 2

CCI-000213, CCI-001084, CCI-002165

[10] Standards Mapping - FIPS200

AC

[11] Standards Mapping - General Data Protection Regulation (GDPR)

Access Violation

[12] Standards Mapping - NIST Special Publication 800-53 Revision 4

AC-3 Access Enforcement (P1), AC-23 Data Mining Protection (P0), SC-3 Security Function Isolation (P1)

[13] Standards Mapping - NIST Special Publication 800-53 Revision 5

AC-3 Access Enforcement, AC-23 Data Mining Protection, SC-3 Security Function Isolation

[14] Standards Mapping - OWASP Top 10 2004

A2 Broken Access Control

[15] Standards Mapping - OWASP Top 10 2007

A4 Insecure Direct Object Reference

[16] Standards Mapping - OWASP Top 10 2010

A4 Insecure Direct Object References

[17] Standards Mapping - OWASP Top 10 2013

A4 Insecure Direct Object References

[18] Standards Mapping - OWASP Top 10 2017

A5 Broken Access Control

[19] Standards Mapping - OWASP Top 10 2021

A01 Broken Access Control

[20] Standards Mapping - OWASP Application Security Verification Standard 4.0

4.1.2 General Access Control Design (L1 L2 L3), 4.1.3 General Access Control Design (L1 L2 L3), 4.1.5 General Access Control Design (L1 L2 L3), 4.2.1 Operation Level Access Control (L1 L2 L3), 13.4.2 GraphQL and other Web Service Data Layer Security Requirements (L2 L3)

[21] Standards Mapping - OWASP Mobile 2014

M5 Poor Authorization and Authentication

[22] Standards Mapping - OWASP Mobile 2024

M3 Insecure Authentication/Authorization

[23] Standards Mapping - OWASP Mobile Application Security Verification Standard 2.0

MASVS-AUTH-1

[24] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1

Requirement 6.5.2

[25] Standards Mapping - Payment Card Industry Data Security Standard Version 1.2

Requirement 6.5.4

[26] Standards Mapping - Payment Card Industry Data Security Standard Version 2.0

Requirement 6.5.8

[27] Standards Mapping - Payment Card Industry Data Security Standard Version 3.0

Requirement 6.5.8

[28] Standards Mapping - Payment Card Industry Data Security Standard Version 3.1

Requirement 6.5.8

[29] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2

Requirement 6.5.8

[30] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2.1

Requirement 6.5.8

[31] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0

Requirement 6.2.4

[32] Standards Mapping - Payment Card Industry Software Security Framework 1.0

Control Objective 5.4 - Authentication and Access Control

[33] Standards Mapping - Payment Card Industry Software Security Framework 1.1

Control Objective 5.4 - Authentication and Access Control

[34] Standards Mapping - Payment Card Industry Software Security Framework 1.2

Control Objective 5.4 - Authentication and Access Control, Control Objective C.2.3 - Web Software Access Controls

[35] Standards Mapping - SANS Top 25 2011

Porous Defenses - CWE ID 863

[36] Standards Mapping - Security Technical Implementation Guide Version 3.1

APP3480.1 CAT II

[37] Standards Mapping - Security Technical Implementation Guide Version 3.4

APP3480.1 CAT I

[38] Standards Mapping - Security Technical Implementation Guide Version 3.5

APP3480.1 CAT I

[39] Standards Mapping - Security Technical Implementation Guide Version 3.6

APP3480.1 CAT I

[40] Standards Mapping - Security Technical Implementation Guide Version 3.7

APP3480.1 CAT I

[41] Standards Mapping - Security Technical Implementation Guide Version 3.9

APP3480.1 CAT I

[42] Standards Mapping - Security Technical Implementation Guide Version 3.10

APP3480.1 CAT I

[43] Standards Mapping - Security Technical Implementation Guide Version 4.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[44] Standards Mapping - Security Technical Implementation Guide Version 4.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[45] Standards Mapping - Security Technical Implementation Guide Version 4.3

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[46] Standards Mapping - Security Technical Implementation Guide Version 4.4

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[47] Standards Mapping - Security Technical Implementation Guide Version 4.5

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[48] Standards Mapping - Security Technical Implementation Guide Version 4.6

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[49] Standards Mapping - Security Technical Implementation Guide Version 4.7

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[50] Standards Mapping - Security Technical Implementation Guide Version 4.8

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[51] Standards Mapping - Security Technical Implementation Guide Version 4.9

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[52] Standards Mapping - Security Technical Implementation Guide Version 4.10

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[53] Standards Mapping - Security Technical Implementation Guide Version 4.11

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[54] Standards Mapping - Security Technical Implementation Guide Version 5.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[55] Standards Mapping - Security Technical Implementation Guide Version 5.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[56] Standards Mapping - Security Technical Implementation Guide Version 5.3

APSC-DV-000450 CAT II, APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[57] Standards Mapping - Web Application Security Consortium Version 2.00

Insufficient Authorization (WASC-02)

[58] Standards Mapping - Web Application Security Consortium 24 + 2

Insufficient Authorization

desc.dataflow.abap.access_control_database

Abstract

Without proper access control, executing a SQL statement that contains a user-controlled primary key can allow an attacker to view unauthorized records.

Explanation

Database access control errors occur when:

1. Data enters a program from an untrusted source.

2. The data is used to specify the value of a primary key in a SQL query.
Example 1: The following code uses a parameterized statement, which escapes metacharacters and prevents SQL injection vulnerabilities, to construct and execute a SQL query that searches for an invoice matching the specified identifier [1]. The identifier is selected from a list of all invoices associated with the current authenticated user.


...
var params:Object = LoaderInfo(this.root.loaderInfo).parameters;
var id:int = int(Number(params["invoiceID"]));
var query:String = "SELECT * FROM invoices WHERE id = :id";

stmt.sqlConnection = conn;
stmt.text = query;
stmt.parameters[":id"] = id;
stmt.execute();
...

The problem is that the developer has failed to consider all of the possible values of id. Although the interface generates a list of invoice identifiers that belong to the current user, an attacker might bypass this interface to request any desired invoice. Because the code in this example does not check to ensure that the user has permission to access the requested invoice, it will display any invoice, even if it does not belong to the current user.

References

[1] S. J. Friedl SQL Injection Attacks by Example

[2] Standards Mapping - CIS Azure Kubernetes Service Benchmark

3.0

[3] Standards Mapping - CIS Amazon Elastic Kubernetes Service Benchmark

1.0

[4] Standards Mapping - CIS Amazon Web Services Foundations Benchmark

1

[5] Standards Mapping - CIS Google Kubernetes Engine Benchmark

confidentiality

[6] Standards Mapping - CIS Kubernetes Benchmark

complete

[7] Standards Mapping - Common Weakness Enumeration

CWE ID 566

[8] Standards Mapping - Common Weakness Enumeration Top 25 2023

[24] CWE ID 863

[9] Standards Mapping - DISA Control Correlation Identifier Version 2

CCI-000213, CCI-001084, CCI-002165

[10] Standards Mapping - FIPS200

AC

[11] Standards Mapping - General Data Protection Regulation (GDPR)

Access Violation

[12] Standards Mapping - NIST Special Publication 800-53 Revision 4

AC-3 Access Enforcement (P1), AC-23 Data Mining Protection (P0), SC-3 Security Function Isolation (P1)

[13] Standards Mapping - NIST Special Publication 800-53 Revision 5

AC-3 Access Enforcement, AC-23 Data Mining Protection, SC-3 Security Function Isolation

[14] Standards Mapping - OWASP Top 10 2004

A2 Broken Access Control

[15] Standards Mapping - OWASP Top 10 2007

A4 Insecure Direct Object Reference

[16] Standards Mapping - OWASP Top 10 2010

A4 Insecure Direct Object References

[17] Standards Mapping - OWASP Top 10 2013

A4 Insecure Direct Object References

[18] Standards Mapping - OWASP Top 10 2017

A5 Broken Access Control

[19] Standards Mapping - OWASP Top 10 2021

A01 Broken Access Control

[20] Standards Mapping - OWASP Application Security Verification Standard 4.0

4.1.2 General Access Control Design (L1 L2 L3), 4.1.3 General Access Control Design (L1 L2 L3), 4.1.5 General Access Control Design (L1 L2 L3), 4.2.1 Operation Level Access Control (L1 L2 L3), 13.4.2 GraphQL and other Web Service Data Layer Security Requirements (L2 L3)

[21] Standards Mapping - OWASP Mobile 2014

M5 Poor Authorization and Authentication

[22] Standards Mapping - OWASP Mobile 2024

M3 Insecure Authentication/Authorization

[23] Standards Mapping - OWASP Mobile Application Security Verification Standard 2.0

MASVS-AUTH-1

[24] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1

Requirement 6.5.2

[25] Standards Mapping - Payment Card Industry Data Security Standard Version 1.2

Requirement 6.5.4

[26] Standards Mapping - Payment Card Industry Data Security Standard Version 2.0

Requirement 6.5.8

[27] Standards Mapping - Payment Card Industry Data Security Standard Version 3.0

Requirement 6.5.8

[28] Standards Mapping - Payment Card Industry Data Security Standard Version 3.1

Requirement 6.5.8

[29] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2

Requirement 6.5.8

[30] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2.1

Requirement 6.5.8

[31] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0

Requirement 6.2.4

[32] Standards Mapping - Payment Card Industry Software Security Framework 1.0

Control Objective 5.4 - Authentication and Access Control

[33] Standards Mapping - Payment Card Industry Software Security Framework 1.1

Control Objective 5.4 - Authentication and Access Control

[34] Standards Mapping - Payment Card Industry Software Security Framework 1.2

Control Objective 5.4 - Authentication and Access Control, Control Objective C.2.3 - Web Software Access Controls

[35] Standards Mapping - SANS Top 25 2011

Porous Defenses - CWE ID 863

[36] Standards Mapping - Security Technical Implementation Guide Version 3.1

APP3480.1 CAT II

[37] Standards Mapping - Security Technical Implementation Guide Version 3.4

APP3480.1 CAT I

[38] Standards Mapping - Security Technical Implementation Guide Version 3.5

APP3480.1 CAT I

[39] Standards Mapping - Security Technical Implementation Guide Version 3.6

APP3480.1 CAT I

[40] Standards Mapping - Security Technical Implementation Guide Version 3.7

APP3480.1 CAT I

[41] Standards Mapping - Security Technical Implementation Guide Version 3.9

APP3480.1 CAT I

[42] Standards Mapping - Security Technical Implementation Guide Version 3.10

APP3480.1 CAT I

[43] Standards Mapping - Security Technical Implementation Guide Version 4.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[44] Standards Mapping - Security Technical Implementation Guide Version 4.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[45] Standards Mapping - Security Technical Implementation Guide Version 4.3

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[46] Standards Mapping - Security Technical Implementation Guide Version 4.4

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[47] Standards Mapping - Security Technical Implementation Guide Version 4.5

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[48] Standards Mapping - Security Technical Implementation Guide Version 4.6

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[49] Standards Mapping - Security Technical Implementation Guide Version 4.7

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[50] Standards Mapping - Security Technical Implementation Guide Version 4.8

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[51] Standards Mapping - Security Technical Implementation Guide Version 4.9

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[52] Standards Mapping - Security Technical Implementation Guide Version 4.10

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[53] Standards Mapping - Security Technical Implementation Guide Version 4.11

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[54] Standards Mapping - Security Technical Implementation Guide Version 5.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[55] Standards Mapping - Security Technical Implementation Guide Version 5.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[56] Standards Mapping - Security Technical Implementation Guide Version 5.3

APSC-DV-000450 CAT II, APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[57] Standards Mapping - Web Application Security Consortium Version 2.00

Insufficient Authorization (WASC-02)

[58] Standards Mapping - Web Application Security Consortium 24 + 2

Insufficient Authorization

desc.dataflow.actionscript.access_control_database

Abstract

Without proper access control, executing a SOQL/SOSL statement that may contain a user-supplied primary key can allow an attacker to view unauthorized records.

Explanation

Database access control errors occur when:

1. Data enters a program from an untrusted source.

2. The data is used to specify the value of a primary key in a SOQL/SOSL query.
Example 1: In the following code example, inputID value is originated from a pre-defined list, and a bind variable helps to prevent SOQL/SOSL injection.


...
result = [SELECT Name, Phone FROM Contact WHERE (IsDeleted = false AND Id=:inputID)];
...

The problem with the previous example is that using a pre-defined list of IDs is insufficient to prevent the user from modifying the value of inputID. If the attacker is able to bypass the interface and send a request with a different value he will have access to other contact information. Since the code in this example does not check to ensure that the user has permission to access the requested contact, it will display any contact, even if the user is not authorized to see it.

References

[1] Salesforce Developers Technical Library Secure Coding Guidelines - Authorization and Access Control

[2] Salesforce Developers Technical Library Testing CRUD and FLS Enforcement

[3] Salesforce Developers Technical Library Enforcing CRUD and FLS

[4] Standards Mapping - CIS Azure Kubernetes Service Benchmark

3.0

[5] Standards Mapping - CIS Amazon Elastic Kubernetes Service Benchmark

1.0

[6] Standards Mapping - CIS Amazon Web Services Foundations Benchmark

1

[7] Standards Mapping - CIS Google Kubernetes Engine Benchmark

confidentiality

[8] Standards Mapping - CIS Kubernetes Benchmark

complete

[9] Standards Mapping - Common Weakness Enumeration

CWE ID 566

[10] Standards Mapping - Common Weakness Enumeration Top 25 2023

[24] CWE ID 863

[11] Standards Mapping - DISA Control Correlation Identifier Version 2

CCI-000213, CCI-001084, CCI-002165

[12] Standards Mapping - FIPS200

AC

[13] Standards Mapping - General Data Protection Regulation (GDPR)

Access Violation

[14] Standards Mapping - NIST Special Publication 800-53 Revision 4

AC-3 Access Enforcement (P1), AC-23 Data Mining Protection (P0), SC-3 Security Function Isolation (P1)

[15] Standards Mapping - NIST Special Publication 800-53 Revision 5

AC-3 Access Enforcement, AC-23 Data Mining Protection, SC-3 Security Function Isolation

[16] Standards Mapping - OWASP Top 10 2004

A2 Broken Access Control

[17] Standards Mapping - OWASP Top 10 2007

A4 Insecure Direct Object Reference

[18] Standards Mapping - OWASP Top 10 2010

A4 Insecure Direct Object References

[19] Standards Mapping - OWASP Top 10 2013

A4 Insecure Direct Object References

[20] Standards Mapping - OWASP Top 10 2017

A5 Broken Access Control

[21] Standards Mapping - OWASP Top 10 2021

A01 Broken Access Control

[22] Standards Mapping - OWASP Application Security Verification Standard 4.0

4.1.2 General Access Control Design (L1 L2 L3), 4.1.3 General Access Control Design (L1 L2 L3), 4.1.5 General Access Control Design (L1 L2 L3), 4.2.1 Operation Level Access Control (L1 L2 L3), 13.4.2 GraphQL and other Web Service Data Layer Security Requirements (L2 L3)

[23] Standards Mapping - OWASP Mobile 2014

M5 Poor Authorization and Authentication

[24] Standards Mapping - OWASP Mobile 2024

M3 Insecure Authentication/Authorization

[25] Standards Mapping - OWASP Mobile Application Security Verification Standard 2.0

MASVS-AUTH-1

[26] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1

Requirement 6.5.2

[27] Standards Mapping - Payment Card Industry Data Security Standard Version 1.2

Requirement 6.5.4

[28] Standards Mapping - Payment Card Industry Data Security Standard Version 2.0

Requirement 6.5.8

[29] Standards Mapping - Payment Card Industry Data Security Standard Version 3.0

Requirement 6.5.8

[30] Standards Mapping - Payment Card Industry Data Security Standard Version 3.1

Requirement 6.5.8

[31] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2

Requirement 6.5.8

[32] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2.1

Requirement 6.5.8

[33] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0

Requirement 6.2.4

[34] Standards Mapping - Payment Card Industry Software Security Framework 1.0

Control Objective 5.4 - Authentication and Access Control

[35] Standards Mapping - Payment Card Industry Software Security Framework 1.1

Control Objective 5.4 - Authentication and Access Control

[36] Standards Mapping - Payment Card Industry Software Security Framework 1.2

Control Objective 5.4 - Authentication and Access Control, Control Objective C.2.3 - Web Software Access Controls

[37] Standards Mapping - SANS Top 25 2011

Porous Defenses - CWE ID 863

[38] Standards Mapping - Security Technical Implementation Guide Version 3.1

APP3480.1 CAT II

[39] Standards Mapping - Security Technical Implementation Guide Version 3.4

APP3480.1 CAT I

[40] Standards Mapping - Security Technical Implementation Guide Version 3.5

APP3480.1 CAT I

[41] Standards Mapping - Security Technical Implementation Guide Version 3.6

APP3480.1 CAT I

[42] Standards Mapping - Security Technical Implementation Guide Version 3.7

APP3480.1 CAT I

[43] Standards Mapping - Security Technical Implementation Guide Version 3.9

APP3480.1 CAT I

[44] Standards Mapping - Security Technical Implementation Guide Version 3.10

APP3480.1 CAT I

[45] Standards Mapping - Security Technical Implementation Guide Version 4.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[46] Standards Mapping - Security Technical Implementation Guide Version 4.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[47] Standards Mapping - Security Technical Implementation Guide Version 4.3

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[48] Standards Mapping - Security Technical Implementation Guide Version 4.4

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[49] Standards Mapping - Security Technical Implementation Guide Version 4.5

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[50] Standards Mapping - Security Technical Implementation Guide Version 4.6

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[51] Standards Mapping - Security Technical Implementation Guide Version 4.7

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[52] Standards Mapping - Security Technical Implementation Guide Version 4.8

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[53] Standards Mapping - Security Technical Implementation Guide Version 4.9

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[54] Standards Mapping - Security Technical Implementation Guide Version 4.10

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[55] Standards Mapping - Security Technical Implementation Guide Version 4.11

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[56] Standards Mapping - Security Technical Implementation Guide Version 5.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[57] Standards Mapping - Security Technical Implementation Guide Version 5.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[58] Standards Mapping - Security Technical Implementation Guide Version 5.3

APSC-DV-000450 CAT II, APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[59] Standards Mapping - Web Application Security Consortium Version 2.00

Insufficient Authorization (WASC-02)

[60] Standards Mapping - Web Application Security Consortium 24 + 2

Insufficient Authorization

desc.dataflow.apex.access_control_database

Abstract

Without proper access control, executing an LINQ statement that contains a user-controlled primary key can allow an attacker to view unauthorized records.

Explanation

Database access control errors occur when:

1. Data enters a program from an untrusted source.

2. The data is used to specify the value of a primary key in an LINQ query.
Example 1: The following code executes an LINQ query that searches for an invoice matching the specified identifier [1]. The identifier is selected from a list of all invoices associated with the current authenticated user.


...

int16 id = System.Convert.ToInt16(invoiceID.Text);
var invoice = OrderSystem.getInvoices()
.Where(new Invoice { invoiceID = id });
...

The problem is that the developer has failed to consider all of the possible values of id. Although the interface generates a list of invoice identifiers that belong to the current user, an attacker might bypass this interface to request any desired invoice. Because the code in this example does not check to ensure that the user has permission to access the requested invoice, it will display any invoice, even if it does not belong to the current user.

References

[1] S. J. Friedl SQL Injection Attacks by Example

[2] Standards Mapping - CIS Azure Kubernetes Service Benchmark

3.0

[3] Standards Mapping - CIS Amazon Elastic Kubernetes Service Benchmark

1.0

[4] Standards Mapping - CIS Amazon Web Services Foundations Benchmark

1

[5] Standards Mapping - CIS Google Kubernetes Engine Benchmark

confidentiality

[6] Standards Mapping - CIS Kubernetes Benchmark

complete

[7] Standards Mapping - Common Weakness Enumeration

CWE ID 566

[8] Standards Mapping - Common Weakness Enumeration Top 25 2023

[24] CWE ID 863

[9] Standards Mapping - DISA Control Correlation Identifier Version 2

CCI-000213, CCI-001084, CCI-002165

[10] Standards Mapping - FIPS200

AC

[11] Standards Mapping - General Data Protection Regulation (GDPR)

Access Violation

[12] Standards Mapping - NIST Special Publication 800-53 Revision 4

AC-3 Access Enforcement (P1), AC-23 Data Mining Protection (P0), SC-3 Security Function Isolation (P1)

[13] Standards Mapping - NIST Special Publication 800-53 Revision 5

AC-3 Access Enforcement, AC-23 Data Mining Protection, SC-3 Security Function Isolation

[14] Standards Mapping - OWASP Top 10 2004

A2 Broken Access Control

[15] Standards Mapping - OWASP Top 10 2007

A4 Insecure Direct Object Reference

[16] Standards Mapping - OWASP Top 10 2010

A4 Insecure Direct Object References

[17] Standards Mapping - OWASP Top 10 2013

A4 Insecure Direct Object References

[18] Standards Mapping - OWASP Top 10 2017

A5 Broken Access Control

[19] Standards Mapping - OWASP Top 10 2021

A01 Broken Access Control

[20] Standards Mapping - OWASP Application Security Verification Standard 4.0

4.1.2 General Access Control Design (L1 L2 L3), 4.1.3 General Access Control Design (L1 L2 L3), 4.1.5 General Access Control Design (L1 L2 L3), 4.2.1 Operation Level Access Control (L1 L2 L3), 13.4.2 GraphQL and other Web Service Data Layer Security Requirements (L2 L3)

[21] Standards Mapping - OWASP Mobile 2014

M5 Poor Authorization and Authentication

[22] Standards Mapping - OWASP Mobile 2024

M3 Insecure Authentication/Authorization

[23] Standards Mapping - OWASP Mobile Application Security Verification Standard 2.0

MASVS-AUTH-1

[24] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1

Requirement 6.5.2

[25] Standards Mapping - Payment Card Industry Data Security Standard Version 1.2

Requirement 6.5.4

[26] Standards Mapping - Payment Card Industry Data Security Standard Version 2.0

Requirement 6.5.8

[27] Standards Mapping - Payment Card Industry Data Security Standard Version 3.0

Requirement 6.5.8

[28] Standards Mapping - Payment Card Industry Data Security Standard Version 3.1

Requirement 6.5.8

[29] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2

Requirement 6.5.8

[30] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2.1

Requirement 6.5.8

[31] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0

Requirement 6.2.4

[32] Standards Mapping - Payment Card Industry Software Security Framework 1.0

Control Objective 5.4 - Authentication and Access Control

[33] Standards Mapping - Payment Card Industry Software Security Framework 1.1

Control Objective 5.4 - Authentication and Access Control

[34] Standards Mapping - Payment Card Industry Software Security Framework 1.2

Control Objective 5.4 - Authentication and Access Control, Control Objective C.2.3 - Web Software Access Controls

[35] Standards Mapping - SANS Top 25 2011

Porous Defenses - CWE ID 863

[36] Standards Mapping - Security Technical Implementation Guide Version 3.1

APP3480.1 CAT II

[37] Standards Mapping - Security Technical Implementation Guide Version 3.4

APP3480.1 CAT I

[38] Standards Mapping - Security Technical Implementation Guide Version 3.5

APP3480.1 CAT I

[39] Standards Mapping - Security Technical Implementation Guide Version 3.6

APP3480.1 CAT I

[40] Standards Mapping - Security Technical Implementation Guide Version 3.7

APP3480.1 CAT I

[41] Standards Mapping - Security Technical Implementation Guide Version 3.9

APP3480.1 CAT I

[42] Standards Mapping - Security Technical Implementation Guide Version 3.10

APP3480.1 CAT I

[43] Standards Mapping - Security Technical Implementation Guide Version 4.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[44] Standards Mapping - Security Technical Implementation Guide Version 4.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[45] Standards Mapping - Security Technical Implementation Guide Version 4.3

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[46] Standards Mapping - Security Technical Implementation Guide Version 4.4

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[47] Standards Mapping - Security Technical Implementation Guide Version 4.5

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[48] Standards Mapping - Security Technical Implementation Guide Version 4.6

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[49] Standards Mapping - Security Technical Implementation Guide Version 4.7

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[50] Standards Mapping - Security Technical Implementation Guide Version 4.8

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[51] Standards Mapping - Security Technical Implementation Guide Version 4.9

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[52] Standards Mapping - Security Technical Implementation Guide Version 4.10

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[53] Standards Mapping - Security Technical Implementation Guide Version 4.11

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[54] Standards Mapping - Security Technical Implementation Guide Version 5.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[55] Standards Mapping - Security Technical Implementation Guide Version 5.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[56] Standards Mapping - Security Technical Implementation Guide Version 5.3

APSC-DV-000450 CAT II, APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[57] Standards Mapping - Web Application Security Consortium Version 2.00

Insufficient Authorization (WASC-02)

[58] Standards Mapping - Web Application Security Consortium 24 + 2

Insufficient Authorization

desc.dataflow.dotnet.access_control_linq

Abstract

Without proper access control, executing a SQL statement that contains a user-controlled primary key can allow an attacker to view unauthorized records.

Explanation

Database access control errors occur when:

1.Data enters a program from an untrusted source.

2.The data is used to specify the value of a primary key in a SQL query.
Example 1: The following code uses a parameterized statement, which escapes metacharacters and prevents SQL injection vulnerabilities, to construct and execute a SQL query that searches for an invoice matching the specified identifier [1]. The identifier is selected from a list of all invoices associated with the current authenticated user.


...
CMyRecordset rs(&dbms);
rs.PrepareSQL("SELECT * FROM invoices WHERE id = ?");
rs.SetParam_int(0,atoi(r.Lookup("invoiceID").c_str()));
rs.SafeExecuteSQL();
...

The problem is that the developer has failed to consider all of the possible values of id. Although the interface generates a list of invoice identifiers that belong to the current user, an attacker might bypass this interface to request any desired invoice. Because the code in this example does not check to ensure that the user has permission to access the requested invoice, it will display any invoice, even if it does not belong to the current user.

References

[1] S. J. Friedl SQL Injection Attacks by Example

[2] Standards Mapping - CIS Azure Kubernetes Service Benchmark

3.0

[3] Standards Mapping - CIS Amazon Elastic Kubernetes Service Benchmark

1.0

[4] Standards Mapping - CIS Amazon Web Services Foundations Benchmark

1

[5] Standards Mapping - CIS Google Kubernetes Engine Benchmark

confidentiality

[6] Standards Mapping - CIS Kubernetes Benchmark

complete

[7] Standards Mapping - Common Weakness Enumeration

CWE ID 566

[8] Standards Mapping - Common Weakness Enumeration Top 25 2023

[24] CWE ID 863

[9] Standards Mapping - DISA Control Correlation Identifier Version 2

CCI-000213, CCI-001084, CCI-002165

[10] Standards Mapping - FIPS200

AC

[11] Standards Mapping - General Data Protection Regulation (GDPR)

Access Violation

[12] Standards Mapping - NIST Special Publication 800-53 Revision 4

AC-3 Access Enforcement (P1), AC-23 Data Mining Protection (P0), SC-3 Security Function Isolation (P1)

[13] Standards Mapping - NIST Special Publication 800-53 Revision 5

AC-3 Access Enforcement, AC-23 Data Mining Protection, SC-3 Security Function Isolation

[14] Standards Mapping - OWASP Top 10 2004

A2 Broken Access Control

[15] Standards Mapping - OWASP Top 10 2007

A4 Insecure Direct Object Reference

[16] Standards Mapping - OWASP Top 10 2010

A4 Insecure Direct Object References

[17] Standards Mapping - OWASP Top 10 2013

A4 Insecure Direct Object References

[18] Standards Mapping - OWASP Top 10 2017

A5 Broken Access Control

[19] Standards Mapping - OWASP Top 10 2021

A01 Broken Access Control

[20] Standards Mapping - OWASP Application Security Verification Standard 4.0

4.1.2 General Access Control Design (L1 L2 L3), 4.1.3 General Access Control Design (L1 L2 L3), 4.1.5 General Access Control Design (L1 L2 L3), 4.2.1 Operation Level Access Control (L1 L2 L3), 13.4.2 GraphQL and other Web Service Data Layer Security Requirements (L2 L3)

[21] Standards Mapping - OWASP Mobile 2014

M5 Poor Authorization and Authentication

[22] Standards Mapping - OWASP Mobile 2024

M3 Insecure Authentication/Authorization

[24] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1

Requirement 6.5.2

[25] Standards Mapping - Payment Card Industry Data Security Standard Version 1.2

Requirement 6.5.4

[26] Standards Mapping - Payment Card Industry Data Security Standard Version 2.0

Requirement 6.5.8

[27] Standards Mapping - Payment Card Industry Data Security Standard Version 3.0

Requirement 6.5.8

[28] Standards Mapping - Payment Card Industry Data Security Standard Version 3.1

Requirement 6.5.8

[29] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2

Requirement 6.5.8

[30] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2.1

Requirement 6.5.8

[31] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0

Requirement 6.2.4

[32] Standards Mapping - Payment Card Industry Software Security Framework 1.0

Control Objective 5.4 - Authentication and Access Control

[33] Standards Mapping - Payment Card Industry Software Security Framework 1.1

Control Objective 5.4 - Authentication and Access Control

[34] Standards Mapping - Payment Card Industry Software Security Framework 1.2

Control Objective 5.4 - Authentication and Access Control, Control Objective C.2.3 - Web Software Access Controls

[35] Standards Mapping - SANS Top 25 2011

Porous Defenses - CWE ID 863

[36] Standards Mapping - Security Technical Implementation Guide Version 3.1

APP3480.1 CAT II

[37] Standards Mapping - Security Technical Implementation Guide Version 3.4

APP3480.1 CAT I

[38] Standards Mapping - Security Technical Implementation Guide Version 3.5

APP3480.1 CAT I

[39] Standards Mapping - Security Technical Implementation Guide Version 3.6

APP3480.1 CAT I

[40] Standards Mapping - Security Technical Implementation Guide Version 3.7

APP3480.1 CAT I

[41] Standards Mapping - Security Technical Implementation Guide Version 3.9

APP3480.1 CAT I

[42] Standards Mapping - Security Technical Implementation Guide Version 3.10

APP3480.1 CAT I

[43] Standards Mapping - Security Technical Implementation Guide Version 4.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[44] Standards Mapping - Security Technical Implementation Guide Version 4.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[45] Standards Mapping - Security Technical Implementation Guide Version 4.3

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[46] Standards Mapping - Security Technical Implementation Guide Version 4.4

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[47] Standards Mapping - Security Technical Implementation Guide Version 4.5

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[48] Standards Mapping - Security Technical Implementation Guide Version 4.6

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[49] Standards Mapping - Security Technical Implementation Guide Version 4.7

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[50] Standards Mapping - Security Technical Implementation Guide Version 4.8

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[51] Standards Mapping - Security Technical Implementation Guide Version 4.9

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[52] Standards Mapping - Security Technical Implementation Guide Version 4.10

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[53] Standards Mapping - Security Technical Implementation Guide Version 4.11

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[54] Standards Mapping - Security Technical Implementation Guide Version 5.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[55] Standards Mapping - Security Technical Implementation Guide Version 5.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[56] Standards Mapping - Security Technical Implementation Guide Version 5.3

APSC-DV-000450 CAT II, APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[57] Standards Mapping - Web Application Security Consortium Version 2.00

Insufficient Authorization (WASC-02)

[58] Standards Mapping - Web Application Security Consortium 24 + 2

Insufficient Authorization

desc.dataflow.cpp.access_control_database

Abstract

Without proper access control, executing a SQL statement that contains a user-controlled primary key can allow an attacker to view unauthorized records.

Explanation

Database access control errors occur when:

1.Data enters a program from an untrusted source.

2.The data is used to specify the value of a primary key in a SQL query.
Example 1: The following code uses a parameterized statement, which escapes metacharacters and prevents SQL injection vulnerabilities, to construct and execute a SQL query that searches for an invoice matching the specified identifier [1]. The identifier is selected from a list of all invoices associated with the current authenticated user.


...
ACCEPT ID.
EXEC SQL
DECLARE C1 CURSOR FOR
SELECT INVNO, INVDATE, INVTOTAL
FROM INVOICES
WHERE INVOICEID = :ID
END-EXEC.
...

The problem is that the developer has failed to consider all of the possible values of ID. Although the interface generates a list of invoice identifiers that belong to the current user, an attacker might bypass this interface to request any desired invoice. Because the code in this example does not check to ensure that the user has permission to access the requested invoice, it will display any invoice, even if it does not belong to the current user.

References

[1] S. J. Friedl SQL Injection Attacks by Example

[2] Standards Mapping - CIS Azure Kubernetes Service Benchmark

3.0

[3] Standards Mapping - CIS Amazon Elastic Kubernetes Service Benchmark

1.0

[4] Standards Mapping - CIS Amazon Web Services Foundations Benchmark

1

[5] Standards Mapping - CIS Google Kubernetes Engine Benchmark

confidentiality

[6] Standards Mapping - CIS Kubernetes Benchmark

complete

[7] Standards Mapping - Common Weakness Enumeration

CWE ID 566

[8] Standards Mapping - Common Weakness Enumeration Top 25 2023

[24] CWE ID 863

[9] Standards Mapping - DISA Control Correlation Identifier Version 2

CCI-000213, CCI-001084, CCI-002165

[10] Standards Mapping - FIPS200

AC

[11] Standards Mapping - General Data Protection Regulation (GDPR)

Access Violation

[12] Standards Mapping - NIST Special Publication 800-53 Revision 4

AC-3 Access Enforcement (P1), AC-23 Data Mining Protection (P0), SC-3 Security Function Isolation (P1)

[13] Standards Mapping - NIST Special Publication 800-53 Revision 5

AC-3 Access Enforcement, AC-23 Data Mining Protection, SC-3 Security Function Isolation

[14] Standards Mapping - OWASP Top 10 2004

A2 Broken Access Control

[15] Standards Mapping - OWASP Top 10 2007

A4 Insecure Direct Object Reference

[16] Standards Mapping - OWASP Top 10 2010

A4 Insecure Direct Object References

[17] Standards Mapping - OWASP Top 10 2013

A4 Insecure Direct Object References

[18] Standards Mapping - OWASP Top 10 2017

A5 Broken Access Control

[19] Standards Mapping - OWASP Top 10 2021

A01 Broken Access Control

[20] Standards Mapping - OWASP Application Security Verification Standard 4.0

4.1.2 General Access Control Design (L1 L2 L3), 4.1.3 General Access Control Design (L1 L2 L3), 4.1.5 General Access Control Design (L1 L2 L3), 4.2.1 Operation Level Access Control (L1 L2 L3), 13.4.2 GraphQL and other Web Service Data Layer Security Requirements (L2 L3)

[21] Standards Mapping - OWASP Mobile 2014

M5 Poor Authorization and Authentication

[22] Standards Mapping - OWASP Mobile 2024

M3 Insecure Authentication/Authorization

[23] Standards Mapping - OWASP Mobile Application Security Verification Standard 2.0

MASVS-AUTH-1

[24] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1

Requirement 6.5.2

[25] Standards Mapping - Payment Card Industry Data Security Standard Version 1.2

Requirement 6.5.4

[26] Standards Mapping - Payment Card Industry Data Security Standard Version 2.0

Requirement 6.5.8

[27] Standards Mapping - Payment Card Industry Data Security Standard Version 3.0

Requirement 6.5.8

[28] Standards Mapping - Payment Card Industry Data Security Standard Version 3.1

Requirement 6.5.8

[29] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2

Requirement 6.5.8

[30] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2.1

Requirement 6.5.8

[31] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0

Requirement 6.2.4

[32] Standards Mapping - Payment Card Industry Software Security Framework 1.0

Control Objective 5.4 - Authentication and Access Control

[33] Standards Mapping - Payment Card Industry Software Security Framework 1.1

Control Objective 5.4 - Authentication and Access Control

[34] Standards Mapping - Payment Card Industry Software Security Framework 1.2

Control Objective 5.4 - Authentication and Access Control, Control Objective C.2.3 - Web Software Access Controls

[35] Standards Mapping - SANS Top 25 2011

Porous Defenses - CWE ID 863

[36] Standards Mapping - Security Technical Implementation Guide Version 3.1

APP3480.1 CAT II

[37] Standards Mapping - Security Technical Implementation Guide Version 3.4

APP3480.1 CAT I

[38] Standards Mapping - Security Technical Implementation Guide Version 3.5

APP3480.1 CAT I

[39] Standards Mapping - Security Technical Implementation Guide Version 3.6

APP3480.1 CAT I

[40] Standards Mapping - Security Technical Implementation Guide Version 3.7

APP3480.1 CAT I

[41] Standards Mapping - Security Technical Implementation Guide Version 3.9

APP3480.1 CAT I

[42] Standards Mapping - Security Technical Implementation Guide Version 3.10

APP3480.1 CAT I

[43] Standards Mapping - Security Technical Implementation Guide Version 4.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[44] Standards Mapping - Security Technical Implementation Guide Version 4.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[45] Standards Mapping - Security Technical Implementation Guide Version 4.3

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[46] Standards Mapping - Security Technical Implementation Guide Version 4.4

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[47] Standards Mapping - Security Technical Implementation Guide Version 4.5

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[48] Standards Mapping - Security Technical Implementation Guide Version 4.6

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[49] Standards Mapping - Security Technical Implementation Guide Version 4.7

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[50] Standards Mapping - Security Technical Implementation Guide Version 4.8

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[51] Standards Mapping - Security Technical Implementation Guide Version 4.9

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[52] Standards Mapping - Security Technical Implementation Guide Version 4.10

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[53] Standards Mapping - Security Technical Implementation Guide Version 4.11

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[54] Standards Mapping - Security Technical Implementation Guide Version 5.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[55] Standards Mapping - Security Technical Implementation Guide Version 5.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[56] Standards Mapping - Security Technical Implementation Guide Version 5.3

APSC-DV-000450 CAT II, APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[57] Standards Mapping - Web Application Security Consortium Version 2.00

Insufficient Authorization (WASC-02)

[58] Standards Mapping - Web Application Security Consortium 24 + 2

Insufficient Authorization

desc.dataflow.cobol.access_control_database

Abstract

Without proper access control, executing a deleteDatabase method that contains a user-controlled database name can allow an attacker to delete any database.

Explanation

Database access control errors occur when:

1.Data enters a program from an untrusted source.

2.The data is used to specify the value of a database name.

References

[1] Standards Mapping - CIS Azure Kubernetes Service Benchmark

3.0

[2] Standards Mapping - CIS Amazon Elastic Kubernetes Service Benchmark

1.0

[3] Standards Mapping - CIS Amazon Web Services Foundations Benchmark

1

[4] Standards Mapping - CIS Google Kubernetes Engine Benchmark

confidentiality

[5] Standards Mapping - CIS Kubernetes Benchmark

complete

[6] Standards Mapping - Common Weakness Enumeration

CWE ID 566

[7] Standards Mapping - Common Weakness Enumeration Top 25 2023

[24] CWE ID 863

[8] Standards Mapping - DISA Control Correlation Identifier Version 2

CCI-000213, CCI-001084, CCI-002165

[9] Standards Mapping - FIPS200

AC

[10] Standards Mapping - General Data Protection Regulation (GDPR)

Access Violation

[11] Standards Mapping - NIST Special Publication 800-53 Revision 4

AC-3 Access Enforcement (P1), AC-23 Data Mining Protection (P0), SC-3 Security Function Isolation (P1)

[12] Standards Mapping - NIST Special Publication 800-53 Revision 5

AC-3 Access Enforcement, AC-23 Data Mining Protection, SC-3 Security Function Isolation

[13] Standards Mapping - OWASP Top 10 2004

A2 Broken Access Control

[14] Standards Mapping - OWASP Top 10 2007

A4 Insecure Direct Object Reference

[15] Standards Mapping - OWASP Top 10 2010

A4 Insecure Direct Object References

[16] Standards Mapping - OWASP Top 10 2013

A4 Insecure Direct Object References

[17] Standards Mapping - OWASP Top 10 2017

A5 Broken Access Control

[18] Standards Mapping - OWASP Top 10 2021

A01 Broken Access Control

[19] Standards Mapping - OWASP Application Security Verification Standard 4.0

4.1.2 General Access Control Design (L1 L2 L3), 4.1.3 General Access Control Design (L1 L2 L3), 4.1.5 General Access Control Design (L1 L2 L3), 4.2.1 Operation Level Access Control (L1 L2 L3), 13.4.2 GraphQL and other Web Service Data Layer Security Requirements (L2 L3)

[20] Standards Mapping - OWASP Mobile 2014

M5 Poor Authorization and Authentication

[21] Standards Mapping - OWASP Mobile 2024

M3 Insecure Authentication/Authorization

[22] Standards Mapping - OWASP Mobile Application Security Verification Standard 2.0

MASVS-AUTH-1

[23] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1

Requirement 6.5.2

[24] Standards Mapping - Payment Card Industry Data Security Standard Version 1.2

Requirement 6.5.4

[25] Standards Mapping - Payment Card Industry Data Security Standard Version 2.0

Requirement 6.5.8

[26] Standards Mapping - Payment Card Industry Data Security Standard Version 3.0

Requirement 6.5.8

[27] Standards Mapping - Payment Card Industry Data Security Standard Version 3.1

Requirement 6.5.8

[28] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2

Requirement 6.5.8

[29] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2.1

Requirement 6.5.8

[30] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0

Requirement 6.2.4

[31] Standards Mapping - Payment Card Industry Software Security Framework 1.0

Control Objective 5.4 - Authentication and Access Control

[32] Standards Mapping - Payment Card Industry Software Security Framework 1.1

Control Objective 5.4 - Authentication and Access Control

[33] Standards Mapping - Payment Card Industry Software Security Framework 1.2

Control Objective 5.4 - Authentication and Access Control, Control Objective C.2.3 - Web Software Access Controls

[34] Standards Mapping - SANS Top 25 2011

Porous Defenses - CWE ID 863

[35] Standards Mapping - Security Technical Implementation Guide Version 3.1

APP3480.1 CAT II

[36] Standards Mapping - Security Technical Implementation Guide Version 3.4

APP3480.1 CAT I

[37] Standards Mapping - Security Technical Implementation Guide Version 3.5

APP3480.1 CAT I

[38] Standards Mapping - Security Technical Implementation Guide Version 3.6

APP3480.1 CAT I

[39] Standards Mapping - Security Technical Implementation Guide Version 3.7

APP3480.1 CAT I

[40] Standards Mapping - Security Technical Implementation Guide Version 3.9

APP3480.1 CAT I

[41] Standards Mapping - Security Technical Implementation Guide Version 3.10

APP3480.1 CAT I

[42] Standards Mapping - Security Technical Implementation Guide Version 4.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[43] Standards Mapping - Security Technical Implementation Guide Version 4.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[44] Standards Mapping - Security Technical Implementation Guide Version 4.3

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[45] Standards Mapping - Security Technical Implementation Guide Version 4.4

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[46] Standards Mapping - Security Technical Implementation Guide Version 4.5

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[47] Standards Mapping - Security Technical Implementation Guide Version 4.6

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[48] Standards Mapping - Security Technical Implementation Guide Version 4.7

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[49] Standards Mapping - Security Technical Implementation Guide Version 4.8

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[50] Standards Mapping - Security Technical Implementation Guide Version 4.9

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[51] Standards Mapping - Security Technical Implementation Guide Version 4.10

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[52] Standards Mapping - Security Technical Implementation Guide Version 4.11

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[53] Standards Mapping - Security Technical Implementation Guide Version 5.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[54] Standards Mapping - Security Technical Implementation Guide Version 5.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[55] Standards Mapping - Security Technical Implementation Guide Version 5.3

APSC-DV-000450 CAT II, APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[56] Standards Mapping - Web Application Security Consortium Version 2.00

Insufficient Authorization (WASC-02)

[57] Standards Mapping - Web Application Security Consortium 24 + 2

Insufficient Authorization

desc.dataflow.dart.access_control_database

Abstract

Without proper access control, executing a SQL statement that contains a user-controlled primary key can give an attacker access to unauthorized records.

Explanation

Database access control errors occur when:

1. Data enters a program from an untrusted source.

2. The data is used to specify the value of a primary key in a SQL query.
Example 1: The following code uses a parameterized statement, which escapes metacharacters and prevents SQL injection vulnerabilities, to construct and execute a SQL query that searches for an invoice matching the specified identifier [1]. The identifier is selected from a list of all invoices associated with the current authenticated user.


...
id := request.FormValue("invoiceID")
query := "SELECT * FROM invoices WHERE id = ?";
rows, err := db.Query(query, id)
...

The problem is that the developer has failed to consider all of the possible values of id. Although the interface generates a list of invoice identifiers that belong to the current user, an attacker might bypass this interface to request any desired invoice. Because the code in this example does not check to ensure that the user has permission to access the requested invoice, it will display any invoice, even if it does not belong to the current user.

References

[1] Standards Mapping - CIS Azure Kubernetes Service Benchmark

3.0

[2] Standards Mapping - CIS Amazon Elastic Kubernetes Service Benchmark

1.0

[3] Standards Mapping - CIS Amazon Web Services Foundations Benchmark

1

[4] Standards Mapping - CIS Google Kubernetes Engine Benchmark

confidentiality

[5] Standards Mapping - CIS Kubernetes Benchmark

complete

[6] Standards Mapping - Common Weakness Enumeration

CWE ID 566

[7] Standards Mapping - Common Weakness Enumeration Top 25 2023

[24] CWE ID 863

[8] Standards Mapping - DISA Control Correlation Identifier Version 2

CCI-000213, CCI-001084, CCI-002165

[9] Standards Mapping - FIPS200

AC

[10] Standards Mapping - General Data Protection Regulation (GDPR)

Access Violation

[11] Standards Mapping - NIST Special Publication 800-53 Revision 4

AC-3 Access Enforcement (P1), AC-23 Data Mining Protection (P0), SC-3 Security Function Isolation (P1)

[12] Standards Mapping - NIST Special Publication 800-53 Revision 5

AC-3 Access Enforcement, AC-23 Data Mining Protection, SC-3 Security Function Isolation

[13] Standards Mapping - OWASP Top 10 2004

A2 Broken Access Control

[14] Standards Mapping - OWASP Top 10 2007

A4 Insecure Direct Object Reference

[15] Standards Mapping - OWASP Top 10 2010

A4 Insecure Direct Object References

[16] Standards Mapping - OWASP Top 10 2013

A4 Insecure Direct Object References

[17] Standards Mapping - OWASP Top 10 2017

A5 Broken Access Control

[18] Standards Mapping - OWASP Top 10 2021

A01 Broken Access Control

[19] Standards Mapping - OWASP Application Security Verification Standard 4.0

4.1.2 General Access Control Design (L1 L2 L3), 4.1.3 General Access Control Design (L1 L2 L3), 4.1.5 General Access Control Design (L1 L2 L3), 4.2.1 Operation Level Access Control (L1 L2 L3), 13.4.2 GraphQL and other Web Service Data Layer Security Requirements (L2 L3)

[20] Standards Mapping - OWASP Mobile 2014

M5 Poor Authorization and Authentication

[21] Standards Mapping - OWASP Mobile 2024

M3 Insecure Authentication/Authorization

[22] Standards Mapping - OWASP Mobile Application Security Verification Standard 2.0

MASVS-AUTH-1

[23] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1

Requirement 6.5.2

[24] Standards Mapping - Payment Card Industry Data Security Standard Version 1.2

Requirement 6.5.4

[25] Standards Mapping - Payment Card Industry Data Security Standard Version 2.0

Requirement 6.5.8

[26] Standards Mapping - Payment Card Industry Data Security Standard Version 3.0

Requirement 6.5.8

[27] Standards Mapping - Payment Card Industry Data Security Standard Version 3.1

Requirement 6.5.8

[28] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2

Requirement 6.5.8

[29] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2.1

Requirement 6.5.8

[30] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0

Requirement 6.2.4

[31] Standards Mapping - Payment Card Industry Software Security Framework 1.0

Control Objective 5.4 - Authentication and Access Control

[32] Standards Mapping - Payment Card Industry Software Security Framework 1.1

Control Objective 5.4 - Authentication and Access Control

[33] Standards Mapping - Payment Card Industry Software Security Framework 1.2

Control Objective 5.4 - Authentication and Access Control, Control Objective C.2.3 - Web Software Access Controls

[34] Standards Mapping - SANS Top 25 2011

Porous Defenses - CWE ID 863

[35] Standards Mapping - Security Technical Implementation Guide Version 3.1

APP3480.1 CAT II

[36] Standards Mapping - Security Technical Implementation Guide Version 3.4

APP3480.1 CAT I

[37] Standards Mapping - Security Technical Implementation Guide Version 3.5

APP3480.1 CAT I

[38] Standards Mapping - Security Technical Implementation Guide Version 3.6

APP3480.1 CAT I

[39] Standards Mapping - Security Technical Implementation Guide Version 3.7

APP3480.1 CAT I

[40] Standards Mapping - Security Technical Implementation Guide Version 3.9

APP3480.1 CAT I

[41] Standards Mapping - Security Technical Implementation Guide Version 3.10

APP3480.1 CAT I

[42] Standards Mapping - Security Technical Implementation Guide Version 4.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[43] Standards Mapping - Security Technical Implementation Guide Version 4.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[44] Standards Mapping - Security Technical Implementation Guide Version 4.3

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[45] Standards Mapping - Security Technical Implementation Guide Version 4.4

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[46] Standards Mapping - Security Technical Implementation Guide Version 4.5

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[47] Standards Mapping - Security Technical Implementation Guide Version 4.6

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[48] Standards Mapping - Security Technical Implementation Guide Version 4.7

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[49] Standards Mapping - Security Technical Implementation Guide Version 4.8

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[50] Standards Mapping - Security Technical Implementation Guide Version 4.9

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[51] Standards Mapping - Security Technical Implementation Guide Version 4.10

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[52] Standards Mapping - Security Technical Implementation Guide Version 4.11

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[53] Standards Mapping - Security Technical Implementation Guide Version 5.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[54] Standards Mapping - Security Technical Implementation Guide Version 5.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[55] Standards Mapping - Security Technical Implementation Guide Version 5.3

APSC-DV-000450 CAT II, APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[56] Standards Mapping - Web Application Security Consortium Version 2.00

Insufficient Authorization (WASC-02)

[57] Standards Mapping - Web Application Security Consortium 24 + 2

Insufficient Authorization

desc.dataflow.golang.access_control_database

Abstract

Without proper access control, executing a SQL statement that contains a user-controlled primary key can allow an attacker to view unauthorized records.

Explanation

Database access control errors occur when:

1.Data enters a program from an untrusted source.

2.The data is used to specify the value of a primary key in a SQL query.
Example 1: The following code uses a parameterized statement, which escapes metacharacters and prevents SQL injection vulnerabilities, to construct and execute a SQL query that searches for an invoice matching the specified identifier [1]. The identifier is selected from a list of all invoices associated with the current authenticated user.


...
id = Integer.decode(request.getParameter("invoiceID"));
String query = "SELECT * FROM invoices WHERE id = ?";
PreparedStatement stmt = conn.prepareStatement(query);
stmt.setInt(1, id);
ResultSet results = stmt.execute();
...

The problem is that the developer has failed to consider all of the possible values of id. Although the interface generates a list of invoice identifiers that belong to the current user, an attacker might bypass this interface to request any desired invoice. Because the code in this example does not check to ensure that the user has permission to access the requested invoice, it will display any invoice, even if it does not belong to the current user.

Some think that in the mobile world, classic web application vulnerabilities, such as database access control errors, do not make sense -- why would the user attack themself? However, keep in mind that the essence of mobile platforms is applications that are downloaded from various sources and run alongside each other on the same device. The likelihood of running a piece of malware next to a banking application is high, which necessitates expanding the attack surface of mobile applications to include inter-process communication.

Example 2: The following code adapts Example 1 to the Android platform.


...
String id = this.getIntent().getExtras().getString("invoiceID");
String query = "SELECT * FROM invoices WHERE id = ?";
SQLiteDatabase db = this.openOrCreateDatabase("DB", MODE_PRIVATE, null);
Cursor c = db.rawQuery(query, new Object[]{id});
...

A number of modern web frameworks provide mechanisms to perform user input validation (including Struts and Struts 2). To highlight the unvalidated sources of input, Fortify Secure Coding Rulepacks dynamically re-prioritize the issues Fortify Static Code Analyzer reports by lowering their probability of exploit and providing pointers to the supporting evidence whenever the framework validation mechanism is in use. We refer to this feature as Context-Sensitive Ranking. To further assist the Fortify user with the auditing process, the Fortify Software Security Research group makes available the Data Validation project template that groups the issues into folders based on the validation mechanism applied to their source of input.

References

[1] S. J. Friedl SQL Injection Attacks by Example

[2] Standards Mapping - CIS Azure Kubernetes Service Benchmark

3.0

[3] Standards Mapping - CIS Amazon Elastic Kubernetes Service Benchmark

1.0

[4] Standards Mapping - CIS Amazon Web Services Foundations Benchmark

1

[5] Standards Mapping - CIS Google Kubernetes Engine Benchmark

confidentiality

[6] Standards Mapping - CIS Kubernetes Benchmark

complete

[7] Standards Mapping - Common Weakness Enumeration

CWE ID 566

[8] Standards Mapping - Common Weakness Enumeration Top 25 2023

[24] CWE ID 863

[9] Standards Mapping - DISA Control Correlation Identifier Version 2

CCI-000213, CCI-001084, CCI-002165

[10] Standards Mapping - FIPS200

AC

[11] Standards Mapping - General Data Protection Regulation (GDPR)

Access Violation

[12] Standards Mapping - NIST Special Publication 800-53 Revision 4

AC-3 Access Enforcement (P1), AC-23 Data Mining Protection (P0), SC-3 Security Function Isolation (P1)

[13] Standards Mapping - NIST Special Publication 800-53 Revision 5

AC-3 Access Enforcement, AC-23 Data Mining Protection, SC-3 Security Function Isolation

[14] Standards Mapping - OWASP Top 10 2004

A2 Broken Access Control

[15] Standards Mapping - OWASP Top 10 2007

A4 Insecure Direct Object Reference

[16] Standards Mapping - OWASP Top 10 2010

A4 Insecure Direct Object References

[17] Standards Mapping - OWASP Top 10 2013

A4 Insecure Direct Object References

[18] Standards Mapping - OWASP Top 10 2017

A5 Broken Access Control

[19] Standards Mapping - OWASP Top 10 2021

A01 Broken Access Control

[20] Standards Mapping - OWASP Application Security Verification Standard 4.0

4.1.2 General Access Control Design (L1 L2 L3), 4.1.3 General Access Control Design (L1 L2 L3), 4.1.5 General Access Control Design (L1 L2 L3), 4.2.1 Operation Level Access Control (L1 L2 L3), 13.4.2 GraphQL and other Web Service Data Layer Security Requirements (L2 L3)

[21] Standards Mapping - OWASP Mobile 2014

M5 Poor Authorization and Authentication

[22] Standards Mapping - OWASP Mobile 2024

M3 Insecure Authentication/Authorization

[23] Standards Mapping - OWASP Mobile Application Security Verification Standard 2.0

MASVS-AUTH-1

[24] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1

Requirement 6.5.2

[25] Standards Mapping - Payment Card Industry Data Security Standard Version 1.2

Requirement 6.5.4

[26] Standards Mapping - Payment Card Industry Data Security Standard Version 2.0

Requirement 6.5.8

[27] Standards Mapping - Payment Card Industry Data Security Standard Version 3.0

Requirement 6.5.8

[28] Standards Mapping - Payment Card Industry Data Security Standard Version 3.1

Requirement 6.5.8

[29] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2

Requirement 6.5.8

[30] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2.1

Requirement 6.5.8

[31] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0

Requirement 6.2.4

[32] Standards Mapping - Payment Card Industry Software Security Framework 1.0

Control Objective 5.4 - Authentication and Access Control

[33] Standards Mapping - Payment Card Industry Software Security Framework 1.1

Control Objective 5.4 - Authentication and Access Control

[34] Standards Mapping - Payment Card Industry Software Security Framework 1.2

Control Objective 5.4 - Authentication and Access Control, Control Objective C.2.3 - Web Software Access Controls

[35] Standards Mapping - SANS Top 25 2011

Porous Defenses - CWE ID 863

[36] Standards Mapping - Security Technical Implementation Guide Version 3.1

APP3480.1 CAT II

[37] Standards Mapping - Security Technical Implementation Guide Version 3.4

APP3480.1 CAT I

[38] Standards Mapping - Security Technical Implementation Guide Version 3.5

APP3480.1 CAT I

[39] Standards Mapping - Security Technical Implementation Guide Version 3.6

APP3480.1 CAT I

[40] Standards Mapping - Security Technical Implementation Guide Version 3.7

APP3480.1 CAT I

[41] Standards Mapping - Security Technical Implementation Guide Version 3.9

APP3480.1 CAT I

[42] Standards Mapping - Security Technical Implementation Guide Version 3.10

APP3480.1 CAT I

[43] Standards Mapping - Security Technical Implementation Guide Version 4.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[44] Standards Mapping - Security Technical Implementation Guide Version 4.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[45] Standards Mapping - Security Technical Implementation Guide Version 4.3

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[46] Standards Mapping - Security Technical Implementation Guide Version 4.4

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[47] Standards Mapping - Security Technical Implementation Guide Version 4.5

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[48] Standards Mapping - Security Technical Implementation Guide Version 4.6

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[49] Standards Mapping - Security Technical Implementation Guide Version 4.7

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[50] Standards Mapping - Security Technical Implementation Guide Version 4.8

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[51] Standards Mapping - Security Technical Implementation Guide Version 4.9

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[52] Standards Mapping - Security Technical Implementation Guide Version 4.10

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[53] Standards Mapping - Security Technical Implementation Guide Version 4.11

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[54] Standards Mapping - Security Technical Implementation Guide Version 5.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[55] Standards Mapping - Security Technical Implementation Guide Version 5.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[56] Standards Mapping - Security Technical Implementation Guide Version 5.3

APSC-DV-000450 CAT II, APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[57] Standards Mapping - Web Application Security Consortium Version 2.00

Insufficient Authorization (WASC-02)

[58] Standards Mapping - Web Application Security Consortium 24 + 2

Insufficient Authorization

desc.dataflow.java.access_control_database

Abstract

Without proper access control, executing a SQL statement that contains a user-controlled primary key can allow an attacker to view unauthorized records.

Explanation

Database access control errors occur when:

1.Data enters a program from an untrusted source.

2.The data is used to specify the value of a primary key in a SQL query.
Example 1: The following code uses a parameterized statement, which escapes metacharacters and prevents SQL injection vulnerabilities, to construct and execute a SQL query that searches for an invoice matching the specified identifier [1]. The identifier is selected from a list of all invoices associated with the current authenticated user.


...
var id = document.form.invoiceID.value;
var query = "SELECT * FROM invoices WHERE id = ?";
db.transaction(function (tx) {
tx.executeSql(query,[id]);
}
)
...

The problem is that the developer has failed to consider all of the possible values of id. Although the interface generates a list of invoice identifiers that belong to the current user, an attacker might bypass this interface to request any desired invoice. Because the code in this example does not check to ensure that the user has permission to access the requested invoice, it will display any invoice, even if it does not belong to the current user.

References

[1] S. J. Friedl SQL Injection Attacks by Example

[2] Standards Mapping - CIS Azure Kubernetes Service Benchmark

3.0

[3] Standards Mapping - CIS Amazon Elastic Kubernetes Service Benchmark

1.0

[4] Standards Mapping - CIS Amazon Web Services Foundations Benchmark

1

[5] Standards Mapping - CIS Google Kubernetes Engine Benchmark

confidentiality

[6] Standards Mapping - CIS Kubernetes Benchmark

complete

[7] Standards Mapping - Common Weakness Enumeration

CWE ID 566

[8] Standards Mapping - Common Weakness Enumeration Top 25 2023

[24] CWE ID 863

[9] Standards Mapping - DISA Control Correlation Identifier Version 2

CCI-000213, CCI-001084, CCI-002165

[10] Standards Mapping - FIPS200

AC

[11] Standards Mapping - General Data Protection Regulation (GDPR)

Access Violation

[12] Standards Mapping - NIST Special Publication 800-53 Revision 4

AC-3 Access Enforcement (P1), AC-23 Data Mining Protection (P0), SC-3 Security Function Isolation (P1)

[13] Standards Mapping - NIST Special Publication 800-53 Revision 5

AC-3 Access Enforcement, AC-23 Data Mining Protection, SC-3 Security Function Isolation

[14] Standards Mapping - OWASP Top 10 2004

A2 Broken Access Control

[15] Standards Mapping - OWASP Top 10 2007

A4 Insecure Direct Object Reference

[16] Standards Mapping - OWASP Top 10 2010

A4 Insecure Direct Object References

[17] Standards Mapping - OWASP Top 10 2013

A4 Insecure Direct Object References

[18] Standards Mapping - OWASP Top 10 2017

A5 Broken Access Control

[19] Standards Mapping - OWASP Top 10 2021

A01 Broken Access Control

[20] Standards Mapping - OWASP Application Security Verification Standard 4.0

4.1.2 General Access Control Design (L1 L2 L3), 4.1.3 General Access Control Design (L1 L2 L3), 4.1.5 General Access Control Design (L1 L2 L3), 4.2.1 Operation Level Access Control (L1 L2 L3), 13.4.2 GraphQL and other Web Service Data Layer Security Requirements (L2 L3)

[21] Standards Mapping - OWASP Mobile 2014

M5 Poor Authorization and Authentication

[22] Standards Mapping - OWASP Mobile 2024

M3 Insecure Authentication/Authorization

[23] Standards Mapping - OWASP Mobile Application Security Verification Standard 2.0

MASVS-AUTH-1

[24] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1

Requirement 6.5.2

[25] Standards Mapping - Payment Card Industry Data Security Standard Version 1.2

Requirement 6.5.4

[26] Standards Mapping - Payment Card Industry Data Security Standard Version 2.0

Requirement 6.5.8

[27] Standards Mapping - Payment Card Industry Data Security Standard Version 3.0

Requirement 6.5.8

[28] Standards Mapping - Payment Card Industry Data Security Standard Version 3.1

Requirement 6.5.8

[29] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2

Requirement 6.5.8

[30] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2.1

Requirement 6.5.8

[31] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0

Requirement 6.2.4

[32] Standards Mapping - Payment Card Industry Software Security Framework 1.0

Control Objective 5.4 - Authentication and Access Control

[33] Standards Mapping - Payment Card Industry Software Security Framework 1.1

Control Objective 5.4 - Authentication and Access Control

[34] Standards Mapping - Payment Card Industry Software Security Framework 1.2

Control Objective 5.4 - Authentication and Access Control, Control Objective C.2.3 - Web Software Access Controls

[35] Standards Mapping - SANS Top 25 2011

Porous Defenses - CWE ID 863

[36] Standards Mapping - Security Technical Implementation Guide Version 3.1

APP3480.1 CAT II

[37] Standards Mapping - Security Technical Implementation Guide Version 3.4

APP3480.1 CAT I

[38] Standards Mapping - Security Technical Implementation Guide Version 3.5

APP3480.1 CAT I

[39] Standards Mapping - Security Technical Implementation Guide Version 3.6

APP3480.1 CAT I

[40] Standards Mapping - Security Technical Implementation Guide Version 3.7

APP3480.1 CAT I

[41] Standards Mapping - Security Technical Implementation Guide Version 3.9

APP3480.1 CAT I

[42] Standards Mapping - Security Technical Implementation Guide Version 3.10

APP3480.1 CAT I

[43] Standards Mapping - Security Technical Implementation Guide Version 4.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[44] Standards Mapping - Security Technical Implementation Guide Version 4.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[45] Standards Mapping - Security Technical Implementation Guide Version 4.3

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[46] Standards Mapping - Security Technical Implementation Guide Version 4.4

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[47] Standards Mapping - Security Technical Implementation Guide Version 4.5

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[48] Standards Mapping - Security Technical Implementation Guide Version 4.6

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[49] Standards Mapping - Security Technical Implementation Guide Version 4.7

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[50] Standards Mapping - Security Technical Implementation Guide Version 4.8

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[51] Standards Mapping - Security Technical Implementation Guide Version 4.9

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[52] Standards Mapping - Security Technical Implementation Guide Version 4.10

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[53] Standards Mapping - Security Technical Implementation Guide Version 4.11

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[54] Standards Mapping - Security Technical Implementation Guide Version 5.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[55] Standards Mapping - Security Technical Implementation Guide Version 5.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[56] Standards Mapping - Security Technical Implementation Guide Version 5.3

APSC-DV-000450 CAT II, APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[57] Standards Mapping - Web Application Security Consortium Version 2.00

Insufficient Authorization (WASC-02)

[58] Standards Mapping - Web Application Security Consortium 24 + 2

Insufficient Authorization

desc.dataflow.javascript.access_control_database

Abstract

Without proper access control, the identified method can execute a SQL statement that contains an attacker-controlled primary key, thereby allowing the attacker to access unauthorized records.

Explanation

Database access control errors occur when:

1.Data enters a program from an untrusted source.

2.The data is used to specify the value of a primary key in a SQL query.
Example 1: The following code uses a parameterized statement, which escapes metacharacters and prevents SQL injection vulnerabilities, to construct and execute a SQL query that searches for an invoice matching the specified identifier. The identifier is selected from a list of all invoices associated with the current authenticated user.


...

NSManagedObjectContext *context = [appDelegate managedObjectContext];
NSEntityDescription *entityDesc = [NSEntityDescription entityForName:@"Invoices" inManagedObjectContext:context];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDesc];
NSPredicate *pred = [NSPredicate predicateWithFormat:@"(id = %@)", invoiceId.text];
[request setPredicate:pred];

NSManagedObject *matches = nil;
NSError *error;
NSArray *objects = [context executeFetchRequest:request error:&error];

if ([objects count] == 0) {
status.text = @"No records found.";
} else {
matches = [objects objectAtIndex:0];
invoiceReferenceNumber.text = [matches valueForKey:@"invRefNum"];
orderNumber.text = [matches valueForKey:@"orderNumber"];
status.text = [NSString stringWithFormat:@"%d records found", [objects count]];
}
[request release];
...

The problem is that the developer has failed to consider all of the possible values of id. Although the interface generates a list of invoice identifiers that belong to the current user, an attacker might bypass this interface to request any desired invoice. Because the code in this example does not check to ensure that the user has permission to access the requested invoice, it will display any invoice, even if it does not belong to the current user.

References

[1] S. J. Friedl SQL Injection Attacks by Example

[2] Standards Mapping - CIS Azure Kubernetes Service Benchmark

3.0

[3] Standards Mapping - CIS Amazon Elastic Kubernetes Service Benchmark

1.0

[4] Standards Mapping - CIS Amazon Web Services Foundations Benchmark

1

[5] Standards Mapping - CIS Google Kubernetes Engine Benchmark

confidentiality

[6] Standards Mapping - CIS Kubernetes Benchmark

complete

[7] Standards Mapping - Common Weakness Enumeration

CWE ID 566

[8] Standards Mapping - Common Weakness Enumeration Top 25 2023

[24] CWE ID 863

[9] Standards Mapping - DISA Control Correlation Identifier Version 2

CCI-000213, CCI-001084, CCI-002165

[10] Standards Mapping - FIPS200

AC

[11] Standards Mapping - General Data Protection Regulation (GDPR)

Access Violation

[12] Standards Mapping - NIST Special Publication 800-53 Revision 4

AC-3 Access Enforcement (P1), AC-23 Data Mining Protection (P0), SC-3 Security Function Isolation (P1)

[13] Standards Mapping - NIST Special Publication 800-53 Revision 5

AC-3 Access Enforcement, AC-23 Data Mining Protection, SC-3 Security Function Isolation

[14] Standards Mapping - OWASP Top 10 2004

A2 Broken Access Control

[15] Standards Mapping - OWASP Top 10 2007

A4 Insecure Direct Object Reference

[16] Standards Mapping - OWASP Top 10 2010

A4 Insecure Direct Object References

[17] Standards Mapping - OWASP Top 10 2013

A4 Insecure Direct Object References

[18] Standards Mapping - OWASP Top 10 2017

A5 Broken Access Control

[19] Standards Mapping - OWASP Top 10 2021

A01 Broken Access Control

[20] Standards Mapping - OWASP Application Security Verification Standard 4.0

4.1.2 General Access Control Design (L1 L2 L3), 4.1.3 General Access Control Design (L1 L2 L3), 4.1.5 General Access Control Design (L1 L2 L3), 4.2.1 Operation Level Access Control (L1 L2 L3), 13.4.2 GraphQL and other Web Service Data Layer Security Requirements (L2 L3)

[21] Standards Mapping - OWASP Mobile 2014

M5 Poor Authorization and Authentication

[22] Standards Mapping - OWASP Mobile 2024

M3 Insecure Authentication/Authorization

[23] Standards Mapping - OWASP Mobile Application Security Verification Standard 2.0

MASVS-AUTH-1

[24] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1

Requirement 6.5.2

[25] Standards Mapping - Payment Card Industry Data Security Standard Version 1.2

Requirement 6.5.4

[26] Standards Mapping - Payment Card Industry Data Security Standard Version 2.0

Requirement 6.5.8

[27] Standards Mapping - Payment Card Industry Data Security Standard Version 3.0

Requirement 6.5.8

[28] Standards Mapping - Payment Card Industry Data Security Standard Version 3.1

Requirement 6.5.8

[29] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2

Requirement 6.5.8

[30] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2.1

Requirement 6.5.8

[31] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0

Requirement 6.2.4

[32] Standards Mapping - Payment Card Industry Software Security Framework 1.0

Control Objective 5.4 - Authentication and Access Control

[33] Standards Mapping - Payment Card Industry Software Security Framework 1.1

Control Objective 5.4 - Authentication and Access Control

[34] Standards Mapping - Payment Card Industry Software Security Framework 1.2

Control Objective 5.4 - Authentication and Access Control, Control Objective C.2.3 - Web Software Access Controls

[35] Standards Mapping - SANS Top 25 2011

Porous Defenses - CWE ID 863

[36] Standards Mapping - Security Technical Implementation Guide Version 3.1

APP3480.1 CAT II

[37] Standards Mapping - Security Technical Implementation Guide Version 3.4

APP3480.1 CAT I

[38] Standards Mapping - Security Technical Implementation Guide Version 3.5

APP3480.1 CAT I

[39] Standards Mapping - Security Technical Implementation Guide Version 3.6

APP3480.1 CAT I

[40] Standards Mapping - Security Technical Implementation Guide Version 3.7

APP3480.1 CAT I

[41] Standards Mapping - Security Technical Implementation Guide Version 3.9

APP3480.1 CAT I

[42] Standards Mapping - Security Technical Implementation Guide Version 3.10

APP3480.1 CAT I

[43] Standards Mapping - Security Technical Implementation Guide Version 4.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[44] Standards Mapping - Security Technical Implementation Guide Version 4.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[45] Standards Mapping - Security Technical Implementation Guide Version 4.3

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[46] Standards Mapping - Security Technical Implementation Guide Version 4.4

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[47] Standards Mapping - Security Technical Implementation Guide Version 4.5

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[48] Standards Mapping - Security Technical Implementation Guide Version 4.6

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[49] Standards Mapping - Security Technical Implementation Guide Version 4.7

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[50] Standards Mapping - Security Technical Implementation Guide Version 4.8

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[51] Standards Mapping - Security Technical Implementation Guide Version 4.9

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[52] Standards Mapping - Security Technical Implementation Guide Version 4.10

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[53] Standards Mapping - Security Technical Implementation Guide Version 4.11

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[54] Standards Mapping - Security Technical Implementation Guide Version 5.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[55] Standards Mapping - Security Technical Implementation Guide Version 5.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[56] Standards Mapping - Security Technical Implementation Guide Version 5.3

APSC-DV-000450 CAT II, APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[57] Standards Mapping - Web Application Security Consortium Version 2.00

Insufficient Authorization (WASC-02)

[58] Standards Mapping - Web Application Security Consortium 24 + 2

Insufficient Authorization

desc.dataflow.objc.access_control_database

Abstract

Without proper access control, executing a SQL statement that contains a user-controlled primary key can allow an attacker to view unauthorized records.

Explanation

Database access control errors occur when:

1.Data enters a program from an untrusted source.

2.The data is used to specify the value of a primary key in a SQL query.
Example 1: The following code uses a parameterized statement, which escapes metacharacters and prevents SQL injection vulnerabilities, to construct and execute a SQL query that searches for an invoice matching the specified identifier [1]. The identifier is selected from a list of all invoices associated with the current authenticated user.


...
$id = $_POST['id'];
$query = "SELECT * FROM invoices WHERE id = ?";
$stmt = $mysqli->prepare($query);
$stmt->bind_param('ss',$id);
$stmt->execute();
...

The problem is that the developer has failed to consider all of the possible values of id. Although the interface generates a list of invoice identifiers that belong to the current user, an attacker might bypass this interface to request any desired invoice. Because the code in this example does not check to ensure that the user has permission to access the requested invoice, it will display any invoice, even if it does not belong to the current user.

A number of modern web frameworks provide mechanisms to perform user input validation (including Struts and Struts 2). To highlight the unvalidated sources of input, Fortify Secure Coding Rulepacks dynamically re-prioritize the issues Fortify Static Code Analyzer reports by lowering their probability of exploit and providing pointers to the supporting evidence whenever the framework validation mechanism is in use. We refer to this feature as Context-Sensitive Ranking. To further assist the Fortify user with the auditing process, the Fortify Software Security Research group makes available the Data Validation project template that groups the issues into folders based on the validation mechanism applied to their source of input.

References

[1] S. J. Friedl SQL Injection Attacks by Example

[2] Standards Mapping - CIS Azure Kubernetes Service Benchmark

3.0

[3] Standards Mapping - CIS Amazon Elastic Kubernetes Service Benchmark

1.0

[4] Standards Mapping - CIS Amazon Web Services Foundations Benchmark

1

[5] Standards Mapping - CIS Google Kubernetes Engine Benchmark

confidentiality

[6] Standards Mapping - CIS Kubernetes Benchmark

complete

[7] Standards Mapping - Common Weakness Enumeration

CWE ID 566

[8] Standards Mapping - Common Weakness Enumeration Top 25 2023

[24] CWE ID 863

[9] Standards Mapping - DISA Control Correlation Identifier Version 2

CCI-000213, CCI-001084, CCI-002165

[10] Standards Mapping - FIPS200

AC

[11] Standards Mapping - General Data Protection Regulation (GDPR)

Access Violation

[12] Standards Mapping - NIST Special Publication 800-53 Revision 4

AC-3 Access Enforcement (P1), AC-23 Data Mining Protection (P0), SC-3 Security Function Isolation (P1)

[13] Standards Mapping - NIST Special Publication 800-53 Revision 5

AC-3 Access Enforcement, AC-23 Data Mining Protection, SC-3 Security Function Isolation

[14] Standards Mapping - OWASP Top 10 2004

A2 Broken Access Control

[15] Standards Mapping - OWASP Top 10 2007

A4 Insecure Direct Object Reference

[16] Standards Mapping - OWASP Top 10 2010

A4 Insecure Direct Object References

[17] Standards Mapping - OWASP Top 10 2013

A4 Insecure Direct Object References

[18] Standards Mapping - OWASP Top 10 2017

A5 Broken Access Control

[19] Standards Mapping - OWASP Top 10 2021

A01 Broken Access Control

[20] Standards Mapping - OWASP Application Security Verification Standard 4.0

4.1.2 General Access Control Design (L1 L2 L3), 4.1.3 General Access Control Design (L1 L2 L3), 4.1.5 General Access Control Design (L1 L2 L3), 4.2.1 Operation Level Access Control (L1 L2 L3), 13.4.2 GraphQL and other Web Service Data Layer Security Requirements (L2 L3)

[21] Standards Mapping - OWASP Mobile 2014

M5 Poor Authorization and Authentication

[22] Standards Mapping - OWASP Mobile 2024

M3 Insecure Authentication/Authorization

[23] Standards Mapping - OWASP Mobile Application Security Verification Standard 2.0

MASVS-AUTH-1

[24] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1

Requirement 6.5.2

[25] Standards Mapping - Payment Card Industry Data Security Standard Version 1.2

Requirement 6.5.4

[26] Standards Mapping - Payment Card Industry Data Security Standard Version 2.0

Requirement 6.5.8

[27] Standards Mapping - Payment Card Industry Data Security Standard Version 3.0

Requirement 6.5.8

[28] Standards Mapping - Payment Card Industry Data Security Standard Version 3.1

Requirement 6.5.8

[29] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2

Requirement 6.5.8

[30] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2.1

Requirement 6.5.8

[31] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0

Requirement 6.2.4

[32] Standards Mapping - Payment Card Industry Software Security Framework 1.0

Control Objective 5.4 - Authentication and Access Control

[33] Standards Mapping - Payment Card Industry Software Security Framework 1.1

Control Objective 5.4 - Authentication and Access Control

[34] Standards Mapping - Payment Card Industry Software Security Framework 1.2

Control Objective 5.4 - Authentication and Access Control, Control Objective C.2.3 - Web Software Access Controls

[35] Standards Mapping - SANS Top 25 2011

Porous Defenses - CWE ID 863

[36] Standards Mapping - Security Technical Implementation Guide Version 3.1

APP3480.1 CAT II

[37] Standards Mapping - Security Technical Implementation Guide Version 3.4

APP3480.1 CAT I

[38] Standards Mapping - Security Technical Implementation Guide Version 3.5

APP3480.1 CAT I

[39] Standards Mapping - Security Technical Implementation Guide Version 3.6

APP3480.1 CAT I

[40] Standards Mapping - Security Technical Implementation Guide Version 3.7

APP3480.1 CAT I

[41] Standards Mapping - Security Technical Implementation Guide Version 3.9

APP3480.1 CAT I

[42] Standards Mapping - Security Technical Implementation Guide Version 3.10

APP3480.1 CAT I

[43] Standards Mapping - Security Technical Implementation Guide Version 4.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[44] Standards Mapping - Security Technical Implementation Guide Version 4.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[45] Standards Mapping - Security Technical Implementation Guide Version 4.3

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[46] Standards Mapping - Security Technical Implementation Guide Version 4.4

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[47] Standards Mapping - Security Technical Implementation Guide Version 4.5

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[48] Standards Mapping - Security Technical Implementation Guide Version 4.6

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[49] Standards Mapping - Security Technical Implementation Guide Version 4.7

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[50] Standards Mapping - Security Technical Implementation Guide Version 4.8

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[51] Standards Mapping - Security Technical Implementation Guide Version 4.9

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[52] Standards Mapping - Security Technical Implementation Guide Version 4.10

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[53] Standards Mapping - Security Technical Implementation Guide Version 4.11

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[54] Standards Mapping - Security Technical Implementation Guide Version 5.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[55] Standards Mapping - Security Technical Implementation Guide Version 5.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[56] Standards Mapping - Security Technical Implementation Guide Version 5.3

APSC-DV-000450 CAT II, APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[57] Standards Mapping - Web Application Security Consortium Version 2.00

Insufficient Authorization (WASC-02)

[58] Standards Mapping - Web Application Security Consortium 24 + 2

Insufficient Authorization

desc.dataflow.php.access_control_database

Abstract

Without proper access control, executing a SQL statement that contains a user-controlled primary key can allow an attacker to view unauthorized records.

Explanation

Database access control errors occur when:

1. Data enters a program from an untrusted source.

2. The data is used to specify the value of a primary key in a SQL query.
Example 1: The following code uses a parameterized statement, which escapes metacharacters and prevents SQL injection vulnerabilities, to construct and execute a SQL query that searches for an invoice matching the specified identifier [1]. The identifier is selected from a list of all invoices associated with the current authenticated user.


procedure get_item (
itm_cv IN OUT ItmCurTyp,
id in varchar2)
is
open itm_cv for ' SELECT * FROM items WHERE ' ||
'invoiceID = :invid' ||
using id;
end get_item;

The problem is that the developer has failed to consider all of the possible values of id. Although the interface generates a list of invoice identifiers that belong to the current user, an attacker might bypass this interface to request any desired invoice. Because the code in this example does not check to ensure that the user has permission to access the requested invoice, it will display any invoice, even if it does not belong to the current user.

References

[1] S. J. Friedl SQL Injection Attacks by Example

[2] Standards Mapping - CIS Azure Kubernetes Service Benchmark

3.0

[3] Standards Mapping - CIS Amazon Elastic Kubernetes Service Benchmark

1.0

[4] Standards Mapping - CIS Amazon Web Services Foundations Benchmark

1

[5] Standards Mapping - CIS Google Kubernetes Engine Benchmark

confidentiality

[6] Standards Mapping - CIS Kubernetes Benchmark

complete

[7] Standards Mapping - Common Weakness Enumeration

CWE ID 566

[8] Standards Mapping - Common Weakness Enumeration Top 25 2023

[24] CWE ID 863

[9] Standards Mapping - DISA Control Correlation Identifier Version 2

CCI-000213, CCI-001084, CCI-002165

[10] Standards Mapping - FIPS200

AC

[11] Standards Mapping - General Data Protection Regulation (GDPR)

Access Violation

[12] Standards Mapping - NIST Special Publication 800-53 Revision 4

AC-3 Access Enforcement (P1), AC-23 Data Mining Protection (P0), SC-3 Security Function Isolation (P1)

[13] Standards Mapping - NIST Special Publication 800-53 Revision 5

AC-3 Access Enforcement, AC-23 Data Mining Protection, SC-3 Security Function Isolation

[14] Standards Mapping - OWASP Top 10 2004

A2 Broken Access Control

[15] Standards Mapping - OWASP Top 10 2007

A4 Insecure Direct Object Reference

[16] Standards Mapping - OWASP Top 10 2010

A4 Insecure Direct Object References

[17] Standards Mapping - OWASP Top 10 2013

A4 Insecure Direct Object References

[18] Standards Mapping - OWASP Top 10 2017

A5 Broken Access Control

[19] Standards Mapping - OWASP Top 10 2021

A01 Broken Access Control

[20] Standards Mapping - OWASP Application Security Verification Standard 4.0

4.1.2 General Access Control Design (L1 L2 L3), 4.1.3 General Access Control Design (L1 L2 L3), 4.1.5 General Access Control Design (L1 L2 L3), 4.2.1 Operation Level Access Control (L1 L2 L3), 13.4.2 GraphQL and other Web Service Data Layer Security Requirements (L2 L3)

[21] Standards Mapping - OWASP Mobile 2014

M5 Poor Authorization and Authentication

[22] Standards Mapping - OWASP Mobile 2024

M3 Insecure Authentication/Authorization

[23] Standards Mapping - OWASP Mobile Application Security Verification Standard 2.0

MASVS-AUTH-1

[24] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1

Requirement 6.5.2

[25] Standards Mapping - Payment Card Industry Data Security Standard Version 1.2

Requirement 6.5.4

[26] Standards Mapping - Payment Card Industry Data Security Standard Version 2.0

Requirement 6.5.8

[27] Standards Mapping - Payment Card Industry Data Security Standard Version 3.0

Requirement 6.5.8

[28] Standards Mapping - Payment Card Industry Data Security Standard Version 3.1

Requirement 6.5.8

[29] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2

Requirement 6.5.8

[30] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2.1

Requirement 6.5.8

[31] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0

Requirement 6.2.4

[32] Standards Mapping - Payment Card Industry Software Security Framework 1.0

Control Objective 5.4 - Authentication and Access Control

[33] Standards Mapping - Payment Card Industry Software Security Framework 1.1

Control Objective 5.4 - Authentication and Access Control

[34] Standards Mapping - Payment Card Industry Software Security Framework 1.2

Control Objective 5.4 - Authentication and Access Control, Control Objective C.2.3 - Web Software Access Controls

[35] Standards Mapping - SANS Top 25 2011

Porous Defenses - CWE ID 863

[36] Standards Mapping - Security Technical Implementation Guide Version 3.1

APP3480.1 CAT II

[37] Standards Mapping - Security Technical Implementation Guide Version 3.4

APP3480.1 CAT I

[38] Standards Mapping - Security Technical Implementation Guide Version 3.5

APP3480.1 CAT I

[39] Standards Mapping - Security Technical Implementation Guide Version 3.6

APP3480.1 CAT I

[40] Standards Mapping - Security Technical Implementation Guide Version 3.7

APP3480.1 CAT I

[41] Standards Mapping - Security Technical Implementation Guide Version 3.9

APP3480.1 CAT I

[42] Standards Mapping - Security Technical Implementation Guide Version 3.10

APP3480.1 CAT I

[43] Standards Mapping - Security Technical Implementation Guide Version 4.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[44] Standards Mapping - Security Technical Implementation Guide Version 4.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[45] Standards Mapping - Security Technical Implementation Guide Version 4.3

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[46] Standards Mapping - Security Technical Implementation Guide Version 4.4

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[47] Standards Mapping - Security Technical Implementation Guide Version 4.5

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[48] Standards Mapping - Security Technical Implementation Guide Version 4.6

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[49] Standards Mapping - Security Technical Implementation Guide Version 4.7

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[50] Standards Mapping - Security Technical Implementation Guide Version 4.8

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[51] Standards Mapping - Security Technical Implementation Guide Version 4.9

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[52] Standards Mapping - Security Technical Implementation Guide Version 4.10

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[53] Standards Mapping - Security Technical Implementation Guide Version 4.11

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[54] Standards Mapping - Security Technical Implementation Guide Version 5.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[55] Standards Mapping - Security Technical Implementation Guide Version 5.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[56] Standards Mapping - Security Technical Implementation Guide Version 5.3

APSC-DV-000450 CAT II, APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[57] Standards Mapping - Web Application Security Consortium Version 2.00

Insufficient Authorization (WASC-02)

[58] Standards Mapping - Web Application Security Consortium 24 + 2

Insufficient Authorization

desc.dataflow.sql.access_control_database

Abstract

Without proper access control, executing a SQL statement that contains a user-controlled primary key can allow an attacker to view unauthorized records.

Explanation

Database access control errors occur when:

1. Data enters a program from an untrusted source.

2. The data is used to specify the value of a primary key in a SQL query.
Example 1: The following code uses a parameterized statement, which escapes metacharacters and prevents SQL injection vulnerabilities, to construct and execute a SQL query that searches for an invoice matching the specified identifier [1]. The identifier is selected from a list of all invoices associated with the current authenticated user.


...
id = request.POST['id']
c = db.cursor()
stmt = c.execute("SELECT * FROM invoices WHERE id = %s", (id,))
...

The problem is that the developer has failed to consider all of the possible values of id. Although the interface generates a list of invoice identifiers that belong to the current user, an attacker might bypass this interface to request any desired invoice. Because the code in this example does not check to ensure that the user has permission to access the requested invoice, it will display any invoice, even if it does not belong to the current user.

References

[1] S. J. Friedl SQL Injection Attacks by Example

[2] Standards Mapping - CIS Azure Kubernetes Service Benchmark

3.0

[3] Standards Mapping - CIS Amazon Elastic Kubernetes Service Benchmark

1.0

[4] Standards Mapping - CIS Amazon Web Services Foundations Benchmark

1

[5] Standards Mapping - CIS Google Kubernetes Engine Benchmark

confidentiality

[6] Standards Mapping - CIS Kubernetes Benchmark

complete

[7] Standards Mapping - Common Weakness Enumeration

CWE ID 566

[8] Standards Mapping - Common Weakness Enumeration Top 25 2023

[24] CWE ID 863

[9] Standards Mapping - DISA Control Correlation Identifier Version 2

CCI-000213, CCI-001084, CCI-002165

[10] Standards Mapping - FIPS200

AC

[11] Standards Mapping - General Data Protection Regulation (GDPR)

Access Violation

[12] Standards Mapping - NIST Special Publication 800-53 Revision 4

AC-3 Access Enforcement (P1), AC-23 Data Mining Protection (P0), SC-3 Security Function Isolation (P1)

[13] Standards Mapping - NIST Special Publication 800-53 Revision 5

AC-3 Access Enforcement, AC-23 Data Mining Protection, SC-3 Security Function Isolation

[14] Standards Mapping - OWASP Top 10 2004

A2 Broken Access Control

[15] Standards Mapping - OWASP Top 10 2007

A4 Insecure Direct Object Reference

[16] Standards Mapping - OWASP Top 10 2010

A4 Insecure Direct Object References

[17] Standards Mapping - OWASP Top 10 2013

A4 Insecure Direct Object References

[18] Standards Mapping - OWASP Top 10 2017

A5 Broken Access Control

[19] Standards Mapping - OWASP Top 10 2021

A01 Broken Access Control

[20] Standards Mapping - OWASP Application Security Verification Standard 4.0

4.1.2 General Access Control Design (L1 L2 L3), 4.1.3 General Access Control Design (L1 L2 L3), 4.1.5 General Access Control Design (L1 L2 L3), 4.2.1 Operation Level Access Control (L1 L2 L3), 13.4.2 GraphQL and other Web Service Data Layer Security Requirements (L2 L3)

[21] Standards Mapping - OWASP Mobile 2014

M5 Poor Authorization and Authentication

[22] Standards Mapping - OWASP Mobile 2024

M3 Insecure Authentication/Authorization

[23] Standards Mapping - OWASP Mobile Application Security Verification Standard 2.0

MASVS-AUTH-1

[24] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1

Requirement 6.5.2

[25] Standards Mapping - Payment Card Industry Data Security Standard Version 1.2

Requirement 6.5.4

[26] Standards Mapping - Payment Card Industry Data Security Standard Version 2.0

Requirement 6.5.8

[27] Standards Mapping - Payment Card Industry Data Security Standard Version 3.0

Requirement 6.5.8

[28] Standards Mapping - Payment Card Industry Data Security Standard Version 3.1

Requirement 6.5.8

[29] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2

Requirement 6.5.8

[30] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2.1

Requirement 6.5.8

[31] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0

Requirement 6.2.4

[32] Standards Mapping - Payment Card Industry Software Security Framework 1.0

Control Objective 5.4 - Authentication and Access Control

[33] Standards Mapping - Payment Card Industry Software Security Framework 1.1

Control Objective 5.4 - Authentication and Access Control

[34] Standards Mapping - Payment Card Industry Software Security Framework 1.2

Control Objective 5.4 - Authentication and Access Control, Control Objective C.2.3 - Web Software Access Controls

[35] Standards Mapping - SANS Top 25 2011

Porous Defenses - CWE ID 863

[36] Standards Mapping - Security Technical Implementation Guide Version 3.1

APP3480.1 CAT II

[37] Standards Mapping - Security Technical Implementation Guide Version 3.4

APP3480.1 CAT I

[38] Standards Mapping - Security Technical Implementation Guide Version 3.5

APP3480.1 CAT I

[39] Standards Mapping - Security Technical Implementation Guide Version 3.6

APP3480.1 CAT I

[40] Standards Mapping - Security Technical Implementation Guide Version 3.7

APP3480.1 CAT I

[41] Standards Mapping - Security Technical Implementation Guide Version 3.9

APP3480.1 CAT I

[42] Standards Mapping - Security Technical Implementation Guide Version 3.10

APP3480.1 CAT I

[43] Standards Mapping - Security Technical Implementation Guide Version 4.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[44] Standards Mapping - Security Technical Implementation Guide Version 4.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[45] Standards Mapping - Security Technical Implementation Guide Version 4.3

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[46] Standards Mapping - Security Technical Implementation Guide Version 4.4

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[47] Standards Mapping - Security Technical Implementation Guide Version 4.5

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[48] Standards Mapping - Security Technical Implementation Guide Version 4.6

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[49] Standards Mapping - Security Technical Implementation Guide Version 4.7

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[50] Standards Mapping - Security Technical Implementation Guide Version 4.8

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[51] Standards Mapping - Security Technical Implementation Guide Version 4.9

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[52] Standards Mapping - Security Technical Implementation Guide Version 4.10

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[53] Standards Mapping - Security Technical Implementation Guide Version 4.11

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[54] Standards Mapping - Security Technical Implementation Guide Version 5.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[55] Standards Mapping - Security Technical Implementation Guide Version 5.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[56] Standards Mapping - Security Technical Implementation Guide Version 5.3

APSC-DV-000450 CAT II, APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[57] Standards Mapping - Web Application Security Consortium Version 2.00

Insufficient Authorization (WASC-02)

[58] Standards Mapping - Web Application Security Consortium 24 + 2

Insufficient Authorization

desc.dataflow.python.access_control_database

Abstract

Without proper access control, executing a SQL statement that contains a user-controlled primary key can allow an attacker to view unauthorized records.

Explanation

Database access control errors occur when:

1. Data enters a program from an untrusted source.

2. The data is used to specify the value of a primary key in a SQL query.
Example 1: The following code uses a parameterized statement, which escapes metacharacters and prevents SQL injection vulnerabilities, to construct and execute a SQL query that searches for an invoice matching the specified identifier [1]. The identifier is selected from a list of all invoices associated with the current authenticated user.


...
id = req['invoiceID'].respond_to(:to_int)
query = "SELECT * FROM invoices WHERE id=?"
stmt = conn.prepare(query)
stmt.execute(id)
...

The problem is that the developer has failed to consider all of the possible values of id. Although the interface generates a list of invoice identifiers that belong to the current user, an attacker might bypass this interface to request any desired invoice. Because the code in this example does not check to ensure that the user has permission to access the requested invoice, it will display any invoice, even if it does not belong to the current user.

References

[1] S. J. Friedl SQL Injection Attacks by Example

[2] Standards Mapping - CIS Azure Kubernetes Service Benchmark

3.0

[3] Standards Mapping - CIS Amazon Elastic Kubernetes Service Benchmark

1.0

[4] Standards Mapping - CIS Amazon Web Services Foundations Benchmark

1

[5] Standards Mapping - CIS Google Kubernetes Engine Benchmark

confidentiality

[6] Standards Mapping - CIS Kubernetes Benchmark

complete

[7] Standards Mapping - Common Weakness Enumeration

CWE ID 566

[8] Standards Mapping - Common Weakness Enumeration Top 25 2023

[24] CWE ID 863

[9] Standards Mapping - DISA Control Correlation Identifier Version 2

CCI-000213, CCI-001084, CCI-002165

[10] Standards Mapping - FIPS200

AC

[11] Standards Mapping - General Data Protection Regulation (GDPR)

Access Violation

[12] Standards Mapping - NIST Special Publication 800-53 Revision 4

AC-3 Access Enforcement (P1), AC-23 Data Mining Protection (P0), SC-3 Security Function Isolation (P1)

[13] Standards Mapping - NIST Special Publication 800-53 Revision 5

AC-3 Access Enforcement, AC-23 Data Mining Protection, SC-3 Security Function Isolation

[14] Standards Mapping - OWASP Top 10 2004

A2 Broken Access Control

[15] Standards Mapping - OWASP Top 10 2007

A4 Insecure Direct Object Reference

[16] Standards Mapping - OWASP Top 10 2010

A4 Insecure Direct Object References

[17] Standards Mapping - OWASP Top 10 2013

A4 Insecure Direct Object References

[18] Standards Mapping - OWASP Top 10 2017

A5 Broken Access Control

[19] Standards Mapping - OWASP Top 10 2021

A01 Broken Access Control

[20] Standards Mapping - OWASP Application Security Verification Standard 4.0

4.1.2 General Access Control Design (L1 L2 L3), 4.1.3 General Access Control Design (L1 L2 L3), 4.1.5 General Access Control Design (L1 L2 L3), 4.2.1 Operation Level Access Control (L1 L2 L3), 13.4.2 GraphQL and other Web Service Data Layer Security Requirements (L2 L3)

[21] Standards Mapping - OWASP Mobile 2014

M5 Poor Authorization and Authentication

[22] Standards Mapping - OWASP Mobile 2024

M3 Insecure Authentication/Authorization

[23] Standards Mapping - OWASP Mobile Application Security Verification Standard 2.0

MASVS-AUTH-1

[24] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1

Requirement 6.5.2

[25] Standards Mapping - Payment Card Industry Data Security Standard Version 1.2

Requirement 6.5.4

[26] Standards Mapping - Payment Card Industry Data Security Standard Version 2.0

Requirement 6.5.8

[27] Standards Mapping - Payment Card Industry Data Security Standard Version 3.0

Requirement 6.5.8

[28] Standards Mapping - Payment Card Industry Data Security Standard Version 3.1

Requirement 6.5.8

[29] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2

Requirement 6.5.8

[30] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2.1

Requirement 6.5.8

[31] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0

Requirement 6.2.4

[32] Standards Mapping - Payment Card Industry Software Security Framework 1.0

Control Objective 5.4 - Authentication and Access Control

[33] Standards Mapping - Payment Card Industry Software Security Framework 1.1

Control Objective 5.4 - Authentication and Access Control

[34] Standards Mapping - Payment Card Industry Software Security Framework 1.2

Control Objective 5.4 - Authentication and Access Control, Control Objective C.2.3 - Web Software Access Controls

[35] Standards Mapping - SANS Top 25 2011

Porous Defenses - CWE ID 863

[36] Standards Mapping - Security Technical Implementation Guide Version 3.1

APP3480.1 CAT II

[37] Standards Mapping - Security Technical Implementation Guide Version 3.4

APP3480.1 CAT I

[38] Standards Mapping - Security Technical Implementation Guide Version 3.5

APP3480.1 CAT I

[39] Standards Mapping - Security Technical Implementation Guide Version 3.6

APP3480.1 CAT I

[40] Standards Mapping - Security Technical Implementation Guide Version 3.7

APP3480.1 CAT I

[41] Standards Mapping - Security Technical Implementation Guide Version 3.9

APP3480.1 CAT I

[42] Standards Mapping - Security Technical Implementation Guide Version 3.10

APP3480.1 CAT I

[43] Standards Mapping - Security Technical Implementation Guide Version 4.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[44] Standards Mapping - Security Technical Implementation Guide Version 4.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[45] Standards Mapping - Security Technical Implementation Guide Version 4.3

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[46] Standards Mapping - Security Technical Implementation Guide Version 4.4

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[47] Standards Mapping - Security Technical Implementation Guide Version 4.5

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[48] Standards Mapping - Security Technical Implementation Guide Version 4.6

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[49] Standards Mapping - Security Technical Implementation Guide Version 4.7

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[50] Standards Mapping - Security Technical Implementation Guide Version 4.8

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[51] Standards Mapping - Security Technical Implementation Guide Version 4.9

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[52] Standards Mapping - Security Technical Implementation Guide Version 4.10

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[53] Standards Mapping - Security Technical Implementation Guide Version 4.11

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[54] Standards Mapping - Security Technical Implementation Guide Version 5.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[55] Standards Mapping - Security Technical Implementation Guide Version 5.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[56] Standards Mapping - Security Technical Implementation Guide Version 5.3

APSC-DV-000450 CAT II, APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[57] Standards Mapping - Web Application Security Consortium Version 2.00

Insufficient Authorization (WASC-02)

[58] Standards Mapping - Web Application Security Consortium 24 + 2

Insufficient Authorization

desc.dataflow.ruby.access_control_database

Abstract

Without proper access control, executing a SQL statement that contains a user-controlled primary key can allow an attacker to view unauthorized records.

Explanation

Database access control errors occur when:

1.Data enters a program from an untrusted source.

2.The data is used to specify the value of a primary key in a SQL query.
Example 1: The following code uses a parameterized statement, which escapes metacharacters and prevents SQL injection vulnerabilities, to construct and execute a SQL query that searches for an invoice matching the specified identifier [1]. The identifier is selected from a list of all invoices associated with the current authenticated user.


def searchInvoice(value:String) = Action.async { implicit request =>
val result: Future[Seq[Invoice]] = db.run {
sql"select * from invoices where id=$value".as[Invoice]
}
...
}

The problem is that the developer has failed to consider all of the possible values of id. Although the interface generates a list of invoice identifiers that belong to the current user, an attacker might bypass this interface to request any desired invoice. Because the code in this example does not check to ensure that the user has permission to access the requested invoice, it will display any invoice, even if it does not belong to the current user.

References

[1] S. J. Friedl SQL Injection Attacks by Example

[2] Standards Mapping - CIS Azure Kubernetes Service Benchmark

3.0

[3] Standards Mapping - CIS Amazon Elastic Kubernetes Service Benchmark

1.0

[4] Standards Mapping - CIS Amazon Web Services Foundations Benchmark

1

[5] Standards Mapping - CIS Google Kubernetes Engine Benchmark

confidentiality

[6] Standards Mapping - CIS Kubernetes Benchmark

complete

[7] Standards Mapping - Common Weakness Enumeration

CWE ID 566

[8] Standards Mapping - Common Weakness Enumeration Top 25 2023

[24] CWE ID 863

[9] Standards Mapping - DISA Control Correlation Identifier Version 2

CCI-000213, CCI-001084, CCI-002165

[10] Standards Mapping - FIPS200

AC

[11] Standards Mapping - General Data Protection Regulation (GDPR)

Access Violation

[12] Standards Mapping - NIST Special Publication 800-53 Revision 4

AC-3 Access Enforcement (P1), AC-23 Data Mining Protection (P0), SC-3 Security Function Isolation (P1)

[13] Standards Mapping - NIST Special Publication 800-53 Revision 5

AC-3 Access Enforcement, AC-23 Data Mining Protection, SC-3 Security Function Isolation

[14] Standards Mapping - OWASP Top 10 2004

A2 Broken Access Control

[15] Standards Mapping - OWASP Top 10 2007

A4 Insecure Direct Object Reference

[16] Standards Mapping - OWASP Top 10 2010

A4 Insecure Direct Object References

[17] Standards Mapping - OWASP Top 10 2013

A4 Insecure Direct Object References

[18] Standards Mapping - OWASP Top 10 2017

A5 Broken Access Control

[19] Standards Mapping - OWASP Top 10 2021

A01 Broken Access Control

[20] Standards Mapping - OWASP Application Security Verification Standard 4.0

4.1.2 General Access Control Design (L1 L2 L3), 4.1.3 General Access Control Design (L1 L2 L3), 4.1.5 General Access Control Design (L1 L2 L3), 4.2.1 Operation Level Access Control (L1 L2 L3), 13.4.2 GraphQL and other Web Service Data Layer Security Requirements (L2 L3)

[21] Standards Mapping - OWASP Mobile 2014

M5 Poor Authorization and Authentication

[22] Standards Mapping - OWASP Mobile 2024

M3 Insecure Authentication/Authorization

[23] Standards Mapping - OWASP Mobile Application Security Verification Standard 2.0

MASVS-AUTH-1

[24] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1

Requirement 6.5.2

[25] Standards Mapping - Payment Card Industry Data Security Standard Version 1.2

Requirement 6.5.4

[26] Standards Mapping - Payment Card Industry Data Security Standard Version 2.0

Requirement 6.5.8

[27] Standards Mapping - Payment Card Industry Data Security Standard Version 3.0

Requirement 6.5.8

[28] Standards Mapping - Payment Card Industry Data Security Standard Version 3.1

Requirement 6.5.8

[29] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2

Requirement 6.5.8

[30] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2.1

Requirement 6.5.8

[31] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0

Requirement 6.2.4

[32] Standards Mapping - Payment Card Industry Software Security Framework 1.0

Control Objective 5.4 - Authentication and Access Control

[33] Standards Mapping - Payment Card Industry Software Security Framework 1.1

Control Objective 5.4 - Authentication and Access Control

[34] Standards Mapping - Payment Card Industry Software Security Framework 1.2

Control Objective 5.4 - Authentication and Access Control, Control Objective C.2.3 - Web Software Access Controls

[35] Standards Mapping - SANS Top 25 2011

Porous Defenses - CWE ID 863

[36] Standards Mapping - Security Technical Implementation Guide Version 3.1

APP3480.1 CAT II

[37] Standards Mapping - Security Technical Implementation Guide Version 3.4

APP3480.1 CAT I

[38] Standards Mapping - Security Technical Implementation Guide Version 3.5

APP3480.1 CAT I

[39] Standards Mapping - Security Technical Implementation Guide Version 3.6

APP3480.1 CAT I

[40] Standards Mapping - Security Technical Implementation Guide Version 3.7

APP3480.1 CAT I

[41] Standards Mapping - Security Technical Implementation Guide Version 3.9

APP3480.1 CAT I

[42] Standards Mapping - Security Technical Implementation Guide Version 3.10

APP3480.1 CAT I

[43] Standards Mapping - Security Technical Implementation Guide Version 4.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[44] Standards Mapping - Security Technical Implementation Guide Version 4.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[45] Standards Mapping - Security Technical Implementation Guide Version 4.3

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[46] Standards Mapping - Security Technical Implementation Guide Version 4.4

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[47] Standards Mapping - Security Technical Implementation Guide Version 4.5

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[48] Standards Mapping - Security Technical Implementation Guide Version 4.6

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[49] Standards Mapping - Security Technical Implementation Guide Version 4.7

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[50] Standards Mapping - Security Technical Implementation Guide Version 4.8

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[51] Standards Mapping - Security Technical Implementation Guide Version 4.9

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[52] Standards Mapping - Security Technical Implementation Guide Version 4.10

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[53] Standards Mapping - Security Technical Implementation Guide Version 4.11

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[54] Standards Mapping - Security Technical Implementation Guide Version 5.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[55] Standards Mapping - Security Technical Implementation Guide Version 5.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[56] Standards Mapping - Security Technical Implementation Guide Version 5.3

APSC-DV-000450 CAT II, APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[57] Standards Mapping - Web Application Security Consortium Version 2.00

Insufficient Authorization (WASC-02)

[58] Standards Mapping - Web Application Security Consortium 24 + 2

Insufficient Authorization

desc.dataflow.scala.access_control_database

Abstract

Without proper access control, the identified method can execute a SQL statement that contains an attacker-controlled primary key, thereby allowing the attacker to access unauthorized records.

Explanation

Database access control errors occur when:

1.Data enters a program from an untrusted source.

2.The data is used to specify the value of a primary key in a SQL query.
Example 1: The following code uses a parameterized statement, which escapes metacharacters and prevents SQL injection vulnerabilities, to construct and execute a SQL query that searches for an invoice matching the specified identifier. The identifier is selected from a list of all invoices associated with the current authenticated user.


...
let fetchRequest = NSFetchRequest()
let entity = NSEntityDescription.entityForName("Invoices", inManagedObjectContext: managedContext)
fetchRequest.entity = entity
let pred : NSPredicate = NSPredicate(format:"(id = %@)", invoiceId.text)
fetchRequest.setPredicate = pred
do {
let results = try managedContext.executeFetchRequest(fetchRequest)
let result : NSManagedObject = results.first!
invoiceReferenceNumber.text = result.valueForKey("invRefNum")
orderNumber.text = result.valueForKey("orderNumber")
status.text = "\(results.count) records found"
} catch let error as NSError {
print("Error \(error)")
}
...

The problem is that the developer has failed to consider all of the possible values of id. Although the interface generates a list of invoice identifiers that belong to the current user, an attacker might bypass this interface to request any desired invoice. Because the code in this example does not check to ensure that the user has permission to access the requested invoice, it will display any invoice, even if it does not belong to the current user.

References

[1] S. J. Friedl SQL Injection Attacks by Example

[2] Standards Mapping - CIS Azure Kubernetes Service Benchmark

3.0

[3] Standards Mapping - CIS Amazon Elastic Kubernetes Service Benchmark

1.0

[4] Standards Mapping - CIS Amazon Web Services Foundations Benchmark

1

[5] Standards Mapping - CIS Google Kubernetes Engine Benchmark

confidentiality

[6] Standards Mapping - CIS Kubernetes Benchmark

complete

[7] Standards Mapping - Common Weakness Enumeration

CWE ID 566

[8] Standards Mapping - Common Weakness Enumeration Top 25 2023

[24] CWE ID 863

[9] Standards Mapping - DISA Control Correlation Identifier Version 2

CCI-000213, CCI-001084, CCI-002165

[10] Standards Mapping - FIPS200

AC

[11] Standards Mapping - General Data Protection Regulation (GDPR)

Access Violation

[12] Standards Mapping - NIST Special Publication 800-53 Revision 4

AC-3 Access Enforcement (P1), AC-23 Data Mining Protection (P0), SC-3 Security Function Isolation (P1)

[13] Standards Mapping - NIST Special Publication 800-53 Revision 5

AC-3 Access Enforcement, AC-23 Data Mining Protection, SC-3 Security Function Isolation

[14] Standards Mapping - OWASP Top 10 2004

A2 Broken Access Control

[15] Standards Mapping - OWASP Top 10 2007

A4 Insecure Direct Object Reference

[16] Standards Mapping - OWASP Top 10 2010

A4 Insecure Direct Object References

[17] Standards Mapping - OWASP Top 10 2013

A4 Insecure Direct Object References

[18] Standards Mapping - OWASP Top 10 2017

A5 Broken Access Control

[19] Standards Mapping - OWASP Top 10 2021

A01 Broken Access Control

[20] Standards Mapping - OWASP Application Security Verification Standard 4.0

4.1.2 General Access Control Design (L1 L2 L3), 4.1.3 General Access Control Design (L1 L2 L3), 4.1.5 General Access Control Design (L1 L2 L3), 4.2.1 Operation Level Access Control (L1 L2 L3), 13.4.2 GraphQL and other Web Service Data Layer Security Requirements (L2 L3)

[21] Standards Mapping - OWASP Mobile 2014

M5 Poor Authorization and Authentication

[22] Standards Mapping - OWASP Mobile 2024

M3 Insecure Authentication/Authorization

[23] Standards Mapping - OWASP Mobile Application Security Verification Standard 2.0

MASVS-AUTH-1

[24] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1

Requirement 6.5.2

[25] Standards Mapping - Payment Card Industry Data Security Standard Version 1.2

Requirement 6.5.4

[26] Standards Mapping - Payment Card Industry Data Security Standard Version 2.0

Requirement 6.5.8

[27] Standards Mapping - Payment Card Industry Data Security Standard Version 3.0

Requirement 6.5.8

[28] Standards Mapping - Payment Card Industry Data Security Standard Version 3.1

Requirement 6.5.8

[29] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2

Requirement 6.5.8

[30] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2.1

Requirement 6.5.8

[31] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0

Requirement 6.2.4

[32] Standards Mapping - Payment Card Industry Software Security Framework 1.0

Control Objective 5.4 - Authentication and Access Control

[33] Standards Mapping - Payment Card Industry Software Security Framework 1.1

Control Objective 5.4 - Authentication and Access Control

[34] Standards Mapping - Payment Card Industry Software Security Framework 1.2

Control Objective 5.4 - Authentication and Access Control, Control Objective C.2.3 - Web Software Access Controls

[35] Standards Mapping - SANS Top 25 2011

Porous Defenses - CWE ID 863

[36] Standards Mapping - Security Technical Implementation Guide Version 3.1

APP3480.1 CAT II

[37] Standards Mapping - Security Technical Implementation Guide Version 3.4

APP3480.1 CAT I

[38] Standards Mapping - Security Technical Implementation Guide Version 3.5

APP3480.1 CAT I

[39] Standards Mapping - Security Technical Implementation Guide Version 3.6

APP3480.1 CAT I

[40] Standards Mapping - Security Technical Implementation Guide Version 3.7

APP3480.1 CAT I

[41] Standards Mapping - Security Technical Implementation Guide Version 3.9

APP3480.1 CAT I

[42] Standards Mapping - Security Technical Implementation Guide Version 3.10

APP3480.1 CAT I

[43] Standards Mapping - Security Technical Implementation Guide Version 4.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[44] Standards Mapping - Security Technical Implementation Guide Version 4.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[45] Standards Mapping - Security Technical Implementation Guide Version 4.3

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[46] Standards Mapping - Security Technical Implementation Guide Version 4.4

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[47] Standards Mapping - Security Technical Implementation Guide Version 4.5

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[48] Standards Mapping - Security Technical Implementation Guide Version 4.6

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[49] Standards Mapping - Security Technical Implementation Guide Version 4.7

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[50] Standards Mapping - Security Technical Implementation Guide Version 4.8

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[51] Standards Mapping - Security Technical Implementation Guide Version 4.9

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[52] Standards Mapping - Security Technical Implementation Guide Version 4.10

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[53] Standards Mapping - Security Technical Implementation Guide Version 4.11

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[54] Standards Mapping - Security Technical Implementation Guide Version 5.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[55] Standards Mapping - Security Technical Implementation Guide Version 5.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[56] Standards Mapping - Security Technical Implementation Guide Version 5.3

APSC-DV-000450 CAT II, APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[57] Standards Mapping - Web Application Security Consortium Version 2.00

Insufficient Authorization (WASC-02)

[58] Standards Mapping - Web Application Security Consortium 24 + 2

Insufficient Authorization

desc.dataflow.swift.access_control_database

Abstract

Without proper access control, executing a SQL statement that contains a user-controlled primary key can allow an attacker to view unauthorized records.

Explanation

Database access control errors occur when:

1.Data enters a program from an untrusted source.

2.The data is used to specify the value of a primary key in a SQL query.
Example 1: The following code uses a parameterized statement, which escapes metacharacters and prevents SQL injection vulnerabilities, to construct and execute a SQL query that searches for an invoice matching the specified identifier [1]. The identifier is selected from a list of all invoices associated with the current authenticated user.


...
id = Request.Form("invoiceID")
strSQL = "SELECT * FROM invoices WHERE id = ?"
objADOCommand.CommandText = strSQL
objADOCommand.CommandType = adCmdText
set objADOParameter = objADOCommand.CreateParameter("id" , adString, adParamInput, 0, 0)
objADOCommand.Parameters("id") = id
...

The problem is that the developer has failed to consider all of the possible values of id. Although the interface generates a list of invoice identifiers that belong to the current user, an attacker might bypass this interface to request any desired invoice. Because the code in this example does not check to ensure that the user has permission to access the requested invoice, it will display any invoice, even if it does not belong to the current user.

References

[1] S. J. Friedl SQL Injection Attacks by Example

[2] Standards Mapping - CIS Azure Kubernetes Service Benchmark

3.0

[3] Standards Mapping - CIS Amazon Elastic Kubernetes Service Benchmark

1.0

[4] Standards Mapping - CIS Amazon Web Services Foundations Benchmark

1

[5] Standards Mapping - CIS Google Kubernetes Engine Benchmark

confidentiality

[6] Standards Mapping - CIS Kubernetes Benchmark

complete

[7] Standards Mapping - Common Weakness Enumeration

CWE ID 566

[8] Standards Mapping - Common Weakness Enumeration Top 25 2023

[24] CWE ID 863

[9] Standards Mapping - DISA Control Correlation Identifier Version 2

CCI-000213, CCI-001084, CCI-002165

[10] Standards Mapping - FIPS200

AC

[11] Standards Mapping - General Data Protection Regulation (GDPR)

Access Violation

[12] Standards Mapping - NIST Special Publication 800-53 Revision 4

AC-3 Access Enforcement (P1), AC-23 Data Mining Protection (P0), SC-3 Security Function Isolation (P1)

[13] Standards Mapping - NIST Special Publication 800-53 Revision 5

AC-3 Access Enforcement, AC-23 Data Mining Protection, SC-3 Security Function Isolation

[14] Standards Mapping - OWASP Top 10 2004

A2 Broken Access Control

[15] Standards Mapping - OWASP Top 10 2007

A4 Insecure Direct Object Reference

[16] Standards Mapping - OWASP Top 10 2010

A4 Insecure Direct Object References

[17] Standards Mapping - OWASP Top 10 2013

A4 Insecure Direct Object References

[18] Standards Mapping - OWASP Top 10 2017

A5 Broken Access Control

[19] Standards Mapping - OWASP Top 10 2021

A01 Broken Access Control

[20] Standards Mapping - OWASP Application Security Verification Standard 4.0

4.1.2 General Access Control Design (L1 L2 L3), 4.1.3 General Access Control Design (L1 L2 L3), 4.1.5 General Access Control Design (L1 L2 L3), 4.2.1 Operation Level Access Control (L1 L2 L3), 13.4.2 GraphQL and other Web Service Data Layer Security Requirements (L2 L3)

[21] Standards Mapping - OWASP Mobile 2014

M5 Poor Authorization and Authentication

[22] Standards Mapping - OWASP Mobile 2024

M3 Insecure Authentication/Authorization

[23] Standards Mapping - OWASP Mobile Application Security Verification Standard 2.0

MASVS-AUTH-1

[24] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1

Requirement 6.5.2

[25] Standards Mapping - Payment Card Industry Data Security Standard Version 1.2

Requirement 6.5.4

[26] Standards Mapping - Payment Card Industry Data Security Standard Version 2.0

Requirement 6.5.8

[27] Standards Mapping - Payment Card Industry Data Security Standard Version 3.0

Requirement 6.5.8

[28] Standards Mapping - Payment Card Industry Data Security Standard Version 3.1

Requirement 6.5.8

[29] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2

Requirement 6.5.8

[30] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2.1

Requirement 6.5.8

[31] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0

Requirement 6.2.4

[32] Standards Mapping - Payment Card Industry Software Security Framework 1.0

Control Objective 5.4 - Authentication and Access Control

[33] Standards Mapping - Payment Card Industry Software Security Framework 1.1

Control Objective 5.4 - Authentication and Access Control

[34] Standards Mapping - Payment Card Industry Software Security Framework 1.2

Control Objective 5.4 - Authentication and Access Control, Control Objective C.2.3 - Web Software Access Controls

[35] Standards Mapping - SANS Top 25 2011

Porous Defenses - CWE ID 863

[36] Standards Mapping - Security Technical Implementation Guide Version 3.1

APP3480.1 CAT II

[37] Standards Mapping - Security Technical Implementation Guide Version 3.4

APP3480.1 CAT I

[38] Standards Mapping - Security Technical Implementation Guide Version 3.5

APP3480.1 CAT I

[39] Standards Mapping - Security Technical Implementation Guide Version 3.6

APP3480.1 CAT I

[40] Standards Mapping - Security Technical Implementation Guide Version 3.7

APP3480.1 CAT I

[41] Standards Mapping - Security Technical Implementation Guide Version 3.9

APP3480.1 CAT I

[42] Standards Mapping - Security Technical Implementation Guide Version 3.10

APP3480.1 CAT I

[43] Standards Mapping - Security Technical Implementation Guide Version 4.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[44] Standards Mapping - Security Technical Implementation Guide Version 4.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[45] Standards Mapping - Security Technical Implementation Guide Version 4.3

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[46] Standards Mapping - Security Technical Implementation Guide Version 4.4

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[47] Standards Mapping - Security Technical Implementation Guide Version 4.5

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[48] Standards Mapping - Security Technical Implementation Guide Version 4.6

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[49] Standards Mapping - Security Technical Implementation Guide Version 4.7

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[50] Standards Mapping - Security Technical Implementation Guide Version 4.8

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[51] Standards Mapping - Security Technical Implementation Guide Version 4.9

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[52] Standards Mapping - Security Technical Implementation Guide Version 4.10

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[53] Standards Mapping - Security Technical Implementation Guide Version 4.11

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[54] Standards Mapping - Security Technical Implementation Guide Version 5.1

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[55] Standards Mapping - Security Technical Implementation Guide Version 5.2

APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[56] Standards Mapping - Security Technical Implementation Guide Version 5.3

APSC-DV-000450 CAT II, APSC-DV-000460 CAT I, APSC-DV-000470 CAT II, APSC-DV-002360 CAT II

[57] Standards Mapping - Web Application Security Consortium Version 2.00

Insufficient Authorization (WASC-02)

[58] Standards Mapping - Web Application Security Consortium 24 + 2

Insufficient Authorization

desc.dataflow.vb.access_control_database

Software Security | Protect your Software at the Source (2024)
Top Articles
Goodbudget vs. EveryDollar: Which Is the Best Free Budgeting App?
Who is considered a Health Care Provider/Practitioner?
Katie Pavlich Bikini Photos
Bashas Elearning
The 10 Best Restaurants In Freiburg Germany
Hotels Near 500 W Sunshine St Springfield Mo 65807
GAY (and stinky) DOGS [scat] by Entomb
What is international trade and explain its types?
Imbigswoo
Acbl Homeport
What is IXL and How Does it Work?
Does Publix Have Sephora Gift Cards
Elle Daily Horoscope Virgo
Summer Rae Boyfriend Love Island – Just Speak News
Jesus Calling Oct 27
Grab this ice cream maker while it's discounted in Walmart's sale | Digital Trends
Navy Female Prt Standards 30 34
Yakimacraigslist
Site : Storagealamogordo.com Easy Call
Morristown Daily Record Obituary
Satisfactory: How to Make Efficient Factories (Tips, Tricks, & Strategies)
Hermitcraft Texture Pack
1989 Chevy Caprice For Sale Craigslist
F45 Training O'fallon Il Photos
Egusd Lunch Menu
Smartfind Express Login Broward
Arlington Museum of Art to show shining, shimmering, splendid costumes from Disney Archives
Black Panther 2 Showtimes Near Epic Theatres Of Palm Coast
Times Narcos Lied To You About What Really Happened - Grunge
Leben in Japan – das muss man wissen - Lernen Sie Sprachen online bei italki
Shoe Station Store Locator
R/Sandiego
Inmate Search Disclaimer – Sheriff
Peter Vigilante Biography, Net Worth, Age, Height, Family, Girlfriend
Wednesday Morning Gifs
THE 10 BEST Yoga Retreats in Konstanz for September 2024
Rogers Centre is getting a $300M reno. Here's what the Blue Jays ballpark will look like | CBC News
Why Gas Prices Are So High (Published 2022)
Regis Sectional Havertys
Hebrew Bible: Torah, Prophets and Writings | My Jewish Learning
Review: T-Mobile's Unlimited 4G voor Thuis | Consumentenbond
Wait List Texas Roadhouse
The Pretty Kitty Tanglewood
Nurses May Be Entitled to Overtime Despite Yearly Salary
House For Sale On Trulia
Automatic Vehicle Accident Detection and Messageing System – IJERT
Guy Ritchie's The Covenant Showtimes Near Look Cinemas Redlands
Wera13X
The Goshen News Obituary
Parks And Rec Fantasy Football Names
Mike De Beer Twitter
Bones And All Showtimes Near Emagine Canton
Latest Posts
Article information

Author: Twana Towne Ret

Last Updated:

Views: 6386

Rating: 4.3 / 5 (44 voted)

Reviews: 91% of readers found this page helpful

Author information

Name: Twana Towne Ret

Birthday: 1994-03-19

Address: Apt. 990 97439 Corwin Motorway, Port Eliseoburgh, NM 99144-2618

Phone: +5958753152963

Job: National Specialist

Hobby: Kayaking, Photography, Skydiving, Embroidery, Leather crafting, Orienteering, Cooking

Introduction: My name is Twana Towne Ret, I am a famous, talented, joyous, perfect, powerful, inquisitive, lovely person who loves writing and wants to share my knowledge and understanding with you.