π‘οΈ Sentinel: [CRITICAL] Fix RCE vulnerability in PDF compilation#310
π‘οΈ Sentinel: [CRITICAL] Fix RCE vulnerability in PDF compilation#310anchapin wants to merge 1 commit into
Conversation
Added `-no-shell-escape` flag to `pdflatex` and `--pdf-engine-opt=-no-shell-escape` to `pandoc` in `cli/pdf/converter.py` and `cli/generators/cover_letter_generator.py`. This prevents arbitrary code execution vulnerabilities during PDF generation. Also added a `timeout=30` to `subprocess.communicate()` to prevent infinite loops and potential DoS attacks. Co-authored-by: anchapin <6326294+anchapin@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: Arbitrary Code Execution (RCE) / Command Injection via LaTeX.
pdflatexandpandocwere being called incli/pdf/converter.pyandcli/generators/cover_letter_generator.pywithout the-no-shell-escapeflag.π― Impact: If user input is injected into the
.texfile without being properly escaped, an attacker could use the\write18command to execute arbitrary shell commands on the host machine. The lack of a timeout also exposed the application to Denial of Service (DoS) attacks via infinite compilation loops.π§ Fix: Added the
-no-shell-escapeflag topdflatexand--pdf-engine-opt=-no-shell-escapetopandocsubprocess calls. Added atimeout=30toprocess.communicate()with proper exception handling to kill the process and clean up resources if it hangs.β Verification: Verified by reviewing the subprocess calls in the modified files and running the test suite (
tests/test_pdf_security.py).PR created automatically by Jules for task 799660862591101811 started by @anchapin