Commit Graph

3 Commits

Author SHA1 Message Date
Varun Chawla
ab484ef4e6
refactor: use PurePosixPath for path traversal validation per review feedback 2026-02-19 23:50:28 -08:00
Varun Chawla
ae575a8670
security: handle Windows backslash path traversal in filename validation
Normalize backslashes to forward slashes before checking for path
traversal patterns, preventing attacks like `folder\..\secret` that
bypass forward-slash-only checks on Windows. Addresses review feedback
from light-and-ray on PR #12353.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 23:50:28 -08:00
Varun Chawla
dd9f4d1a32
security: refine path traversal validation to allow consecutive dots in filenames
Fixes #12352

The previous validation incorrectly rejected filenames with consecutive dots
(e.g., test..png) by checking if '..' exists anywhere in the filename.

This commit refines the validation to:
- Block actual path traversal patterns: '../', '/..'
- Block filenames starting with '..' (e.g., '..secret')
- Block absolute paths starting with '/'
- Allow consecutive dots in filenames (e.g., 'test..png', 'my...file.jpg')

Changes:
- Updated validation logic in /view and /upload/mask endpoints
- Added comprehensive test suite covering both security and functionality
- All tests pass: blocks path traversal, allows valid filenames with dots
2026-02-19 23:50:28 -08:00