-
Notifications
You must be signed in to change notification settings - Fork 37
Description
In PE, JSONpath is used both in the presentation definition as well as in the presentation submissions. In other words, both Holders and Verifiers need to execute JSONpath expressions in order to process PE. Usually, Verifier and Holder are not the same entity and should not fully trust each other.
JSONpath, however, intentionally allows for arbitrary script execution - you can't just pull it into your spec and expect people to create secure implementations. By default, it can enable exfiltration of security and privacy sensitive data, denial of service attacks, and server-side request forgery, to name just a few. I collected a couple of examples in this twitter thread: https://twitter.com/dfett42/status/1608433806964580352
Therefore, PE must ensure that JSONpath cannot be used to execute arbitrary scripts on a server, for example, by only allowing a reduced subset of JSONpath's syntax.