# SI-10 Information Input Validation

NIST SP 800-53 control. Family: SI System and Information Integrity. Function: preventative. Baselines: moderate, high. Mapping licence: CC BY-SA 4.0.

Statement: Check the validity of the following information inputs: [Assignment: organization-defined information inputs to the system].
Guidance: Checking the valid syntax and semantics of system inputs—including character set, length, numerical range, and acceptable values—verifies that inputs match specified definitions for format and content. For example, if the organization specifies that numerical values between 1-100 are the only acceptable inputs for a field in a given application, inputs of "387,""abc," or "%K%" are invalid inputs and are not accepted as input to the system. Valid inputs are likely to vary from field to field within a software application. Applications typically follow well-defined protocols that use structured messages (i.e., commands or queries) to communicate between software modules or system components. Structured messages can contain raw or unstructured data interspersed with metadata or control information. If software applications use attacker-supplied inputs to construct structured messages without properly encoding such messages, then the attacker could insert malicious commands or special characters that can cause the data to be interpreted as control information or metadata. Consequently, the module or component that receives the corrupted output will perform the wrong operations or otherwise interpret the data incorrectly. Prescreening inputs prior to passing them to interpreters prevents the content from being unintentionally interpreted as commands. Input validation ensures accurate and correct inputs and prevents attacks such as cross-site scripting and a variety of injection attacks.

## Enhancements (6)
- SI-10(01) Manual Override Capability
- SI-10(02) Review and Resolve Errors
- SI-10(03) Predictable Behavior
- SI-10(04) Timing Interactions
- SI-10(05) Restrict Inputs to Trusted Sources and Approved Formats
- SI-10(06) Injection Prevention
Each enhancement's statement: /api/v1/controls/SI-10?fields=enhancements

## Patterns that use it (16)
- Critical (7): SP-012 Secure Software Development Lifecycle; SP-027 Secure LLM Usage; SP-030 API Security; SP-045 AI Governance and Responsible AI; SP-047 Secure Agentic AI Frameworks; SP-051 Tokenised Asset Security Architecture (draft); SP-053 Zero-Knowledge Proof Architecture (draft)
- Important (5): SP-005 SOA Internal Service Usage Pattern; SP-028 Secure DevOps Pipeline Pattern; SP-048 Offensive AI and Deepfake Defence (draft); SP-049 AI in Security Operations (draft); SP-054 CBDC and Digital Currency Infrastructure (draft)
- Standard (4): SP-002 Server Module; SP-013 Data Security Pattern; SP-023 Industrial Control Systems; SP-050 Mobile Security Architecture (draft)

## Clauses by framework (45 frameworks)
- cobit_2019: DSS06
- nist_csf_2: PR.DS-10
- soc2_tsc: CC6.6, CC6.6-POF2
- iso_42001_2023: A.7.2, A.7.4
- iec_62443: 3-3 SR 3.5
- bsi_grundschutz: APP.3.1
- anssi: Hygiene.33, SecNumCloud.15.3
- osfi_b13: B-13.3.2
- finma_circular: IV.D(78), IV.D(80), IV.E(84)
- gdpr: Art.5(1)(d)
- dora: Art.9(4)(e)
- rbi_csf: Annex1.6
- fisc: FISC.T5, FISC.T6, FISC.T8, FISC.T12
- lgpd_bcb: BCB.PIX
- hkma_tme1: TME1.3.2, TME1.10.1
- cra: CRA.I.2f
- cbb_tm: TM-7
- cbuae: CR-6
- nca_ecc: 2-14
- sama_csf: 3.2
- uae_ia: T7
- bog_cisd: CISD-IX, CISD-SDLC
- bom_ctrm: 3.13
- cbe_csf: CTO-4, CTO-5
- cbn_csf: Part5.2
- popia: s16
- sa_js2: JS2-SA
- bcbs_239: Principle 3, Principle 7
- bot_cyber: Ch2.5
- ffiec_is: II.C.17
- hipaa_sr: §164.312(c)(1)
- iosco_cyber: PROT-3, RR-3
- sebi_cscrf: PR.AS
- cmmc_2: SI
- isae_3402: Clause 4
- fca_sysc_13: SYSC 13.7.1
- fda_21_cfr_11: §11.10(f)
- fda_cyber: ST-3
- hitrust_csf: 10.b
- lloyds_ms: BP2.2, MS1.1, MS2.1, MS5.1, MS6.1, MS13.2
- pra_ss1_23: P3.2, P4.3
- solvency_ii: Pillar3-Reporting
- owasp_masvs_v2: MASVS-CODE-4, MASVS-PLATFORM-1
- mica: Art.68(1), Art.69(1), Art.76(1)
- basel_sco60: SCO60.66
OSA's mapping for nist_csf_2 takes NIST's published crosswalk as its base. A clause not marked as OSA's own is in that crosswalk.

## More
- This control as JSON, with guidance and ATT&CK techniques: /api/v1/controls/SI-10
- Clauses only: /api/v1/controls/SI-10?fields=mappings
- Page for people: /controls/si-10/
