Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Security issues with bogus WebID documents to be considered #14

Closed
RubenVerborgh opened this issue Nov 23, 2021 · 4 comments
Closed

Security issues with bogus WebID documents to be considered #14

RubenVerborgh opened this issue Nov 23, 2021 · 4 comments
Labels
bug Something isn't working

Comments

@RubenVerborgh
Copy link
Member

While #13 prevents memory from filling up from WebID documents with a large number of triples, there are still potential attacks to be considered:

  • The code can be tricked into dereferencing private documents on the local network, and returning their contents as parse errors
  • Servers can wait a long time to reply, causing long/infinite wait times
  • Servers can reply with a long/endless list of OIDC issuers, causing long/infinite wait times
  • Servers can reply with a long/endless list of triples, causing long/infinite wait times
  • Servers can reply with a triple containing a huge/never-ending literal, causing long/infinite wait times

We might want to mitigate by allowing passing in a custom fetcher, which could include protection mechanisms against the above, while in the future also performing tasks such as authenticated fetch, caching (see #12), etc.

@RubenVerborgh RubenVerborgh added the bug Something isn't working label Nov 23, 2021
@RubenVerborgh RubenVerborgh changed the title Security issues with bogus WebIDs to be considered Security issues with bogus WebID documents to be considered Nov 23, 2021
@RubenVerborgh
Copy link
Member Author

@kjetilk/@csarven Do we also want spec advice and/or tests for such attack scenarios?

@matthieubosquet
Copy link
Collaborator

I agree with your diagnostic @RubenVerborgh.
Not that I have a ready-made solution. But indeed, having a more Solid-ready fetch function for everyone to use would be great.

Would it maybe be time for a @solid/fetcher-ts project that includes an authn closure, default caching mechanisms, timeout protections, max size, retry mechanism...

As I believe your comment applies to the entire Solid ecosystem of decentralised apps and data.

@RubenVerborgh
Copy link
Member Author

Thanks @matthieubosquet, I incorporated this into solid/specification#21; let's await its resolution.

@matthieubosquet
Copy link
Collaborator

This is also linked to: CommunitySolidServer/CommunitySolidServer#907

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants