π‘οΈ Sentinel: [CRITICAL] Fix path traversal in ApiFilesGet#236
π‘οΈ Sentinel: [CRITICAL] Fix path traversal in ApiFilesGet#236thirdeyenation wants to merge 1 commit into
Conversation
Co-authored-by: thirdeyenation <133812267+thirdeyenation@users.noreply.github.com>
|
π Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a π emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
π¨ Severity: CRITICAL
π‘ Vulnerability: The API endpoint
api_files_get.pyallowed arbitrary file reading via path traversal (e.g.,../../../etc/passwd) and unrestricted absolute paths, failing to validate user-supplied file paths against the application base directory.π― Impact: An attacker could read arbitrary files on the host system, including sensitive configuration files, environment variables, or private keys, leading to complete system compromise or data exfiltration.
π§ Fix: Added a strict validation check using
files.is_in_base_dir(external_path)to ensure the resolved file path always stays within the application's base directory boundaries. Paths outside this directory are denied access.β Verification: Wrote a test script to verify that requests for files outside the base directory via absolute paths or path traversal (
/a0/../../..) are explicitly blocked and return no data, while valid files within the base directory are returned successfully.PR created automatically by Jules for task 13876370999991279021 started by @thirdeyenation