diff --git a/1.0/openid-4-verifiable-presentations-1_0.md b/1.0/openid-4-verifiable-presentations-1_0.md index b95284f2..bf6358a0 100644 --- a/1.0/openid-4-verifiable-presentations-1_0.md +++ b/1.0/openid-4-verifiable-presentations-1_0.md @@ -1934,6 +1934,15 @@ these constraints. The Wallet is not controlled by the Verifier and the Verifier MUST perform its own security checks on the returned Credentials and Presentations. +## Parsing of untrusted inputs + +Wallets MUST treat all incoming requests as untrusted input. To mitigate injection and resource exhaustion attacks, Wallets MUST implement input validation on the Authorization Request and its enclosed DCQL query. + +Wallets SHOULD implement at least the following steps: + +* Enforce input validation: Verify that the Authorization Request and DCQL query contain no malformed properties. Unknown parameters MUST be ignored. +* Apply resource limits: Enforce maximum length restrictions on strings, maximum depths for nested objects, and maximum item counts for arrays within the query. + # Privacy Considerations {#privacy-considerations} Many privacy considerations are specific to the Credential format and associated proof type used in a particular Presentation. @@ -3616,6 +3625,7 @@ The technology described in this specification was made available from contribut -31 + * add security considerations on untrusted input * Clarify that the Wallet does not follow HTTP redirects * Clarify jwks use parameter * Clarify nonce entropy requirements diff --git a/1.1/openid-4-verifiable-presentations-1_1.md b/1.1/openid-4-verifiable-presentations-1_1.md index df34af9b..c9c98554 100644 --- a/1.1/openid-4-verifiable-presentations-1_1.md +++ b/1.1/openid-4-verifiable-presentations-1_1.md @@ -2001,7 +2001,7 @@ Presentations. Wallets MUST treat all incoming requests as untrusted input. To mitigate injection and resource exhaustion attacks, Wallets MUST implement input validation on the Authorization Request and its enclosed DCQL query. -Wallets SHOULD implement the following steps: +Wallets SHOULD at least implement the following steps: * Enforce input validation: Verify that the Authorization Request and DCQL query contain no malformed properties. Unknown parameters MUST be ignored. * Apply resource limits: Enforce maximum length restrictions on strings, maximum depths for nested objects, and maximum item counts for arrays within the query.