mirror of
https://github.com/d-k-patel/ai-ffmpeg-cli.git
synced 2025-10-09 13:42:56 +03:00
fix: bandit security
This commit is contained in:
353
bandit_report.json
Normal file
353
bandit_report.json
Normal file
@@ -0,0 +1,353 @@
|
||||
{
|
||||
"errors": [],
|
||||
"generated_at": "2025-08-22T06:10:11Z",
|
||||
"metrics": {
|
||||
"_totals": {
|
||||
"CONFIDENCE.HIGH": 1,
|
||||
"CONFIDENCE.LOW": 0,
|
||||
"CONFIDENCE.MEDIUM": 0,
|
||||
"CONFIDENCE.UNDEFINED": 0,
|
||||
"SEVERITY.HIGH": 0,
|
||||
"SEVERITY.LOW": 1,
|
||||
"SEVERITY.MEDIUM": 0,
|
||||
"SEVERITY.UNDEFINED": 0,
|
||||
"loc": 4636,
|
||||
"nosec": 0,
|
||||
"skipped_tests": 8
|
||||
},
|
||||
"src/ai_ffmpeg_cli/__init__.py": {
|
||||
"CONFIDENCE.HIGH": 0,
|
||||
"CONFIDENCE.LOW": 0,
|
||||
"CONFIDENCE.MEDIUM": 0,
|
||||
"CONFIDENCE.UNDEFINED": 0,
|
||||
"SEVERITY.HIGH": 0,
|
||||
"SEVERITY.LOW": 0,
|
||||
"SEVERITY.MEDIUM": 0,
|
||||
"SEVERITY.UNDEFINED": 0,
|
||||
"loc": 2,
|
||||
"nosec": 0,
|
||||
"skipped_tests": 0
|
||||
},
|
||||
"src/ai_ffmpeg_cli/ascii_art.py": {
|
||||
"CONFIDENCE.HIGH": 1,
|
||||
"CONFIDENCE.LOW": 0,
|
||||
"CONFIDENCE.MEDIUM": 0,
|
||||
"CONFIDENCE.UNDEFINED": 0,
|
||||
"SEVERITY.HIGH": 0,
|
||||
"SEVERITY.LOW": 1,
|
||||
"SEVERITY.MEDIUM": 0,
|
||||
"SEVERITY.UNDEFINED": 0,
|
||||
"loc": 301,
|
||||
"nosec": 0,
|
||||
"skipped_tests": 0
|
||||
},
|
||||
"src/ai_ffmpeg_cli/command_builder.py": {
|
||||
"CONFIDENCE.HIGH": 0,
|
||||
"CONFIDENCE.LOW": 0,
|
||||
"CONFIDENCE.MEDIUM": 0,
|
||||
"CONFIDENCE.UNDEFINED": 0,
|
||||
"SEVERITY.HIGH": 0,
|
||||
"SEVERITY.LOW": 0,
|
||||
"SEVERITY.MEDIUM": 0,
|
||||
"SEVERITY.UNDEFINED": 0,
|
||||
"loc": 73,
|
||||
"nosec": 0,
|
||||
"skipped_tests": 0
|
||||
},
|
||||
"src/ai_ffmpeg_cli/config.py": {
|
||||
"CONFIDENCE.HIGH": 0,
|
||||
"CONFIDENCE.LOW": 0,
|
||||
"CONFIDENCE.MEDIUM": 0,
|
||||
"CONFIDENCE.UNDEFINED": 0,
|
||||
"SEVERITY.HIGH": 0,
|
||||
"SEVERITY.LOW": 0,
|
||||
"SEVERITY.MEDIUM": 0,
|
||||
"SEVERITY.UNDEFINED": 0,
|
||||
"loc": 224,
|
||||
"nosec": 0,
|
||||
"skipped_tests": 0
|
||||
},
|
||||
"src/ai_ffmpeg_cli/confirm.py": {
|
||||
"CONFIDENCE.HIGH": 0,
|
||||
"CONFIDENCE.LOW": 0,
|
||||
"CONFIDENCE.MEDIUM": 0,
|
||||
"CONFIDENCE.UNDEFINED": 0,
|
||||
"SEVERITY.HIGH": 0,
|
||||
"SEVERITY.LOW": 0,
|
||||
"SEVERITY.MEDIUM": 0,
|
||||
"SEVERITY.UNDEFINED": 0,
|
||||
"loc": 49,
|
||||
"nosec": 0,
|
||||
"skipped_tests": 0
|
||||
},
|
||||
"src/ai_ffmpeg_cli/context_scanner_basic.py": {
|
||||
"CONFIDENCE.HIGH": 0,
|
||||
"CONFIDENCE.LOW": 0,
|
||||
"CONFIDENCE.MEDIUM": 0,
|
||||
"CONFIDENCE.UNDEFINED": 0,
|
||||
"SEVERITY.HIGH": 0,
|
||||
"SEVERITY.LOW": 0,
|
||||
"SEVERITY.MEDIUM": 0,
|
||||
"SEVERITY.UNDEFINED": 0,
|
||||
"loc": 200,
|
||||
"nosec": 0,
|
||||
"skipped_tests": 3
|
||||
},
|
||||
"src/ai_ffmpeg_cli/context_scanner_extended.py": {
|
||||
"CONFIDENCE.HIGH": 0,
|
||||
"CONFIDENCE.LOW": 0,
|
||||
"CONFIDENCE.MEDIUM": 0,
|
||||
"CONFIDENCE.UNDEFINED": 0,
|
||||
"SEVERITY.HIGH": 0,
|
||||
"SEVERITY.LOW": 0,
|
||||
"SEVERITY.MEDIUM": 0,
|
||||
"SEVERITY.UNDEFINED": 0,
|
||||
"loc": 100,
|
||||
"nosec": 0,
|
||||
"skipped_tests": 3
|
||||
},
|
||||
"src/ai_ffmpeg_cli/credential_security.py": {
|
||||
"CONFIDENCE.HIGH": 0,
|
||||
"CONFIDENCE.LOW": 0,
|
||||
"CONFIDENCE.MEDIUM": 0,
|
||||
"CONFIDENCE.UNDEFINED": 0,
|
||||
"SEVERITY.HIGH": 0,
|
||||
"SEVERITY.LOW": 0,
|
||||
"SEVERITY.MEDIUM": 0,
|
||||
"SEVERITY.UNDEFINED": 0,
|
||||
"loc": 165,
|
||||
"nosec": 0,
|
||||
"skipped_tests": 0
|
||||
},
|
||||
"src/ai_ffmpeg_cli/custom_exceptions.py": {
|
||||
"CONFIDENCE.HIGH": 0,
|
||||
"CONFIDENCE.LOW": 0,
|
||||
"CONFIDENCE.MEDIUM": 0,
|
||||
"CONFIDENCE.UNDEFINED": 0,
|
||||
"SEVERITY.HIGH": 0,
|
||||
"SEVERITY.LOW": 0,
|
||||
"SEVERITY.MEDIUM": 0,
|
||||
"SEVERITY.UNDEFINED": 0,
|
||||
"loc": 46,
|
||||
"nosec": 0,
|
||||
"skipped_tests": 0
|
||||
},
|
||||
"src/ai_ffmpeg_cli/executor.py": {
|
||||
"CONFIDENCE.HIGH": 0,
|
||||
"CONFIDENCE.LOW": 0,
|
||||
"CONFIDENCE.MEDIUM": 0,
|
||||
"CONFIDENCE.UNDEFINED": 0,
|
||||
"SEVERITY.HIGH": 0,
|
||||
"SEVERITY.LOW": 0,
|
||||
"SEVERITY.MEDIUM": 0,
|
||||
"SEVERITY.UNDEFINED": 0,
|
||||
"loc": 211,
|
||||
"nosec": 0,
|
||||
"skipped_tests": 2
|
||||
},
|
||||
"src/ai_ffmpeg_cli/file_operations.py": {
|
||||
"CONFIDENCE.HIGH": 0,
|
||||
"CONFIDENCE.LOW": 0,
|
||||
"CONFIDENCE.MEDIUM": 0,
|
||||
"CONFIDENCE.UNDEFINED": 0,
|
||||
"SEVERITY.HIGH": 0,
|
||||
"SEVERITY.LOW": 0,
|
||||
"SEVERITY.MEDIUM": 0,
|
||||
"SEVERITY.UNDEFINED": 0,
|
||||
"loc": 421,
|
||||
"nosec": 0,
|
||||
"skipped_tests": 0
|
||||
},
|
||||
"src/ai_ffmpeg_cli/intent_models.py": {
|
||||
"CONFIDENCE.HIGH": 0,
|
||||
"CONFIDENCE.LOW": 0,
|
||||
"CONFIDENCE.MEDIUM": 0,
|
||||
"CONFIDENCE.UNDEFINED": 0,
|
||||
"SEVERITY.HIGH": 0,
|
||||
"SEVERITY.LOW": 0,
|
||||
"SEVERITY.MEDIUM": 0,
|
||||
"SEVERITY.UNDEFINED": 0,
|
||||
"loc": 153,
|
||||
"nosec": 0,
|
||||
"skipped_tests": 0
|
||||
},
|
||||
"src/ai_ffmpeg_cli/intent_models_extended.py": {
|
||||
"CONFIDENCE.HIGH": 0,
|
||||
"CONFIDENCE.LOW": 0,
|
||||
"CONFIDENCE.MEDIUM": 0,
|
||||
"CONFIDENCE.UNDEFINED": 0,
|
||||
"SEVERITY.HIGH": 0,
|
||||
"SEVERITY.LOW": 0,
|
||||
"SEVERITY.MEDIUM": 0,
|
||||
"SEVERITY.UNDEFINED": 0,
|
||||
"loc": 175,
|
||||
"nosec": 0,
|
||||
"skipped_tests": 0
|
||||
},
|
||||
"src/ai_ffmpeg_cli/intent_router.py": {
|
||||
"CONFIDENCE.HIGH": 0,
|
||||
"CONFIDENCE.LOW": 0,
|
||||
"CONFIDENCE.MEDIUM": 0,
|
||||
"CONFIDENCE.UNDEFINED": 0,
|
||||
"SEVERITY.HIGH": 0,
|
||||
"SEVERITY.LOW": 0,
|
||||
"SEVERITY.MEDIUM": 0,
|
||||
"SEVERITY.UNDEFINED": 0,
|
||||
"loc": 288,
|
||||
"nosec": 0,
|
||||
"skipped_tests": 0
|
||||
},
|
||||
"src/ai_ffmpeg_cli/llm_client.py": {
|
||||
"CONFIDENCE.HIGH": 0,
|
||||
"CONFIDENCE.LOW": 0,
|
||||
"CONFIDENCE.MEDIUM": 0,
|
||||
"CONFIDENCE.UNDEFINED": 0,
|
||||
"SEVERITY.HIGH": 0,
|
||||
"SEVERITY.LOW": 0,
|
||||
"SEVERITY.MEDIUM": 0,
|
||||
"SEVERITY.UNDEFINED": 0,
|
||||
"loc": 381,
|
||||
"nosec": 0,
|
||||
"skipped_tests": 0
|
||||
},
|
||||
"src/ai_ffmpeg_cli/logging_config/__init__.py": {
|
||||
"CONFIDENCE.HIGH": 0,
|
||||
"CONFIDENCE.LOW": 0,
|
||||
"CONFIDENCE.MEDIUM": 0,
|
||||
"CONFIDENCE.UNDEFINED": 0,
|
||||
"SEVERITY.HIGH": 0,
|
||||
"SEVERITY.LOW": 0,
|
||||
"SEVERITY.MEDIUM": 0,
|
||||
"SEVERITY.UNDEFINED": 0,
|
||||
"loc": 27,
|
||||
"nosec": 0,
|
||||
"skipped_tests": 0
|
||||
},
|
||||
"src/ai_ffmpeg_cli/logging_config/config.py": {
|
||||
"CONFIDENCE.HIGH": 0,
|
||||
"CONFIDENCE.LOW": 0,
|
||||
"CONFIDENCE.MEDIUM": 0,
|
||||
"CONFIDENCE.UNDEFINED": 0,
|
||||
"SEVERITY.HIGH": 0,
|
||||
"SEVERITY.LOW": 0,
|
||||
"SEVERITY.MEDIUM": 0,
|
||||
"SEVERITY.UNDEFINED": 0,
|
||||
"loc": 204,
|
||||
"nosec": 0,
|
||||
"skipped_tests": 0
|
||||
},
|
||||
"src/ai_ffmpeg_cli/logging_config/context.py": {
|
||||
"CONFIDENCE.HIGH": 0,
|
||||
"CONFIDENCE.LOW": 0,
|
||||
"CONFIDENCE.MEDIUM": 0,
|
||||
"CONFIDENCE.UNDEFINED": 0,
|
||||
"SEVERITY.HIGH": 0,
|
||||
"SEVERITY.LOW": 0,
|
||||
"SEVERITY.MEDIUM": 0,
|
||||
"SEVERITY.UNDEFINED": 0,
|
||||
"loc": 113,
|
||||
"nosec": 0,
|
||||
"skipped_tests": 0
|
||||
},
|
||||
"src/ai_ffmpeg_cli/main.py": {
|
||||
"CONFIDENCE.HIGH": 0,
|
||||
"CONFIDENCE.LOW": 0,
|
||||
"CONFIDENCE.MEDIUM": 0,
|
||||
"CONFIDENCE.UNDEFINED": 0,
|
||||
"SEVERITY.HIGH": 0,
|
||||
"SEVERITY.LOW": 0,
|
||||
"SEVERITY.MEDIUM": 0,
|
||||
"SEVERITY.UNDEFINED": 0,
|
||||
"loc": 534,
|
||||
"nosec": 0,
|
||||
"skipped_tests": 0
|
||||
},
|
||||
"src/ai_ffmpeg_cli/path_security.py": {
|
||||
"CONFIDENCE.HIGH": 0,
|
||||
"CONFIDENCE.LOW": 0,
|
||||
"CONFIDENCE.MEDIUM": 0,
|
||||
"CONFIDENCE.UNDEFINED": 0,
|
||||
"SEVERITY.HIGH": 0,
|
||||
"SEVERITY.LOW": 0,
|
||||
"SEVERITY.MEDIUM": 0,
|
||||
"SEVERITY.UNDEFINED": 0,
|
||||
"loc": 445,
|
||||
"nosec": 0,
|
||||
"skipped_tests": 0
|
||||
},
|
||||
"src/ai_ffmpeg_cli/prompt_enhancer.py": {
|
||||
"CONFIDENCE.HIGH": 0,
|
||||
"CONFIDENCE.LOW": 0,
|
||||
"CONFIDENCE.MEDIUM": 0,
|
||||
"CONFIDENCE.UNDEFINED": 0,
|
||||
"SEVERITY.HIGH": 0,
|
||||
"SEVERITY.LOW": 0,
|
||||
"SEVERITY.MEDIUM": 0,
|
||||
"SEVERITY.UNDEFINED": 0,
|
||||
"loc": 276,
|
||||
"nosec": 0,
|
||||
"skipped_tests": 0
|
||||
},
|
||||
"src/ai_ffmpeg_cli/token_tracker.py": {
|
||||
"CONFIDENCE.HIGH": 0,
|
||||
"CONFIDENCE.LOW": 0,
|
||||
"CONFIDENCE.MEDIUM": 0,
|
||||
"CONFIDENCE.UNDEFINED": 0,
|
||||
"SEVERITY.HIGH": 0,
|
||||
"SEVERITY.LOW": 0,
|
||||
"SEVERITY.MEDIUM": 0,
|
||||
"SEVERITY.UNDEFINED": 0,
|
||||
"loc": 210,
|
||||
"nosec": 0,
|
||||
"skipped_tests": 0
|
||||
},
|
||||
"src/ai_ffmpeg_cli/user_prompts.py": {
|
||||
"CONFIDENCE.HIGH": 0,
|
||||
"CONFIDENCE.LOW": 0,
|
||||
"CONFIDENCE.MEDIUM": 0,
|
||||
"CONFIDENCE.UNDEFINED": 0,
|
||||
"SEVERITY.HIGH": 0,
|
||||
"SEVERITY.LOW": 0,
|
||||
"SEVERITY.MEDIUM": 0,
|
||||
"SEVERITY.UNDEFINED": 0,
|
||||
"loc": 33,
|
||||
"nosec": 0,
|
||||
"skipped_tests": 0
|
||||
},
|
||||
"src/ai_ffmpeg_cli/version_info.py": {
|
||||
"CONFIDENCE.HIGH": 0,
|
||||
"CONFIDENCE.LOW": 0,
|
||||
"CONFIDENCE.MEDIUM": 0,
|
||||
"CONFIDENCE.UNDEFINED": 0,
|
||||
"SEVERITY.HIGH": 0,
|
||||
"SEVERITY.LOW": 0,
|
||||
"SEVERITY.MEDIUM": 0,
|
||||
"SEVERITY.UNDEFINED": 0,
|
||||
"loc": 5,
|
||||
"nosec": 0,
|
||||
"skipped_tests": 0
|
||||
}
|
||||
},
|
||||
"results": [
|
||||
{
|
||||
"code": "345 \n346 return random.choice(fonts)\n347 \n",
|
||||
"col_offset": 11,
|
||||
"end_col_offset": 31,
|
||||
"filename": "src/ai_ffmpeg_cli/ascii_art.py",
|
||||
"issue_confidence": "HIGH",
|
||||
"issue_cwe": {
|
||||
"id": 330,
|
||||
"link": "https://cwe.mitre.org/data/definitions/330.html"
|
||||
},
|
||||
"issue_severity": "LOW",
|
||||
"issue_text": "Standard pseudo-random generators are not suitable for security/cryptographic purposes.",
|
||||
"line_number": 346,
|
||||
"line_range": [
|
||||
346
|
||||
],
|
||||
"more_info": "https://bandit.readthedocs.io/en/1.8.6/blacklists/blacklist_calls.html#b311-random",
|
||||
"test_id": "B311",
|
||||
"test_name": "blacklist"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -343,7 +343,7 @@ def get_random_font() -> str:
|
||||
"weird",
|
||||
]
|
||||
|
||||
return random.choice(fonts)
|
||||
return random.choice(fonts) # nosec B311: Used for cosmetic font selection, not security-critical
|
||||
|
||||
|
||||
def display_dynamic_banner() -> None:
|
||||
|
||||
Reference in New Issue
Block a user