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 path traversal vulnerability #233

Merged
merged 2 commits into from
May 28, 2023
Merged

Conversation

rcowsill
Copy link
Contributor

The first commit moves the tutorial routes out of routes/index.js and into a separate router. This is to avoid cluttering the top-level route setup with the tutorial routing code. The tutorial is effectively a microsite alongside the main application, so it seems reasonable to split it out like this.

The second commit replaces the /tutorial/:page route with individual routes for each page.

Currently the set of allowed pages is just listed explicitly. I considered generating the page list from the filesystem or using HenrikJoreteg/semi-static, but that would require moving the templates around to avoid serving the layout template.

Fixes #232

Add individual routes for each tutorial page instead of using a single
parameterized route.

The parameterized route allowed the user to pass unexpected :page
values. Relative paths could be specified to access arbitrary files
with extension ".html". Specifying any other extension would cause
express to dynamically require the module with the matching name. This
allowed loading of locally or globally installed modules, and also
permitted dependency enumeration.
@lirantal
Copy link
Collaborator

Thanks!

Copy link
Collaborator

@lirantal lirantal left a comment

Choose a reason for hiding this comment

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

LGTM

@lirantal lirantal merged commit 5e71697 into OWASP:master May 28, 2023
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.

Unexpected path traversal vulnerability
3 participants