Skip to content

fix: validate paths and file types in showStudypad and showImage URL actions#1328

Merged
karlkleinpaste merged 1 commit into
crosswire:masterfrom
hyder365:pr-0002-fix-path-validation
Jun 19, 2026
Merged

fix: validate paths and file types in showStudypad and showImage URL actions#1328
karlkleinpaste merged 1 commit into
crosswire:masterfrom
hyder365:pr-0002-fix-path-validation

Conversation

@hyder365

Copy link
Copy Markdown
Contributor

showStudypad passed the 'value' URL parameter directly to
editor_create_new() as a file path without validation. Any local
process on the D-Bus session bus could trigger a path traversal
attack (e.g. "../../etc/passwd") to read arbitrary files.

showImage stripped the "file:" prefix and handed the path to
show_separate_image(), which spawns xdg-open -- any file type
could be opened in its default handler.

Fix showStudypad by rejecting paths containing "..", absolute paths
(g_path_is_absolute), and directory separators -- only bare
filenames pass through.

Fix showImage by whitelisting recognized image extensions: .png,
.jpg, .jpeg, .gif, .bmp, .svg, .tiff, .webp.

…actions

showStudypad passed the 'value' parameter directly to editor_create_new()
as a file path without validation, enabling arbitrary file reads via
path traversal or absolute paths. Add checks to reject '..', absolute
paths, and directory separators.

showImage passed the path to show_separate_image() which spawned
xdg-open with the file as argument, enabling arbitrary file execution.
Add a whitelist of recognized image file extensions.
@karlkleinpaste karlkleinpaste merged commit 1720296 into crosswire:master Jun 19, 2026
7 checks passed
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.

2 participants