Kingdom: Time and State

Distributed computation is about time and state. That is, in order for more than one component to communicate, state must be shared, and all that takes time.

Most programmers anthropomorphize their work. They think about one thread of control carrying out the entire program in the same way they would if they had to do the job themselves. Modern computers, however, switch between tasks very quickly, and in multi-core, multi-CPU, or distributed systems, two events may take place at exactly the same time. Defects rush to fill the gap between the programmer's model of how a program executes and what happens in reality. These defects are related to unexpected interactions between threads, processes, time, and information. These interactions happen through shared state: semaphores, variables, the file system, and, basically, anything that can store information.

SAML Bad Practices: Insecure Message ID Implementation

Abstract
SAML message that do not provide same unique ID for AuthnRequest, InResponseTo attributes and a unique ID for SAML Assertion might be susceptible to replay attacks.
Explanation
To prevent replay attacks, the SAML standard has multiple optional provisions. One provision that can be utilized is to use a unique ID in each SAML request generated by the service provider and the corresponding SAML response by the identity provider. The service provider should specify a unique ID value in the AuthnRequest element ID attribute. The identity provider should return this ID value in the attribute InResponseTo. This enables the service provider to keep track of the state for unique requests. Additionally, each Assertion in the SAML response is also identified by a unique ID. Failure to follow this mechanism can leave SAML responses susceptible to replay attacks.
References
[1] Standards Mapping - Common Weakness Enumeration CWE ID 384
[2] Standards Mapping - DISA Control Correlation Identifier Version 2 CCI-000804, CCI-001664
[3] Standards Mapping - FIPS200 IA
[4] Standards Mapping - General Data Protection Regulation (GDPR) Access Violation
[5] Standards Mapping - NIST Special Publication 800-53 Revision 4 AC-17 Remote Access (P1), SC-23 Session Authenticity (P1)
[6] Standards Mapping - NIST Special Publication 800-53 Revision 5 AC-17 Remote Access, SC-23 Session Authenticity
[7] Standards Mapping - OWASP API 2023 API2 Broken Authentication
[8] Standards Mapping - OWASP Application Security Verification Standard 4.0 3.2.1 Session Binding Requirements (L1 L2 L3), 3.2.3 Session Binding Requirements (L1 L2 L3), 3.3.1 Session Logout and Timeout Requirements (L1 L2 L3)
[9] Standards Mapping - OWASP Mobile 2014 M9 Improper Session Handling
[10] Standards Mapping - OWASP Top 10 2004 A3 Broken Authentication and Session Management
[11] Standards Mapping - OWASP Top 10 2007 A7 Broken Authentication and Session Management
[12] Standards Mapping - OWASP Top 10 2010 A3 Broken Authentication and Session Management
[13] Standards Mapping - OWASP Top 10 2013 A2 Broken Authentication and Session Management
[14] Standards Mapping - OWASP Top 10 2017 A2 Broken Authentication
[15] Standards Mapping - OWASP Top 10 2021 A07 Identification and Authentication Failures
[16] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1 Requirement 6.5.3
[17] Standards Mapping - Payment Card Industry Data Security Standard Version 1.2 Requirement 6.5.7
[18] Standards Mapping - Payment Card Industry Data Security Standard Version 2.0 Requirement 6.5.8
[19] Standards Mapping - Payment Card Industry Data Security Standard Version 3.0 Requirement 6.5.10
[20] Standards Mapping - Payment Card Industry Data Security Standard Version 3.1 Requirement 6.5.10
[21] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2 Requirement 6.5.10
[22] Standards Mapping - Payment Card Industry Data Security Standard Version 3.2.1 Requirement 6.5.10
[23] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0 Requirement 6.2.4
[24] Standards Mapping - Payment Card Industry Data Security Standard Version 4.0.1 Requirement 6.2.4
[25] Standards Mapping - Payment Card Industry Software Security Framework 1.0 Control Objective 4.2 - Critical Asset Protection
[26] Standards Mapping - Payment Card Industry Software Security Framework 1.1 Control Objective 4.2 - Critical Asset Protection
[27] Standards Mapping - Payment Card Industry Software Security Framework 1.2 Control Objective 4.2 - Critical Asset Protection
[28] Standards Mapping - Security Technical Implementation Guide Version 3.1 APP3510 CAT I, APP3600 CAT II
[29] Standards Mapping - Security Technical Implementation Guide Version 3.4 APP3510 CAT I, APP3600 CAT II
[30] Standards Mapping - Security Technical Implementation Guide Version 3.5 APP3510 CAT I, APP3600 CAT II
[31] Standards Mapping - Security Technical Implementation Guide Version 3.6 APP3510 CAT I, APP3600 CAT II
[32] Standards Mapping - Security Technical Implementation Guide Version 3.7 APP3510 CAT I, APP3600 CAT II
[33] Standards Mapping - Security Technical Implementation Guide Version 3.9 APP3510 CAT I, APP3600 CAT II
[34] Standards Mapping - Security Technical Implementation Guide Version 3.10 APP3510 CAT I, APP3600 CAT II
[35] Standards Mapping - Security Technical Implementation Guide Version 4.2 APSC-DV-001620 CAT II, APSC-DV-001630 CAT II, APSC-DV-002250 CAT II, APSC-DV-002260 CAT II, APSC-DV-002270 CAT II, APSC-DV-002280 CAT II
[36] Standards Mapping - Security Technical Implementation Guide Version 4.3 APSC-DV-001620 CAT II, APSC-DV-001630 CAT II, APSC-DV-002250 CAT II, APSC-DV-002260 CAT II, APSC-DV-002270 CAT II, APSC-DV-002280 CAT II
[37] Standards Mapping - Security Technical Implementation Guide Version 4.4 APSC-DV-002280 CAT II, APSC-DV-002260 CAT II
[38] Standards Mapping - Security Technical Implementation Guide Version 4.5 APSC-DV-002280 CAT II, APSC-DV-002260 CAT II
[39] Standards Mapping - Security Technical Implementation Guide Version 4.6 APSC-DV-002280 CAT II, APSC-DV-002260 CAT II
[40] Standards Mapping - Security Technical Implementation Guide Version 4.7 APSC-DV-002280 CAT II, APSC-DV-002260 CAT II
[41] Standards Mapping - Security Technical Implementation Guide Version 4.8 APSC-DV-002280 CAT II, APSC-DV-002260 CAT II
[42] Standards Mapping - Security Technical Implementation Guide Version 4.9 APSC-DV-002280 CAT II, APSC-DV-002260 CAT II
[43] Standards Mapping - Security Technical Implementation Guide Version 4.10 APSC-DV-002280 CAT II, APSC-DV-002260 CAT II
[44] Standards Mapping - Security Technical Implementation Guide Version 4.11 APSC-DV-002280 CAT II, APSC-DV-002260 CAT II
[45] Standards Mapping - Security Technical Implementation Guide Version 4.1 APSC-DV-001620 CAT II, APSC-DV-001630 CAT II, APSC-DV-002250 CAT II, APSC-DV-002260 CAT II, APSC-DV-002270 CAT II, APSC-DV-002280 CAT II
[46] Standards Mapping - Security Technical Implementation Guide Version 5.1 APSC-DV-002280 CAT II, APSC-DV-002260 CAT II
[47] Standards Mapping - Security Technical Implementation Guide Version 5.2 APSC-DV-002280 CAT II, APSC-DV-002260 CAT II
[48] Standards Mapping - Security Technical Implementation Guide Version 5.3 APSC-DV-000210 CAT II, APSC-DV-002260 CAT II, APSC-DV-002280 CAT II
[49] Standards Mapping - Security Technical Implementation Guide Version 6.1 APSC-DV-000210 CAT II, APSC-DV-002260 CAT II, APSC-DV-002280 CAT II
[50] Standards Mapping - Web Application Security Consortium Version 2.00 Session Fixation (WASC-37)
[51] Standards Mapping - Web Application Security Consortium 24 + 2 Session Fixation
desc.dynamic.xtended_preview.SAML_Bad_Practices_Insecure_Message_ID_Implementation