Potential fix for code scanning alert no. 1: Uncontrolled data used in path expression #37
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Potential fix for https://github.com/ilesinge/shabda/security/code-scanning/1
The best way to fix this problem is to sanitize the user-provided
definitionstring before using it in path construction. In this scenario, the definition is only used for naming a temporary file; therefore, the safest method is to pass it throughwerkzeug.utils.secure_filenamebefore concatenating it into the file path. This eliminates dangerous characters and prevents directory traversal.You should import
secure_filenamefromwerkzeug.utilsat the top of the file, and then, just before constructingtmpfile, apply it:definition_secure = secure_filename(definition)Use
definition_securewhen formingtmpfile.Files/regions/lines to change:
shabda/web.py, addfrom werkzeug.utils import secure_filename.speech_zipfunction, convertdefinitionusingsecure_filenamebefore using it to buildtmpfile.Suggested fixes powered by Copilot Autofix. Review carefully before merging.