Skip to content

JSONpath has security issues #398

@danielfett

Description

@danielfett

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.

Metadata

Metadata

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions