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

Fix security issues in dependencies and Studio directly #979

Merged

Conversation

LukasKalbertodt
Copy link
Member

@LukasKalbertodt LukasKalbertodt commented Nov 9, 2022

PR is mainly for the first commit which fixes a prototype pollution issue in Studio. As the commit message says, we couldn't find a way to actually exploit it, so we don't think this is a high impact security issue. It's scary though, so it needs to be fixed for sure. We only found ways to break Studio (but that's not particularly useful to an attacker): https://studio.opencast.org/?__proto__.toString=peter

The other commits are about updating dependencies to get rid of security issues in those.

@github-actions

This comment was marked as resolved.

@github-actions github-actions bot added the status:conflicts Conflicts with another pull request or issue label Dec 23, 2022
Copy link
Contributor

@narickmann narickmann left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me.

URL parameters could be used to modify the root prototype, eg.:
   ?__proto__.toString=peter

Fortunately, the assigned value is always a string, so it's not possible
to overwrite functions with other functions. The example above just
leads to a JS error which is caught by the application and an error is
then displayed. It might be possible to add a new field to the prototype
that then leads to other code checking `if ('foo' in obj)` to behave
differently. But I couldn't find a spot that could be abused. I might
very well have missed something, but my guess would be that this
vulnerability is not really exploitable in a bad way.

Note: I think only one of the `{}` needs to be replaced by
`Object.create(null)`, but it doesn't hurt just replacing all of them.
From a quick glance, I also didn't find any similar problems in the
code base.
This updates a ton of other dependencies. In particular, it also fixes
a ton of security issues within the dependency tree.
@github-actions github-actions bot removed the status:conflicts Conflicts with another pull request or issue label Jan 9, 2023
@LukasKalbertodt LukasKalbertodt merged commit 1df9501 into elan-ev:master Jan 9, 2023
@LukasKalbertodt LukasKalbertodt deleted the fix-prototype-pollution branch January 9, 2023 11:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants