diff --git a/app/api/dropbox.py b/app/api/dropbox.py index 86f72a25..e2d33448 100644 --- a/app/api/dropbox.py +++ b/app/api/dropbox.py @@ -8,6 +8,7 @@ from typing import Annotated, Optional from urllib.parse import quote import httpx +import requests from fastapi import APIRouter, Depends, Form, HTTPException, Request, status from sqlalchemy.orm import Session diff --git a/app/api/onedrive.py b/app/api/onedrive.py index 9e19c303..cf39f43b 100644 --- a/app/api/onedrive.py +++ b/app/api/onedrive.py @@ -7,6 +7,7 @@ from datetime import datetime, timedelta from typing import Annotated, Optional import httpx +import requests from fastapi import APIRouter, Depends, Form, HTTPException, Request, status from sqlalchemy.orm import Session diff --git a/app/tasks/upload_to_user_integration.py b/app/tasks/upload_to_user_integration.py index 24754200..9654fb5c 100644 --- a/app/tasks/upload_to_user_integration.py +++ b/app/tasks/upload_to_user_integration.py @@ -555,8 +555,7 @@ def _upload_rclone(file_path: str, cfg: dict[str, Any], creds: dict[str, Any], t dest = dest.replace("//", "/") try: - # SECURITY: Use `--` so subsequent values are treated as positional arguments, preventing - # option/argument injection when file paths or destinations start with '-'. + # SECURITY: Separate options from positional arguments using -- to prevent command injection result = subprocess.run( # nosec B603 # noqa: S603 S607 ["rclone", "copyto", f"--config={conf_path}", "--", file_path, dest], # noqa: S603 S607 capture_output=True,