Leaderboard github.com
AUTOMATIC1111/stable-diffusion-webui
Stable Diffusion web UI
AI provenance
0%
possible
- Confidence
- 65%
- Coverage
- 100%
Estimated share of AI-generated code. Explicit attribution is a lower bound.
Code quality
54/100
weak
- Confidence
- 90%
- Coverage
- 100%
Complexity, duplication, lint density, tests, CI, docs and review process.
Security
50/100
weak
- Confidence
- 85%
- Coverage
- 100%
Secrets, static analysis, vulnerable dependencies, CI and supply-chain posture.
AI provenance
0% possible
Weak signals consistent with AI-assisted development.
How the score is built
- Explicitly attributed share0%
- Unattributed share in AI-pace bursts19%
- Estimated AI-generated share0%
- AI tool configuration files0
- Work sessions at AI pace3
- Releases at AI pace1
- Coding-style index (1.0+ means possible)0.26
Lines added per month all AI-attributed share
- 2022-083,249 · 0% AI
- 2022-0917,734 · 0% AI
- 2022-1019,894 · 0% AI
- 2022-1119,352 · 0% AI
- 2022-1216,936 · 0% AI
- 2023-0110,742 · 0% AI
- 2023-022,528 · 0% AI
- 2023-033,099 · 0% AI
- 2023-041,330 · 0% AI
- 2023-059,160 · 0% AI
- 2023-062,197 · 0% AI
- 2023-074,510 · 0% AI
- 2023-087,343 · 0% AI
- 2023-09504 · 0% AI
- 2023-101,688 · 0% AI
- 2023-113,745 · 0% AI
- 2023-124,474 · 0% AI
- 2024-013,029 · 0% AI
- 2024-021,121 · 0% AI
- 2024-032,051 · 0% AI
- 2024-04597 · 0% AI
- 2024-05441 · 0% AI
- 2024-062,645 · 0% AI
- 2024-07532 · 0% AI
Evidence by analyzer
Explicit AI attributionok
- attributed_commit_share
- 0.0%
- attributed_commits
- 0
- attributed_loc
- 0
- attributed_loc_share
- 0.0%
- commits
- 5,671
- effective_loc
- 138,901
- tools_detected
- 0
AI tool configurationok
- artifacts
- 0
- tools_configured
- 0
- workflow_agents
- 0
Commit velocityok3 items
- 13,583 lines of first-party code in ~4.1h (3,345 lines/hour, 2 commit session)
- 10,814 lines of first-party code in ~4.0h (2,704 lines/hour, 1 commit session)
- 2,219 lines of first-party code in ~3.0h (728 lines/hour, 1 commit session)
- excluded_import_loc
- 0
- flagged_loc
- 26,616
- flagged_loc_share
- 19.2%
- flagged_units
- 3
- max_loc_per_hour
- 3,345.34
- measured_loc
- 138,901
- median_loc_per_hour
- 47.89
- pr_timed_units
- 269
- pre_ai_era_burst_loc
- 0
- pre_ai_era_bursts
- 0
- pre_ai_era_measured_loc
- 0
- work_units
- 3,257
Release velocityok1 item
- flagged_releases
- 1
- max_loc_per_day
- 9,439.90
- releases
- 35
Coding styleok
- count:assistant_voice
- 0
- count:emoji_in_code
- 25
- count:narrated_steps
- 0
- count:placeholder
- 0
- files:assistant_voice
- 0
- files:emoji_in_code
- 7
- files:narrated_steps
- 0
- files:placeholder
- 0
- index
- 0.26
- lines_scanned
- 48,781
- per_kloc:assistant_voice
- 0
- per_kloc:emoji_in_code
- 0.51
- per_kloc:narrated_steps
- 0
- per_kloc:placeholder
- 0
Code quality
54 weak
Code quality is weak: test-to-source ratio 0.01, CI runs tests; 22% of function code in complex or long functions; 9% duplicated lines. Weakest area: lint.
How the score is built
- Complexity52
- Duplication58
- Lint and smells21
- Tests and CI65
- Documentation85
- Type safety40
- Review processnot measured
Evidence by analyzer
Complexity (lizard)ok10 items
- process_images_inner in modules/processing.py: complexity 75, 200 lines
- forward in modules/sd_samplers_cfg_denoiser.py: complexity 63, 114 lines
- run_modelmerger in modules/extras.py: complexity 62, 160 lines
- create_ui in modules/ui.py: complexity 62, 736 lines
- parse_generation_parameters in modules/infotext_utils.py: complexity 54, 100 lines
- train_embedding in modules/textual_inversion/textual_inversion.py: complexity 50, 209 lines
- train_hypernetwork in modules/hypernetworks/hypernetwork.py: complexity 48, 216 lines
- run in scripts/xyz_grid.py: complexity 45, 114 lines
- network_apply_weights in extensions-builtin/Lora/networks.py: complexity 42, 98 lines
- save_image in modules/images.py: complexity 42, 76 lines
- complex_functions
- 81
- function_nloc
- 30,541
- functions
- 2,629
- long_functions
- 13
- many_param_functions
- 94
- mean_ccn
- 3.58
- p90_ccn
- 8
- risky_nloc_share
- 22.1%
Duplication (jscpd)ok10 items
- 6+ duplicated lines: extensions-builtin/LDSR/sd_hijack_autoencoder.py:74 and extensions-builtin/LDSR/sd_hijack_ddpm_v1.py:175
- 6+ duplicated lines: extensions-builtin/LDSR/sd_hijack_ddpm_v1.py:28 and modules/models/diffusion/ddpm_edit.py:37
- 6+ duplicated lines: extensions-builtin/LDSR/sd_hijack_ddpm_v1.py:407 and extensions-builtin/LDSR/sd_hijack_ddpm_v1.py:1347
- 6+ duplicated lines: extensions-builtin/Lora/network_glora.py:24 and extensions-builtin/Lora/network_hada.py:29
- 6+ duplicated lines: extensions-builtin/Lora/ui_edit_user_metadata.py:195 and modules/ui_extra_networks_checkpoints_user_metadata.py:43
- 6+ duplicated lines: extensions-builtin/canvas-zoom-and-pan/javascript/zoom.js:588 and extensions-builtin/canvas-zoom-and-pan/javascript/zoom.js:668
- 6+ duplicated lines: extensions-builtin/hypertile/hypertile.py:35 and extensions-builtin/hypertile/hypertile.py:89
- 6+ duplicated lines: extensions-builtin/postprocessing-for-training/scripts/postprocessing_caption.py:13 and extensions-builtin/postprocessing-for-training/scripts/postprocessing_create_flipped_copies.py:16
- 6+ duplicated lines: extensions-builtin/soft-inpainting/scripts/soft_inpainting.py:181 and extensions-builtin/soft-inpainting/scripts/soft_inpainting.py:220
- 6+ duplicated lines: javascript/extraNetworks.js:589 and javascript/progressbar.js:15
- compared_lines
- 34,951
- duplicated_lines
- 3,154
- duplicated_share
- 9.0%
- files
- 238
Lintok
- category:best-practice
- 17
- category:correctness
- 20
- category:maintainability
- 232
- findings
- 269
- scanned_lines
- 48,781
- weighted_findings
- 307.25
Tests and CIok5 items
- CI config: .github/workflows/on_pull_request.yaml
.github/workflows/on_pull_request.yaml - CI config: .github/workflows/run_tests.yaml
.github/workflows/run_tests.yaml - CI config: .github/workflows/warns_merge_master.yml
.github/workflows/warns_merge_master.yml - CI runs tests (pytest)
- CI runs linters (ruff, eslint)
- check:ci_present
- yes
- check:ci_runs_lint
- yes
- check:ci_runs_tests
- yes
- check:has_tests
- yes
- check:test_ratio
- no
- check:tests_cochange
- no
- ci_files
- 3
- cochange_commits
- 277
- cochange_share
- 0.0%
- source_lines
- 48,781
- test_lines
- 310
- test_ratio
- 0.01
Documentationok3 items
- README.md
README.md - LICENSE.txt
LICENSE.txt - CHANGELOG.md
CHANGELOG.md
- check:changelog
- yes
- check:contributing
- no
- check:license
- yes
- check:readme
- yes
- readme_lines
- 187
Type safetyok
- check:low_escape_density
- yes
- check:strict_config
- no
- escapes
- 21
- escapes_per_kloc
- 0.48
Security
50 weak
Security posture is weak: 183 known vulnerabilities in 12 dependencies; 26 high-severity SAST findings; 9 high-severity workflow issues. Weakest area: posture.
How the score is built
- Secrets97
- Static analysis (SAST)81
- Vulnerable dependencies13
- CI workflows13
- Security posture0
- OpenSSF Scorecardnot measured
Evidence by analyzer
OpenSSF Scorecardskipped
no published OpenSSF Scorecard result for this repo
Package registriesok
- checked
- 44
- declared
- 44
- lookup_errors
- 0
- missing
- 0
- recent
- 0
Secrets (gitleaks)ok
- secrets_current
- 0
- secrets_history
- 0
- secrets_low_confidence
- 1
- secrets_nonprod
- 0
Static analysis (opengrep)ok
- findings
- 48
- findings_high
- 26
- findings_low
- 4
- findings_medium
- 18
- parse_errors
- 0
- scanned_lines
- 48,781
- weighted_findings
- 28.80
Dependencies (osv-scanner)ok
- penalty
- 121
- vulnerabilities
- 183
- vulnerable_packages
- 12
- vulns_critical
- 20
- vulns_high
- 108
- vulns_low
- 4
- vulns_medium
- 48
- vulns_unknown
- 3
CI workflows (zizmor)ok
- findings
- 17
- findings_high
- 9
- findings_low
- 0
- findings_medium
- 8
- penalty
- 123.60
- workflows
- 3
Security postureok1 item
- package.json has no lockfile alongside it (unpinned dependencies)
package.json
- check:dependency_updates
- no
- check:lockfiles
- no
- check:security_policy
- no
- check:signed_commits
- no
- signed_commit_share
- 16.0%
- unpinned_manifests
- 1
Release downloadsok1 item
- binary_assets
- 1
- signals
- 1
- suspicious
- 0
Findings
20 critical164 high256 medium9 low
| Severity | Rule | Location | Message | Tool |
|---|---|---|---|---|
| critical | osv/GHSA-279j-x4gx-hfrh |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2024-219, GHSA-279j-x4gx-hfrh; also in requirements_versions.txt | Dependencies (osv-scanner) |
| critical | osv/GHSA-3863-2447-669p |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2023-300, GHSA-3863-2447-669p; also in requirements_versions.txt | Dependencies (osv-scanner) |
| critical | osv/GHSA-576c-3j53-r9jj |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2024-215, GHSA-576c-3j53-r9jj; also in requirements_versions.txt | Dependencies (osv-scanner) |
| critical | osv/GHSA-fgcw-684q-jj6r |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-2290, GHSA-fgcw-684q-jj6r; also in requirements_versions.txt | Dependencies (osv-scanner) |
| critical | osv/GHSA-gqvf-3hgp-5hxv |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2023-255, GHSA-gqvf-3hgp-5hxv; also in requirements_versions.txt | Dependencies (osv-scanner) |
| critical | osv/GHSA-j2jg-fq62-7c3h |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2025-118, GHSA-j2jg-fq62-7c3h; also in requirements_versions.txt | Dependencies (osv-scanner) |
| critical | osv/GHSA-m842-4qm8-7gpq |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-345, GHSA-m842-4qm8-7gpq; also in requirements_versions.txt | Dependencies (osv-scanner) |
| critical | osv/PYSEC-2024-274 |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2024-274; also in requirements_versions.txt | Dependencies (osv-scanner) |
| critical | osv/PYSEC-2024-321 |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2024-321; also in requirements_versions.txt | Dependencies (osv-scanner) |
| critical | osv/GHSA-284h-m62q-gf8w |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3786, GHSA-284h-m62q-gf8w | Dependencies (osv-scanner) |
| critical | osv/GHSA-332p-7hrc-92wf |
requirements_versions.txt | [email protected] (PyPI) is affected by GHSA-332p-7hrc-92wf | Dependencies (osv-scanner) |
| critical | osv/GHSA-3f63-hfp8-52jq |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-457, GHSA-3f63-hfp8-52jq | Dependencies (osv-scanner) |
| critical | osv/GHSA-4cv3-v7pv-rfhf |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-507, GHSA-4cv3-v7pv-rfhf | Dependencies (osv-scanner) |
| critical | osv/GHSA-5x8w-8jj5-q52h |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-4330, GHSA-5x8w-8jj5-q52h | Dependencies (osv-scanner) |
| critical | osv/GHSA-8g5g-8vmr-9782 |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-4332, GHSA-8g5g-8vmr-9782 | Dependencies (osv-scanner) |
| critical | osv/GHSA-w889-685w-c8fh |
requirements_versions.txt | [email protected] (PyPI) is affected by GHSA-w889-685w-c8fh | Dependencies (osv-scanner) |
| critical | osv/GHSA-x2qx-6953-8485 |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-2161, GHSA-x2qx-6953-8485 | Dependencies (osv-scanner) |
| critical | osv/GHSA-xvh5-g6gv-559v |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-4363, GHSA-xvh5-g6gv-559v | Dependencies (osv-scanner) |
| critical | osv/PYSEC-2026-3974 |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3974 | Dependencies (osv-scanner) |
| critical | osv/PYSEC-2026-3975 |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3975 | Dependencies (osv-scanner) |
| high | opengrep/python.lang.maintainability.useless-inner-function |
extensions-builtin/Lora/scripts/lora_script.py:63 | function `get_loras` is defined inside a function but never used | Lint |
| high | opengrep/python.lang.maintainability.useless-inner-function |
extensions-builtin/Lora/scripts/lora_script.py:67 | function `refresh_loras` is defined inside a function but never used | Lint |
| high | opengrep/python.lang.maintainability.useless-inner-function |
modules/api/api.py:147 | function `log_and_time` is defined inside a function but never used | Lint |
| high | opengrep/python.lang.maintainability.useless-inner-function |
modules/api/api.py:183 | function `exception_handling` is defined inside a function but never used | Lint |
| high | opengrep/python.lang.maintainability.useless-inner-function |
modules/api/api.py:190 | function `fastapi_exception_handler` is defined inside a function but never used | Lint |
| high | opengrep/python.lang.maintainability.useless-inner-function |
modules/api/api.py:194 | function `http_exception_handler` is defined inside a function but never used | Lint |
| high | opengrep/python.lang.correctness.return-in-init |
modules/models/diffusion/uni_pc/sampler.py:13 | `return` should never appear inside a class __init__ function. This will cause a runtime error. | Lint |
| high | opengrep/python.lang.correctness.return-in-init |
modules/options.py:63 | `return` should never appear inside a class __init__ function. This will cause a runtime error. | Lint |
| high | opengrep/python.lang.best-practice.arbitrary-sleep |
modules/progress.py:146 | time.sleep() call; did you mean to leave this in? | Lint |
| high | opengrep/python.lang.correctness.return-in-init |
modules/textual_inversion/dataset.py:148 | `return` should never appear inside a class __init__ function. This will cause a runtime error. | Lint |
| high | opengrep/python.lang.correctness.return-in-init |
modules/ui_checkpoint_merger.py:38 | `return` should never appear inside a class __init__ function. This will cause a runtime error. | Lint |
| high | opengrep/python.lang.correctness.return-in-init |
modules/ui_checkpoint_merger.py:41 | `return` should never appear inside a class __init__ function. This will cause a runtime error. | Lint |
| high | opengrep/python.lang.correctness.return-in-init |
modules/ui_checkpoint_merger.py:44 | `return` should never appear inside a class __init__ function. This will cause a runtime error. | Lint |
| high | opengrep/python.lang.correctness.return-in-init |
modules/ui_checkpoint_merger.py:62 | `return` should never appear inside a class __init__ function. This will cause a runtime error. | Lint |
| high | opengrep/python.lang.correctness.return-in-init |
modules/ui_prompt_styles.py:109 | `return` should never appear inside a class __init__ function. This will cause a runtime error. | Lint |
| high | opengrep/python.lang.correctness.return-in-init |
modules/ui_prompt_styles.py:69 | `return` should never appear inside a class __init__ function. This will cause a runtime error. | Lint |
| high | opengrep/python.lang.best-practice.open-never-closed |
modules/ui_tempdir.py:54 | file object opened without corresponding close | Lint |
| high | opengrep/python.lang.correctness.tempfile.tempfile-without-flush |
modules/ui_tempdir.py:56 | Using 'file_obj.name' without '.flush()' or '.close()' may cause an error because the file may not exist when 'file_obj.name' is used. Use '.flush()' or close the file before using 'file_obj.name'. | Lint |
| high | opengrep/python.lang.correctness.return-in-init |
modules/xlmr.py:64 | `return` should never appear inside a class __init__ function. This will cause a runtime error. | Lint |
| high | opengrep/python.lang.correctness.common-mistakes.identical-is-comparison |
scripts/xyz_grid.py:308 | Found identical comparison using is. Ensure this is what you intended. | Lint |
| high | opengrep/python.lang.best-practice.arbitrary-sleep |
webui.py:147 | time.sleep() call; did you mean to leave this in? | Lint |
| high | zizmor/unpinned-uses |
.github/workflows/on_pull_request.yaml:14 | unpinned action reference [confidence high] | CI workflows (zizmor) |
| high | zizmor/unpinned-uses |
.github/workflows/on_pull_request.yaml:15 | unpinned action reference [confidence high] | CI workflows (zizmor) |
| high | zizmor/unpinned-uses |
.github/workflows/on_pull_request.yaml:32 | unpinned action reference [confidence high] | CI workflows (zizmor) |
| high | zizmor/unpinned-uses |
.github/workflows/on_pull_request.yaml:34 | unpinned action reference [confidence high] | CI workflows (zizmor) |
| high | zizmor/unpinned-uses |
.github/workflows/run_tests.yaml:14 | unpinned action reference [confidence high] | CI workflows (zizmor) |
| high | zizmor/unpinned-uses |
.github/workflows/run_tests.yaml:16 | unpinned action reference [confidence high] | CI workflows (zizmor) |
| high | zizmor/unpinned-uses |
.github/workflows/run_tests.yaml:25 | unpinned action reference [confidence high] | CI workflows (zizmor) |
| high | zizmor/unpinned-uses |
.github/workflows/run_tests.yaml:71 | unpinned action reference [confidence high] | CI workflows (zizmor) |
| high | zizmor/unpinned-uses |
.github/workflows/run_tests.yaml:77 | unpinned action reference [confidence high] | CI workflows (zizmor) |
| high | opengrep/javascript.browser.security.insecure-document-method |
extensions-builtin/canvas-zoom-and-pan/javascript/zoom.js:352 | User controlled data in methods like `innerHTML`, `outerHTML` or `document.write` is an anti-pattern that can lead to XSS vulnerabilities [confidence low] | Static analysis (opengrep) |
| high | opengrep/javascript.browser.security.insecure-innerhtml |
extensions-builtin/canvas-zoom-and-pan/javascript/zoom.js:352 | User controlled data in a `p.innerHTML` is an anti-pattern that can lead to XSS vulnerabilities [confidence low] | Static analysis (opengrep) |
| high | opengrep/javascript.browser.security.insecure-document-method |
javascript/contextMenus.js:32 | User controlled data in methods like `innerHTML`, `outerHTML` or `document.write` is an anti-pattern that can lead to XSS vulnerabilities [confidence low] | Static analysis (opengrep) |
| high | opengrep/javascript.browser.security.insecure-innerhtml |
javascript/contextMenus.js:32 | User controlled data in a `contextMenuEntry.innerHTML` is an anti-pattern that can lead to XSS vulnerabilities [confidence low] | Static analysis (opengrep) |
| high | opengrep/javascript.browser.security.insecure-document-method |
javascript/extraNetworks.js:662 | User controlled data in methods like `innerHTML`, `outerHTML` or `document.write` is an anti-pattern that can lead to XSS vulnerabilities [confidence low] | Static analysis (opengrep) |
| high | opengrep/javascript.browser.security.insecure-innerhtml |
javascript/extraNetworks.js:662 | User controlled data in a `newDiv.innerHTML` is an anti-pattern that can lead to XSS vulnerabilities [confidence low] | Static analysis (opengrep) |
| high | opengrep/javascript.browser.security.insecure-document-method |
javascript/textualInversion.js:9 | User controlled data in methods like `innerHTML`, `outerHTML` or `document.write` is an anti-pattern that can lead to XSS vulnerabilities [confidence low] | Static analysis (opengrep) |
| high | opengrep/javascript.browser.security.insecure-innerhtml |
javascript/textualInversion.js:9 | User controlled data in a `gradioApp().getElementById('ti_progress').innerHTML` is an anti-pattern that can lead to XSS vulnerabilities [confidence low] | Static analysis (opengrep) |
| high | opengrep/javascript.browser.security.insecure-document-method |
javascript/ui_settings_hints.js:27 | User controlled data in methods like `innerHTML`, `outerHTML` or `document.write` is an anti-pattern that can lead to XSS vulnerabilities [confidence low] | Static analysis (opengrep) |
| high | opengrep/javascript.browser.security.insecure-innerhtml |
javascript/ui_settings_hints.js:27 | User controlled data in a `comment.innerHTML` is an anti-pattern that can lead to XSS vulnerabilities [confidence low] | Static analysis (opengrep) |
| high | opengrep/javascript.browser.security.insecure-document-method |
javascript/ui_settings_hints.js:35 | User controlled data in methods like `innerHTML`, `outerHTML` or `document.write` is an anti-pattern that can lead to XSS vulnerabilities [confidence low] | Static analysis (opengrep) |
| high | opengrep/javascript.browser.security.insecure-innerhtml |
javascript/ui_settings_hints.js:35 | User controlled data in a `comment.innerHTML` is an anti-pattern that can lead to XSS vulnerabilities [confidence low] | Static analysis (opengrep) |
| high | opengrep/python.lang.security.audit.dangerous-subprocess-use-audit |
modules/gitpython_hack.py:18 | Detected subprocess function 'check_output' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an... | Static analysis (opengrep) |
| high | opengrep/python.lang.security.audit.dangerous-subprocess-use-audit |
modules/gitpython_hack.py:30 | Detected subprocess function 'check_output' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an... | Static analysis (opengrep) |
| high | opengrep/python.lang.security.audit.dangerous-subprocess-use-audit |
modules/launch_utils.py:104 | Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external... | Static analysis (opengrep) |
| high | opengrep/python.lang.security.audit.dangerous-subprocess-use-tainted-env-args |
modules/launch_utils.py:104 | Detected subprocess function 'run' with user controlled data. A malicious actor could leverage this to perform command injection. You may consider using 'shlex.quote()'. [confidence medium] | Static analysis (opengrep) |
| high | opengrep/python.lang.security.audit.dangerous-subprocess-use-audit |
modules/launch_utils.py:148 | Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external... | Static analysis (opengrep) |
| high | opengrep/python.lang.security.audit.dangerous-subprocess-use-audit |
modules/launch_utils.py:205 | Detected subprocess function 'check_output' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an... | Static analysis (opengrep) |
| high | opengrep/python.lang.security.audit.dangerous-subprocess-use-tainted-env-args |
modules/launch_utils.py:205 | Detected subprocess function 'check_output' with user controlled data. A malicious actor could leverage this to perform command injection. You may consider using 'shlex.quote()'. [confidence medium] | Static analysis (opengrep) |
| high | opengrep/python.lang.security.audit.dangerous-subprocess-use-audit |
modules/launch_utils.py:68 | Detected subprocess function 'check_output' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an... | Static analysis (opengrep) |
| high | opengrep/python.lang.security.audit.dangerous-subprocess-use-tainted-env-args |
modules/launch_utils.py:68 | Detected subprocess function 'check_output' with user controlled data. A malicious actor could leverage this to perform command injection. You may consider using 'shlex.quote()'. [confidence medium] | Static analysis (opengrep) |
| high | opengrep/python.lang.security.audit.dangerous-subprocess-use-audit |
modules/launch_utils.py:76 | Detected subprocess function 'check_output' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an... | Static analysis (opengrep) |
| high | opengrep/python.lang.security.audit.dangerous-subprocess-use-tainted-env-args |
modules/launch_utils.py:76 | Detected subprocess function 'check_output' with user controlled data. A malicious actor could leverage this to perform command injection. You may consider using 'shlex.quote()'. [confidence medium] | Static analysis (opengrep) |
| high | opengrep/python.lang.security.audit.dangerous-subprocess-use-audit |
modules/sysinfo.py:166 | Detected subprocess function 'check_output' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an... | Static analysis (opengrep) |
| high | opengrep/python.lang.security.audit.dangerous-subprocess-use-audit |
modules/sysinfo.py:92 | Detected subprocess function 'check_output' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an... | Static analysis (opengrep) |
| high | opengrep/python.lang.security.audit.dangerous-spawn-process-audit |
modules/util.py:207 | Found dynamic content when spawning a process. This is dangerous if external data can reach this function call because it allows a malicious actor to execute commands. Ensure no external data reaches here. [confidence low] | Static analysis (opengrep) |
| high | osv/GHSA-29pf-2h5f-8g72 |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-2289, GHSA-29pf-2h5f-8g72; also in requirements_versions.txt | Dependencies (osv-scanner) |
| high | osv/GHSA-39mp-8hj3-5c49 |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-64, GHSA-39mp-8hj3-5c49; also in requirements_versions.txt | Dependencies (osv-scanner) |
| high | osv/GHSA-3c67-5hwx-f6wx |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2024-196, GHSA-3c67-5hwx-f6wx; also in requirements_versions.txt | Dependencies (osv-scanner) |
| high | osv/GHSA-4q3c-cj7g-jcwf |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2024-217, GHSA-4q3c-cj7g-jcwf; also in requirements_versions.txt | Dependencies (osv-scanner) |
| high | osv/GHSA-5cpq-9538-jm2j |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-1410, GHSA-5cpq-9538-jm2j; also in requirements_versions.txt | Dependencies (osv-scanner) |
| high | osv/GHSA-69w3-r845-3855 |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-2288, GHSA-69w3-r845-3855; also in requirements_versions.txt | Dependencies (osv-scanner) |
| high | osv/GHSA-6qm2-wpxq-7qh2 |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2023-249, GHSA-6qm2-wpxq-7qh2; also in requirements_versions.txt | Dependencies (osv-scanner) |
| high | osv/GHSA-6v6g-j5fq-hpvw |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2024-184, GHSA-6v6g-j5fq-hpvw; also in requirements_versions.txt | Dependencies (osv-scanner) |
| high | osv/GHSA-7gcm-g887-7qv7 |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-1805, GHSA-7gcm-g887-7qv7; also in requirements_versions.txt | Dependencies (osv-scanner) |
| high | osv/GHSA-7hp7-4p35-3cx2 |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-2178, GHSA-7hp7-4p35-3cx2; also in requirements_versions.txt | Dependencies (osv-scanner) |
| high | osv/GHSA-8c87-gvhj-xm8m |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2024-216, GHSA-8c87-gvhj-xm8m; also in requirements_versions.txt | Dependencies (osv-scanner) |
| high | osv/GHSA-8gq9-2x98-w8hf |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-899, GHSA-8gq9-2x98-w8hf; also in requirements_versions.txt | Dependencies (osv-scanner) |
| high | osv/GHSA-8qvm-5x2c-j2w7 |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-1806, GHSA-8qvm-5x2c-j2w7; also in requirements_versions.txt | Dependencies (osv-scanner) |
| high | osv/GHSA-973g-55hp-3frw |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-1413, GHSA-973g-55hp-3frw; also in requirements_versions.txt | Dependencies (osv-scanner) |
| high | osv/GHSA-f3h9-8phc-6gvh |
requirements.txt | [email protected] (PyPI) is affected by GHSA-f3h9-8phc-6gvh; also in requirements_versions.txt | Dependencies (osv-scanner) |
| high | osv/GHSA-g9cj-cfpp-4g2x |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-1415, GHSA-g9cj-cfpp-4g2x; also in requirements_versions.txt | Dependencies (osv-scanner) |
| high | osv/GHSA-hxxf-235m-72v3 |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2024-229, GHSA-hxxf-235m-72v3; also in requirements_versions.txt | Dependencies (osv-scanner) |
| high | osv/GHSA-j36p-7w88-g82j |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-2179, GHSA-j36p-7w88-g82j; also in requirements_versions.txt | Dependencies (osv-scanner) |
| high | osv/GHSA-jmh7-g254-2cq9 |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-66, GHSA-jmh7-g254-2cq9; also in requirements_versions.txt | Dependencies (osv-scanner) |
| high | osv/GHSA-qq3j-4f4f-9583 |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2025-40, GHSA-qq3j-4f4f-9583; also in requirements_versions.txt | Dependencies (osv-scanner) |
| high | osv/GHSA-qxrp-vhvm-j765 |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2024-227, GHSA-qxrp-vhvm-j765; also in requirements_versions.txt | Dependencies (osv-scanner) |
| high | osv/GHSA-r364-m2j9-mf4h |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-1420, GHSA-r364-m2j9-mf4h; also in requirements_versions.txt | Dependencies (osv-scanner) |
| high | osv/GHSA-rvfh-h6c7-fc3c |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2024-255, GHSA-rvfh-h6c7-fc3c; also in requirements_versions.txt | Dependencies (osv-scanner) |
| high | osv/GHSA-v68g-wm8c-6x7j |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2023-301, GHSA-v68g-wm8c-6x7j; also in requirements_versions.txt | Dependencies (osv-scanner) |
| high | osv/GHSA-wrfc-pvp9-mr9g |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2024-228, GHSA-wrfc-pvp9-mr9g; also in requirements_versions.txt | Dependencies (osv-scanner) |
| high | osv/GHSA-xh2x-3mrm-fwqm |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2024-218, GHSA-xh2x-3mrm-fwqm; also in requirements_versions.txt | Dependencies (osv-scanner) |
| high | osv/GHSA-xrqw-3rrv-vx5w |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-3929, GHSA-xrqw-3rrv-vx5w; also in requirements_versions.txt | Dependencies (osv-scanner) |
| high | osv/PYSEC-2024-38 |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2024-38 | Dependencies (osv-scanner) |
| high | osv/PYSEC-2025-211 |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2025-211; also in requirements_versions.txt | Dependencies (osv-scanner) |
| high | osv/PYSEC-2025-212 |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2025-212; also in requirements_versions.txt | Dependencies (osv-scanner) |
| high | osv/PYSEC-2025-213 |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2025-213; also in requirements_versions.txt | Dependencies (osv-scanner) |
| high | osv/PYSEC-2025-214 |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2025-214; also in requirements_versions.txt | Dependencies (osv-scanner) |
| high | osv/PYSEC-2025-215 |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2025-215; also in requirements_versions.txt | Dependencies (osv-scanner) |
| high | osv/PYSEC-2025-216 |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2025-216; also in requirements_versions.txt | Dependencies (osv-scanner) |
| high | osv/PYSEC-2025-217 |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2025-217; also in requirements_versions.txt | Dependencies (osv-scanner) |
| high | osv/PYSEC-2025-218 |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2025-218; also in requirements_versions.txt | Dependencies (osv-scanner) |
| high | osv/GHSA-22hg-r758-rrw9 |
requirements_versions.txt | [email protected] (PyPI) is affected by GHSA-22hg-r758-rrw9 | Dependencies (osv-scanner) |
| high | osv/GHSA-239g-whfq-7xj9 |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3982, GHSA-239g-whfq-7xj9 | Dependencies (osv-scanner) |
| high | osv/GHSA-23mf-xhv8-69c2 |
requirements_versions.txt | [email protected] (PyPI) is affected by GHSA-23mf-xhv8-69c2 | Dependencies (osv-scanner) |
| high | osv/GHSA-27h8-gf7j-v5hc |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-4326, GHSA-27h8-gf7j-v5hc | Dependencies (osv-scanner) |
| high | osv/GHSA-2f96-g7mh-g2hx |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3836, GHSA-2f96-g7mh-g2hx | Dependencies (osv-scanner) |
| high | osv/GHSA-2mqj-m65w-jghx |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2024-4, GHSA-2mqj-m65w-jghx | Dependencies (osv-scanner) |
| high | osv/GHSA-3f7w-8rr8-f37f |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3949, GHSA-3f7w-8rr8-f37f | Dependencies (osv-scanner) |
| high | osv/GHSA-3j72-p6qg-6xp7 |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-4341, GHSA-3j72-p6qg-6xp7 | Dependencies (osv-scanner) |
| high | osv/GHSA-3rp5-jjmw-4wv2 |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3981, GHSA-3rp5-jjmw-4wv2 | Dependencies (osv-scanner) |
| high | osv/GHSA-44wm-f244-xhp3 |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-1793, GHSA-44wm-f244-xhp3 | Dependencies (osv-scanner) |
| high | osv/GHSA-4558-3h8r-v8xp |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-4327, GHSA-4558-3h8r-v8xp | Dependencies (osv-scanner) |
| high | osv/GHSA-45hq-cxwh-f6vc |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-2255, GHSA-45hq-cxwh-f6vc | Dependencies (osv-scanner) |
| high | osv/GHSA-4gmw-gg2m-w46p |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3838, GHSA-4gmw-gg2m-w46p | Dependencies (osv-scanner) |
| high | osv/GHSA-4j2p-28q2-5m79 |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3804, GHSA-4j2p-28q2-5m79 | Dependencies (osv-scanner) |
| high | osv/GHSA-539m-9xh6-q6rr |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3948, GHSA-539m-9xh6-q6rr | Dependencies (osv-scanner) |
| high | osv/GHSA-58r4-6rv3-gfh8 |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-4329, GHSA-58r4-6rv3-gfh8 | Dependencies (osv-scanner) |
| high | osv/GHSA-5rjg-fvgr-3xxf |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2025-49, GHSA-5rjg-fvgr-3xxf | Dependencies (osv-scanner) |
| high | osv/GHSA-5x94-69rx-g8h2 |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-2254, GHSA-5x94-69rx-g8h2 | Dependencies (osv-scanner) |
| high | osv/GHSA-5xm2-6676-qcp9 |
requirements_versions.txt | [email protected] (PyPI) is affected by GHSA-5xm2-6676-qcp9 | Dependencies (osv-scanner) |
| high | osv/GHSA-5xxx-qhh7-9287 |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3788, GHSA-5xxx-qhh7-9287 | Dependencies (osv-scanner) |
| high | osv/GHSA-62p4-gmf7-7g93 |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3493, GHSA-62p4-gmf7-7g93 | Dependencies (osv-scanner) |
| high | osv/GHSA-65qm-jvmh-6pqg |
requirements_versions.txt | [email protected] (PyPI) is affected by GHSA-65qm-jvmh-6pqg | Dependencies (osv-scanner) |
| high | osv/GHSA-6p8h-3wgx-97gf |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3952, GHSA-6p8h-3wgx-97gf | Dependencies (osv-scanner) |
| high | osv/GHSA-6r8x-57c9-28j4 |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3451, GHSA-6r8x-57c9-28j4 | Dependencies (osv-scanner) |
| high | osv/GHSA-7545-fcxq-7j24 |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-2162, GHSA-7545-fcxq-7j24 | Dependencies (osv-scanner) |
| high | osv/GHSA-75m9-98v2-hjpm |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3043, GHSA-75m9-98v2-hjpm | Dependencies (osv-scanner) |
| high | osv/GHSA-7833-fr7j-v32q |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3785, GHSA-7833-fr7j-v32q | Dependencies (osv-scanner) |
| high | osv/GHSA-7mwm-ghpf-9vrm |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-4331, GHSA-7mwm-ghpf-9vrm | Dependencies (osv-scanner) |
| high | osv/GHSA-83vg-56qc-22m7 |
requirements_versions.txt | [email protected] (PyPI) is affected by GHSA-83vg-56qc-22m7 | Dependencies (osv-scanner) |
| high | osv/GHSA-8ghj-p4vj-mr35 |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2023-227, GHSA-8ghj-p4vj-mr35 | Dependencies (osv-scanner) |
| high | osv/GHSA-8mcc-hrx5-hvxc |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3787, GHSA-8mcc-hrx5-hvxc | Dependencies (osv-scanner) |
| high | osv/GHSA-8v84-f9pq-wr9x |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-2253, GHSA-8v84-f9pq-wr9x | Dependencies (osv-scanner) |
| high | osv/GHSA-94p4-4cq8-9g67 |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3951, GHSA-94p4-4cq8-9g67 | Dependencies (osv-scanner) |
| high | osv/GHSA-956x-8gvw-wg5v |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3839, GHSA-956x-8gvw-wg5v | Dependencies (osv-scanner) |
| high | osv/GHSA-98fp-7v67-4v3q |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-1857, GHSA-98fp-7v67-4v3q | Dependencies (osv-scanner) |
| high | osv/GHSA-9hw9-ch79-4vh6 |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3453, GHSA-9hw9-ch79-4vh6 | Dependencies (osv-scanner) |
| high | osv/GHSA-9rj7-rf2p-w77r |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3840, GHSA-9rj7-rf2p-w77r | Dependencies (osv-scanner) |
| high | osv/GHSA-9v9v-9qvf-h2hj |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-4343, GHSA-9v9v-9qvf-h2hj | Dependencies (osv-scanner) |
| high | osv/GHSA-c6hw-5grf-ff96 |
requirements_versions.txt | [email protected] (PyPI) is affected by GHSA-c6hw-5grf-ff96 | Dependencies (osv-scanner) |
| high | osv/GHSA-cx63-2mw6-8hw5 |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-1918, GHSA-cx63-2mw6-8hw5 | Dependencies (osv-scanner) |
| high | osv/GHSA-f2g6-542v-9j58 |
requirements_versions.txt | [email protected] (PyPI) is affected by GHSA-f2g6-542v-9j58 | Dependencies (osv-scanner) |
| high | osv/GHSA-f9j4-qggq-h239 |
requirements_versions.txt | [email protected] (PyPI) is affected by GHSA-f9j4-qggq-h239 | Dependencies (osv-scanner) |
| high | osv/GHSA-fjr4-x663-mwxc |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3995, GHSA-fjr4-x663-mwxc | Dependencies (osv-scanner) |
| high | osv/GHSA-g5vv-9gxw-82hx |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3984, GHSA-g5vv-9gxw-82hx | Dependencies (osv-scanner) |
| high | osv/GHSA-g7cr-3p24-7wf7 |
requirements_versions.txt | [email protected] (PyPI) is affected by GHSA-g7cr-3p24-7wf7 | Dependencies (osv-scanner) |
| high | osv/GHSA-g842-9rc4-69pw |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-4338, GHSA-g842-9rc4-69pw | Dependencies (osv-scanner) |
| high | osv/GHSA-gg2r-wvfm-q9rx |
requirements_versions.txt | [email protected] (PyPI) is affected by GHSA-gg2r-wvfm-q9rx | Dependencies (osv-scanner) |
| high | osv/GHSA-hmq2-w58f-27jc |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3784, GHSA-hmq2-w58f-27jc | Dependencies (osv-scanner) |
| high | osv/GHSA-j7hp-h8jx-5ppr |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-1794, GHSA-j7hp-h8jx-5ppr | Dependencies (osv-scanner) |
| high | osv/GHSA-jg86-v3jv-hrpm |
requirements_versions.txt | [email protected] (PyPI) is affected by GHSA-jg86-v3jv-hrpm | Dependencies (osv-scanner) |
| high | osv/GHSA-jjj6-mw9f-p565 |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3495, GHSA-jjj6-mw9f-p565 | Dependencies (osv-scanner) |
| high | osv/GHSA-jm78-9fvv-mhgr |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3783, GHSA-jm78-9fvv-mhgr | Dependencies (osv-scanner) |
| high | osv/GHSA-m64x-33q8-m5h7 |
requirements_versions.txt | [email protected] (PyPI) is affected by GHSA-m64x-33q8-m5h7 | Dependencies (osv-scanner) |
| high | osv/GHSA-mrfp-p49p-3hf2 |
requirements_versions.txt | [email protected] (PyPI) is affected by GHSA-mrfp-p49p-3hf2 | Dependencies (osv-scanner) |
| high | osv/GHSA-mv93-w799-cj2w |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3980, GHSA-mv93-w799-cj2w | Dependencies (osv-scanner) |
| high | osv/GHSA-p4wg-p73j-c528 |
requirements_versions.txt | [email protected] (PyPI) is affected by GHSA-p4wg-p73j-c528 | Dependencies (osv-scanner) |
| high | osv/GHSA-pchr-8j38-3x4p |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-4334, GHSA-pchr-8j38-3x4p | Dependencies (osv-scanner) |
| high | osv/GHSA-phj9-mv4w-65pm |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-2256, GHSA-phj9-mv4w-65pm | Dependencies (osv-scanner) |
| high | osv/GHSA-q45j-58j2-45rg |
requirements_versions.txt | [email protected] (PyPI) is affected by GHSA-q45j-58j2-45rg | Dependencies (osv-scanner) |
| high | osv/GHSA-r9mr-m37c-5fr3 |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3953, GHSA-r9mr-m37c-5fr3 | Dependencies (osv-scanner) |
| high | osv/GHSA-rpm5-65cw-6hj4 |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-2160, GHSA-rpm5-65cw-6hj4 | Dependencies (osv-scanner) |
| high | osv/GHSA-rwj8-pgh3-r573 |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3842, GHSA-rwj8-pgh3-r573 | Dependencies (osv-scanner) |
| high | osv/GHSA-v87r-6q3f-2j67 |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-2163, GHSA-v87r-6q3f-2j67 | Dependencies (osv-scanner) |
| high | osv/GHSA-vjc4-5qp5-m44j |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3496, GHSA-vjc4-5qp5-m44j | Dependencies (osv-scanner) |
| high | osv/GHSA-w8jc-g24h-crhw |
requirements_versions.txt | [email protected] (PyPI) is affected by GHSA-w8jc-g24h-crhw | Dependencies (osv-scanner) |
| high | osv/GHSA-wfm5-v35h-vwf4 |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2023-161, GHSA-wfm5-v35h-vwf4 | Dependencies (osv-scanner) |
| high | osv/GHSA-wvpp-8hx9-p66j |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3843, GHSA-wvpp-8hx9-p66j | Dependencies (osv-scanner) |
| high | osv/GHSA-xcvg-w56q-r89m |
requirements_versions.txt | [email protected] (PyPI) is affected by GHSA-xcvg-w56q-r89m | Dependencies (osv-scanner) |
| high | osv/GHSA-xgh8-jp6q-p5x8 |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-4335, GHSA-xgh8-jp6q-p5x8 | Dependencies (osv-scanner) |
| high | osv/GHSA-xj96-63gp-2gmr |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3454, GHSA-xj96-63gp-2gmr | Dependencies (osv-scanner) |
| high | osv/PYSEC-2024-38 |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2024-38 | Dependencies (osv-scanner) |
| high | osv/PYSEC-2026-3967 |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3967 | Dependencies (osv-scanner) |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
extensions-builtin/Lora/network.py:29 | Is "is_safetensors" a function or an attribute? If it is a function, you may have meant self.is_safetensors() because self.is_safetensors is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
extensions-builtin/Lora/network.py:36 | Is "is_safetensors" a function or an attribute? If it is a function, you may have meant self.is_safetensors() because self.is_safetensors is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
extensions-builtin/Lora/network.py:55 | Is "is_safetensors" a function or an attribute? If it is a function, you may have meant self.is_safetensors() because self.is_safetensors is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
extensions-builtin/Lora/network.py:81 | Is "is_safetensors" a function or an attribute? If it is a function, you may have meant self.is_safetensors() because self.is_safetensors is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
extensions-builtin/Lora/network_oft.py:24 | Is "is_R" a function or an attribute? If it is a function, you may have meant self.is_R() because self.is_R is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
extensions-builtin/Lora/network_oft.py:25 | Is "is_boft" a function or an attribute? If it is a function, you may have meant self.is_boft() because self.is_boft is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
extensions-builtin/Lora/network_oft.py:34 | Is "is_R" a function or an attribute? If it is a function, you may have meant self.is_R() because self.is_R is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
extensions-builtin/Lora/network_oft.py:52 | Is "is_boft" a function or an attribute? If it is a function, you may have meant self.is_boft() because self.is_boft is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
extensions-builtin/Lora/network_oft.py:60 | Is "is_R" a function or an attribute? If it is a function, you may have meant self.is_R() because self.is_R is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
extensions-builtin/Lora/network_oft.py:64 | Is "is_boft" a function or an attribute? If it is a function, you may have meant self.is_boft() because self.is_boft is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
extensions-builtin/Lora/network_oft.py:74 | Is "is_R" a function or an attribute? If it is a function, you may have meant self.is_R() because self.is_R is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
extensions-builtin/Lora/network_oft.py:84 | Is "is_boft" a function or an attribute? If it is a function, you may have meant self.is_boft() because self.is_boft is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
extensions-builtin/Lora/networks.py:125 | Is "is_sdxl" a function or an attribute? If it is a function, you may have meant shared.sd_model.is_sdxl() because shared.sd_model.is_sdxl is always true. | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
extensions-builtin/Lora/scripts/lora_script.py:36 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
extensions-builtin/Lora/ui_extra_networks_lora.py:66 | Is "is_sdxl" a function or an attribute? If it is a function, you may have meant shared.sd_model.is_sdxl() because shared.sd_model.is_sdxl is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
extensions-builtin/Lora/ui_extra_networks_lora.py:66 | Is "is_sd2" a function or an attribute? If it is a function, you may have meant shared.sd_model.is_sd2() because shared.sd_model.is_sd2 is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
extensions-builtin/Lora/ui_extra_networks_lora.py:69 | Is "is_sdxl" a function or an attribute? If it is a function, you may have meant shared.sd_model.is_sdxl() because shared.sd_model.is_sdxl is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
extensions-builtin/Lora/ui_extra_networks_lora.py:71 | Is "is_sd2" a function or an attribute? If it is a function, you may have meant shared.sd_model.is_sd2() because shared.sd_model.is_sd2 is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
extensions-builtin/Lora/ui_extra_networks_lora.py:73 | Is "is_sd1" a function or an attribute? If it is a function, you may have meant shared.sd_model.is_sd1() because shared.sd_model.is_sd1 is always true. | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
extensions-builtin/extra-options-section/scripts/extra_options_section.py:76 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
extensions-builtin/extra-options-section/scripts/extra_options_section.py:77 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
extensions-builtin/hypertile/scripts/hypertile_script.py:76 | Is "is_sdxl" a function or an attribute? If it is a function, you may have meant shared.sd_model.is_sdxl() because shared.sd_model.is_sdxl is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
extensions-builtin/soft-inpainting/scripts/soft_inpainting.py:684 | Is "is_final_blend" a function or an attribute? If it is a function, you may have meant mba.is_final_blend() because mba.is_final_blend is always true. | Lint |
| medium | opengrep/javascript.lang.best-practice.javascript-confirm |
javascript/extensions.js:69 | found confirm() call; should this be in production code? | Lint |
| medium | opengrep/javascript.lang.correctness.no-replaceall |
javascript/extraNetworks.js:542 | The string method replaceAll is not supported in all versions of javascript, and is not supported by older browser versions. Consider using replace() with a regex as the first argument instead like mystring.replace(/bad/g, "good")... | Lint |
| medium | opengrep/javascript.lang.best-practice.javascript-prompt |
javascript/ui.js:285 | found prompt() call; should this be in production code? | Lint |
| medium | opengrep/javascript.lang.best-practice.javascript-confirm |
javascript/ui.js:290 | found confirm() call; should this be in production code? | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
launch.py:13 | Is "is_installed" a function or an attribute? If it is a function, you may have meant launch_utils.is_installed() because launch_utils.is_installed is always true. | Lint |
| medium | opengrep/python.lang.correctness.use-sys-exit |
launch.py:33 | Detected use of `exit`. Use `sys.exit` over the python shell `exit` built-in. `exit` is a helper for the interactive shell and may not be available on all Python implementations. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/api/api.py:328 | Is "is_img2img" a function or an attribute? If it is a function, you may have meant script.is_img2img() because script.is_img2img is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/api/api.py:330 | Is "is_img2img" a function or an attribute? If it is a function, you may have meant script.is_img2img() because script.is_img2img is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/api/api.py:469 | Is "is_api" a function or an attribute? If it is a function, you may have meant p.is_api() because p.is_api is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/api/api.py:540 | Is "is_api" a function or an attribute? If it is a function, you may have meant p.is_api() because p.is_api is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/api/api.py:69 | Is "is_global" a function or an attribute? If it is a function, you may have meant ip_addr.is_global() because ip_addr.is_global is always true. | Lint |
| medium | opengrep/python.requests.best-practice.use-raise-for-status |
modules/api/api.py:86 | There's an HTTP request made with requests, but the raise_for_status() utility method isn't used. This can result in request errors going unnoticed and your code behaving in unexpected ways, such as if your authorization API returns a... | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/config_states.py:159 | Is "is_builtin" a function or an attribute? If it is a function, you may have meant ext.is_builtin() because ext.is_builtin is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/config_states.py:90 | Is "is_builtin" a function or an attribute? If it is a function, you may have meant ext.is_builtin() because ext.is_builtin is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/extensions.py:116 | Is "is_builtin" a function or an attribute? If it is a function, you may have meant self.is_builtin() because self.is_builtin is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/extensions.py:134 | Is "is_builtin" a function or an attribute? If it is a function, you may have meant self.is_builtin() because self.is_builtin is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/extensions.py:25 | Is "is_builtin" a function or an attribute? If it is a function, you may have meant x.is_builtin() because x.is_builtin is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/images.py:147 | Is "is_active" a function or an attribute? If it is a function, you may have meant self.is_active() because self.is_active is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/images.py:174 | Is "is_active" a function or an attribute? If it is a function, you may have meant line.is_active() because line.is_active is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/images.py:176 | Is "is_active" a function or an attribute? If it is a function, you may have meant line.is_active() because line.is_active is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/images.py:203 | Is "is_active" a function or an attribute? If it is a function, you may have meant line.is_active() because line.is_active is always true. | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/images.py:383 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/images.py:387 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/images.py:388 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/images.py:389 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/images.py:390 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/images.py:391 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/images.py:392 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/images.py:393 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/images.py:394 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/images.py:396 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/images.py:397 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/images.py:398 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/images.py:400 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/images.py:401 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/images.py:402 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/images.py:403 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/images.py:404 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/images.py:405 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/images.py:406 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/images.py:408 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/images.py:410 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/images.py:411 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/images.py:413 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/images.py:414 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/images.py:415 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/images.py:416 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.requests.best-practice.use-raise-for-status |
modules/launch_utils.py:214 | There's an HTTP request made with requests, but the raise_for_status() utility method isn't used. This can result in request errors going unnoticed and your code behaving in unexpected ways, such as if your authorization API returns a... | Lint |
| medium | opengrep/python.requests.best-practice.use-timeout |
modules/launch_utils.py:214 | Detected a 'requests' call without a timeout set. By default, 'requests' calls wait until the connection is closed. This means a 'requests' call without a timeout will hang the program if a response is never received. Consider setting a... | Lint |
| medium | opengrep/python.lang.correctness.use-sys-exit |
modules/launch_utils.py:446 | Detected use of `exit`. Use `sys.exit` over the python shell `exit` built-in. `exit` is a helper for the interactive shell and may not be available on all Python implementations. | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/mac_specific.py:69 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/mac_specific.py:75 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/mac_specific.py:76 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/mac_specific.py:78 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/mac_specific.py:79 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/mac_specific.py:81 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/mac_specific.py:81 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/mac_specific.py:84 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/mac_specific.py:87 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/mac_specific.py:90 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/mac_specific.py:90 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/mac_specific.py:98 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/mac_specific.py:98 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/models/sd3/other_impls.py:78 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/paths_internal.py:10 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/processing.py:118 | Is "is_sdxl_inpaint" a function or an attribute? If it is a function, you may have meant sd_model.is_sdxl_inpaint() because sd_model.is_sdxl_inpaint is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/processing.py:1368 | Is "is_hr_pass" a function or an attribute? If it is a function, you may have meant self.is_hr_pass() because self.is_hr_pass is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/processing.py:1463 | Is "is_hr_pass" a function or an attribute? If it is a function, you may have meant self.is_hr_pass() because self.is_hr_pass is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/processing.py:1514 | Is "is_hr_pass" a function or an attribute? If it is a function, you may have meant self.is_hr_pass() because self.is_hr_pass is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/processing.py:1539 | Is "is_hr_pass" a function or an attribute? If it is a function, you may have meant self.is_hr_pass() because self.is_hr_pass is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/processing.py:294 | Is "is_api" a function or an attribute? If it is a function, you may have meant self.is_api() because self.is_api is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/processing.py:300 | Is "is_using_inpainting_conditioning" a function or an attribute? If it is a function, you may have meant self.is_using_inpainting_conditioning() because self.is_using_inpainting_conditioning is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/processing.py:337 | Is "is_using_inpainting_conditioning" a function or an attribute? If it is a function, you may have meant self.is_using_inpainting_conditioning() because self.is_using_inpainting_conditioning is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/processing.py:392 | Is "is_sdxl_inpaint" a function or an attribute? If it is a function, you may have meant self.sampler.model_wrap.inner_model.is_sdxl_inpaint() because self.sampler.model_wrap.inner_model.is_sdxl_inpaint is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/processing.py:562 | Is "is_using_inpainting_conditioning" a function or an attribute? If it is a function, you may have meant self.is_using_inpainting_conditioning() because self.is_using_inpainting_conditioning is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/processing.py:562 | Is "is_using_inpainting_conditioning" a function or an attribute? If it is a function, you may have meant p.is_using_inpainting_conditioning() because p.is_using_inpainting_conditioning is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/processing.py:603 | Is "is_using_inpainting_conditioning" a function or an attribute? If it is a function, you may have meant self.is_using_inpainting_conditioning() because self.is_using_inpainting_conditioning is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/processing.py:789 | Is "is_using_inpainting_conditioning" a function or an attribute? If it is a function, you may have meant p.is_using_inpainting_conditioning() because p.is_using_inpainting_conditioning is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/prompt_parser.py:151 | Is "is_negative_prompt" a function or an attribute? If it is a function, you may have meant self.is_negative_prompt() because self.is_negative_prompt is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/rng.py:110 | Is "is_first" a function or an attribute? If it is a function, you may have meant self.is_first() because self.is_first is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/rng.py:154 | Is "is_first" a function or an attribute? If it is a function, you may have meant self.is_first() because self.is_first is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/rng.py:155 | Is "is_first" a function or an attribute? If it is a function, you may have meant self.is_first() because self.is_first is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/scripts.py:25 | Is "is_final_blend" a function or an attribute? If it is a function, you may have meant self.is_final_blend() because self.is_final_blend is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/scripts.py:338 | Is "is_img2img" a function or an attribute? If it is a function, you may have meant self.is_img2img() because self.is_img2img is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/scripts.py:358 | Is "is_img2img" a function or an attribute? If it is a function, you may have meant self.is_img2img() because self.is_img2img is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/scripts.py:419 | Is "is_builtin" a function or an attribute? If it is a function, you may have meant ext.is_builtin() because ext.is_builtin is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/scripts.py:595 | Is "is_txt2img" a function or an attribute? If it is a function, you may have meant script.is_txt2img() because script.is_txt2img is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/scripts.py:596 | Is "is_img2img" a function or an attribute? If it is a function, you may have meant script.is_img2img() because script.is_img2img is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/scripts.py:599 | Is "is_img2img" a function or an attribute? If it is a function, you may have meant script.is_img2img() because script.is_img2img is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/scripts.py:647 | Is "is_img2img" a function or an attribute? If it is a function, you may have meant script.is_img2img() because script.is_img2img is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/scripts.py:675 | Is "is_img2img" a function or an attribute? If it is a function, you may have meant script.is_img2img() because script.is_img2img is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/sd_disable_initialization.py:189 | Is "is_meta" a function or an attribute? If it is a function, you may have meant param.is_meta() because param.is_meta is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/sd_hijack_clip.py:302 | Is "is_trainable" a function or an attribute? If it is a function, you may have meant self.is_trainable() because self.is_trainable is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/sd_hijack_clip.py:37 | Is "is_trainable" a function or an attribute? If it is a function, you may have meant self.is_trainable() because self.is_trainable is always true. | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/sd_hijack_unet.py:124 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/sd_hijack_unet.py:128 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/sd_hijack_unet.py:131 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/sd_hijack_unet.py:132 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/sd_hijack_unet.py:133 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/sd_hijack_unet.py:133 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/sd_hijack_unet.py:135 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/sd_hijack_unet.py:136 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/sd_hijack_unet.py:139 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/sd_hijack_utils.py:4 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/sd_models.py:380 | Is "is_sd1" a function or an attribute? If it is a function, you may have meant model.is_sd1() because model.is_sd1 is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/sd_models.py:381 | Is "is_sd2" a function or an attribute? If it is a function, you may have meant model.is_sd2() because model.is_sd2 is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/sd_models.py:382 | Is "is_sdxl" a function or an attribute? If it is a function, you may have meant model.is_sdxl() because model.is_sdxl is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/sd_models.py:383 | Is "is_ssd" a function or an attribute? If it is a function, you may have meant model.is_ssd() because model.is_ssd is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/sd_models.py:384 | Is "is_sd3" a function or an attribute? If it is a function, you may have meant model.is_sd3() because model.is_sd3 is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/sd_models.py:387 | Is "is_sd3" a function or an attribute? If it is a function, you may have meant model.is_sd3() because model.is_sd3 is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/sd_models.py:390 | Is "is_sdxl" a function or an attribute? If it is a function, you may have meant model.is_sdxl() because model.is_sdxl is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/sd_models.py:393 | Is "is_ssd" a function or an attribute? If it is a function, you may have meant model.is_ssd() because model.is_ssd is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/sd_models.py:398 | Is "is_sd2" a function or an attribute? If it is a function, you may have meant model.is_sd2() because model.is_sd2 is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/sd_models.py:401 | Is "is_sd1" a function or an attribute? If it is a function, you may have meant model.is_sd1() because model.is_sd1 is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/sd_models.py:427 | Is "is_sdxl" a function or an attribute? If it is a function, you may have meant model.is_sdxl() because model.is_sdxl is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/sd_models.py:430 | Is "is_ssd" a function or an attribute? If it is a function, you may have meant model.is_ssd() because model.is_ssd is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/sd_models.py:455 | Is "is_sdxl_inpaint" a function or an attribute? If it is a function, you may have meant model.is_sdxl_inpaint() because model.is_sdxl_inpaint is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/sd_models.py:456 | Is "is_sdxl" a function or an attribute? If it is a function, you may have meant model.is_sdxl() because model.is_sdxl is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/sd_models.py:62 | Is "is_safetensors" a function or an attribute? If it is a function, you may have meant self.is_safetensors() because self.is_safetensors is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/sd_models.py:81 | Is "is_safetensors" a function or an attribute? If it is a function, you may have meant self.is_safetensors() because self.is_safetensors is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/sd_models_xl.py:40 | Is "is_sdxl_inpaint" a function or an attribute? If it is a function, you may have meant self.is_sdxl_inpaint() because self.is_sdxl_inpaint is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/sd_samplers.py:38 | Is "is_sdxl" a function or an attribute? If it is a function, you may have meant model.is_sdxl() because model.is_sdxl is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/sd_samplers_common.py:181 | Is "is_hr_pass" a function or an attribute? If it is a function, you may have meant cfg_denoiser.p.is_hr_pass() because cfg_denoiser.p.is_hr_pass is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/sd_samplers_kdiffusion.py:103 | Is "is_hr_pass" a function or an attribute? If it is a function, you may have meant p.is_hr_pass() because p.is_hr_pass is always true. | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/sd_samplers_kdiffusion.py:31 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/sd_samplers_kdiffusion.py:87 | Is "is_hr_pass" a function or an attribute? If it is a function, you may have meant p.is_hr_pass() because p.is_hr_pass is always true. | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/sd_samplers_lcm.py:102 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/sd_samplers_timesteps.py:20 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/sd_schedulers.py:59 | Is "is_sdxl" a function or an attribute? If it is a function, you may have meant shared.sd_model.is_sdxl() because shared.sd_model.is_sdxl is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/sd_vae_approx.py:43 | Is "is_sd3" a function or an attribute? If it is a function, you may have meant shared.sd_model.is_sd3() because shared.sd_model.is_sd3 is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/sd_vae_approx.py:45 | Is "is_sdxl" a function or an attribute? If it is a function, you may have meant shared.sd_model.is_sdxl() because shared.sd_model.is_sdxl is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/sd_vae_approx.py:73 | Is "is_sd3" a function or an attribute? If it is a function, you may have meant shared.sd_model.is_sd3() because shared.sd_model.is_sd3 is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/sd_vae_approx.py:84 | Is "is_sdxl" a function or an attribute? If it is a function, you may have meant shared.sd_model.is_sdxl() because shared.sd_model.is_sdxl is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/sd_vae_taesd.py:100 | Is "is_sdxl" a function or an attribute? If it is a function, you may have meant shared.sd_model.is_sdxl() because shared.sd_model.is_sdxl is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/sd_vae_taesd.py:123 | Is "is_sd3" a function or an attribute? If it is a function, you may have meant shared.sd_model.is_sd3() because shared.sd_model.is_sd3 is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/sd_vae_taesd.py:125 | Is "is_sdxl" a function or an attribute? If it is a function, you may have meant shared.sd_model.is_sdxl() because shared.sd_model.is_sdxl is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
modules/sd_vae_taesd.py:98 | Is "is_sd3" a function or an attribute? If it is a function, you may have meant shared.sd_model.is_sd3() because shared.sd_model.is_sd3 is always true. | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/shared_options.py:102 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/shared_options.py:103 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/shared_options.py:106 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/shared_options.py:112 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/shared_options.py:118 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/shared_options.py:171 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/shared_options.py:175 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/shared_options.py:177 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/shared_options.py:207 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/shared_options.py:233 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/shared_options.py:266 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/shared_options.py:293 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/shared_options.py:300 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/shared_options.py:332 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/shared_options.py:332 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/shared_options.py:333 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/shared_options.py:334 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/shared_options.py:335 | `return` only makes sense inside a function | Lint |
| medium | opengrep/python.lang.maintainability.return-not-in-function |
modules/shared_options.py:336 | `return` only makes sense inside a function | Lint |
| medium | zizmor/excessive-permissions |
.github/workflows/on_pull_request.yaml:1 | overly broad permissions [confidence medium] | CI workflows (zizmor) |
| medium | zizmor/artipacked |
.github/workflows/on_pull_request.yaml:13 | credential persistence through GitHub Actions artifacts [confidence low] | CI workflows (zizmor) |
| medium | zizmor/excessive-permissions |
.github/workflows/on_pull_request.yaml:26 | overly broad permissions [confidence medium] | CI workflows (zizmor) |
| medium | zizmor/artipacked |
.github/workflows/on_pull_request.yaml:31 | credential persistence through GitHub Actions artifacts [confidence low] | CI workflows (zizmor) |
| medium | zizmor/excessive-permissions |
.github/workflows/on_pull_request.yaml:8 | overly broad permissions [confidence medium] | CI workflows (zizmor) |
| medium | zizmor/artipacked |
.github/workflows/run_tests.yaml:13 | credential persistence through GitHub Actions artifacts [confidence low] | CI workflows (zizmor) |
| medium | zizmor/excessive-permissions |
.github/workflows/run_tests.yaml:8 | overly broad permissions [confidence medium] | CI workflows (zizmor) |
| medium | zizmor/excessive-permissions |
.github/workflows/warns_merge_master.yml:13 | overly broad permissions [confidence medium] | CI workflows (zizmor) |
| medium | opengrep/javascript.lang.security.html-in-template-string |
extensions-builtin/canvas-zoom-and-pan/javascript/zoom.js:352 | This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS).... | Static analysis (opengrep) |
| medium | opengrep/javascript.lang.security.audit.unsafe-dynamic-method |
extensions-builtin/canvas-zoom-and-pan/javascript/zoom.js:705 | Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low] | Static analysis (opengrep) |
| medium | opengrep/javascript.lang.security.audit.unsafe-dynamic-method |
javascript/extraNetworks.js:179 | Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low] | Static analysis (opengrep) |
| medium | opengrep/javascript.lang.security.audit.unsafe-dynamic-method |
javascript/extraNetworks.js:190 | Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low] | Static analysis (opengrep) |
| medium | opengrep/javascript.lang.security.audit.detect-non-literal-regexp |
javascript/extraNetworks.js:236 | RegExp() called with a `text` function argument, this might allow an attacker to cause a Regular Expression Denial-of-Service (ReDoS) within your application as RegExP blocks the main thread. For this reason, it is recommended to use... | Static analysis (opengrep) |
| medium | opengrep/javascript.lang.security.audit.unsafe-dynamic-method |
javascript/token-counters.js:24 | Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low] | Static analysis (opengrep) |
| medium | opengrep/javascript.lang.security.audit.unsafe-dynamic-method |
javascript/token-counters.js:29 | Using non-static data to retrieve and run functions from the object is dangerous. If the data is user-controlled, it may allow executing arbitrary code. [confidence low] | Static analysis (opengrep) |
| medium | opengrep/python.lang.security.audit.non-literal-import |
modules/modelloader.py:111 | Untrusted user input in `importlib.import_module()` function allows an attacker to load arbitrary code. Avoid dynamic values in `importlib.import_module()` or use a whitelist to prevent running untrusted code. [confidence low] | Static analysis (opengrep) |
| medium | opengrep/python.lang.security.insecure-hash-algorithm-md5 |
modules/processing.py:1674 | Detected MD5 hash algorithm which is considered insecure. MD5 is not collision resistant and is therefore not suitable as a cryptographic signature. Use SHA256 or SHA3 instead. [confidence medium] | Static analysis (opengrep) |
| medium | opengrep/python.lang.security.audit.non-literal-import |
modules/sd_hijack_utils.py:14 | Untrusted user input in `importlib.import_module()` function allows an attacker to load arbitrary code. Avoid dynamic values in `importlib.import_module()` or use a whitelist to prevent running untrusted code. [confidence low] | Static analysis (opengrep) |
| medium | opengrep/python.lang.security.audit.dynamic-urllib-use-detected |
modules/sd_models.py:577 | Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control... | Static analysis (opengrep) |
| medium | opengrep/python.lang.security.audit.non-literal-import |
modules/sd_models.py:781 | Untrusted user input in `importlib.import_module()` function allows an attacker to load arbitrary code. Avoid dynamic values in `importlib.import_module()` or use a whitelist to prevent running untrusted code. [confidence low] | Static analysis (opengrep) |
| medium | opengrep/python.lang.security.audit.non-literal-import |
modules/sd_models.py:783 | Untrusted user input in `importlib.import_module()` function allows an attacker to load arbitrary code. Avoid dynamic values in `importlib.import_module()` or use a whitelist to prevent running untrusted code. [confidence low] | Static analysis (opengrep) |
| medium | opengrep/python.django.security.audit.avoid-query-set-extra |
modules/ui.py:312 | QuerySet.extra' does not provide safeguards against SQL injection and requires very careful use. SQL injection can lead to critical data being stolen by attackers. Instead of using '.extra', use the Django ORM and parameterized queries... | Static analysis (opengrep) |
| medium | opengrep/python.lang.security.audit.dynamic-urllib-use-detected |
modules/ui_extensions.py:411 | Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control... | Static analysis (opengrep) |
| medium | osv/GHSA-6w46-j5rx-g56g |
requirements-test.txt | [email protected] (PyPI) is affected by PYSEC-2026-1845, GHSA-6w46-j5rx-g56g | Dependencies (osv-scanner) |
| medium | osv/GHSA-26jh-r8g2-6fpr |
requirements.txt | [email protected] (PyPI) is affected by GHSA-26jh-r8g2-6fpr; also in requirements_versions.txt | Dependencies (osv-scanner) |
| medium | osv/GHSA-34rf-p3r3-58x2 |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-1407, GHSA-34rf-p3r3-58x2; also in requirements_versions.txt | Dependencies (osv-scanner) |
| medium | osv/GHSA-37mw-44qp-f5jm |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-1977, GHSA-37mw-44qp-f5jm; also in requirements_versions.txt | Dependencies (osv-scanner) |
| medium | osv/GHSA-37qc-qgx6-9xjv |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2024-197, GHSA-37qc-qgx6-9xjv; also in requirements_versions.txt | Dependencies (osv-scanner) |
| medium | osv/GHSA-3gf9-wv65-gwh9 |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-1408, GHSA-3gf9-wv65-gwh9; also in requirements_versions.txt | Dependencies (osv-scanner) |
| medium | osv/GHSA-48cq-79qq-6f7x |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-1409, GHSA-48cq-79qq-6f7x; also in requirements_versions.txt | Dependencies (osv-scanner) |
| medium | osv/GHSA-4w7r-h757-3r74 |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-1980, GHSA-4w7r-h757-3r74; also in requirements_versions.txt | Dependencies (osv-scanner) |
| medium | osv/GHSA-59p9-h35m-wg4g |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-1981, GHSA-59p9-h35m-wg4g; also in requirements_versions.txt | Dependencies (osv-scanner) |
| medium | osv/GHSA-6rvg-6v2m-4j46 |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-1982, GHSA-6rvg-6v2m-4j46; also in requirements_versions.txt | Dependencies (osv-scanner) |
| medium | osv/GHSA-77xq-6g77-h274 |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2024-213, GHSA-77xq-6g77-h274; also in requirements_versions.txt | Dependencies (osv-scanner) |
| medium | osv/GHSA-7v2w-h4gh-w5cv |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-1411, GHSA-7v2w-h4gh-w5cv; also in requirements_versions.txt | Dependencies (osv-scanner) |
| medium | osv/GHSA-89v2-pqfv-c5r9 |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2024-214, GHSA-89v2-pqfv-c5r9; also in requirements_versions.txt | Dependencies (osv-scanner) |
| medium | osv/GHSA-8jw3-6x8j-v96g |
requirements.txt | [email protected] (PyPI) is affected by GHSA-8jw3-6x8j-v96g; also in requirements_versions.txt | Dependencies (osv-scanner) |
| medium | osv/GHSA-9356-575x-2w9m |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-1983, GHSA-9356-575x-2w9m; also in requirements_versions.txt | Dependencies (osv-scanner) |
| medium | osv/GHSA-fpwr-67px-3qhx |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-1984, GHSA-fpwr-67px-3qhx; also in requirements_versions.txt | Dependencies (osv-scanner) |
| medium | osv/GHSA-g6c9-f4xm-9j4x |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-1414, GHSA-g6c9-f4xm-9j4x; also in requirements_versions.txt | Dependencies (osv-scanner) |
| medium | osv/GHSA-gvv6-33j7-884g |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2024-220, GHSA-gvv6-33j7-884g; also in requirements_versions.txt | Dependencies (osv-scanner) |
| medium | osv/GHSA-hm3c-93pg-4cxw |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2024-198, GHSA-hm3c-93pg-4cxw; also in requirements_versions.txt | Dependencies (osv-scanner) |
| medium | osv/GHSA-hmx6-r76c-85g9 |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-1416, GHSA-hmx6-r76c-85g9; also in requirements_versions.txt | Dependencies (osv-scanner) |
| medium | osv/GHSA-j757-pf57-f8r4 |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2024-199, GHSA-j757-pf57-f8r4; also in requirements_versions.txt | Dependencies (osv-scanner) |
| medium | osv/GHSA-jjph-296x-mrcr |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-1985, GHSA-jjph-296x-mrcr; also in requirements_versions.txt | Dependencies (osv-scanner) |
| medium | osv/GHSA-pfjf-5gxr-995x |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-65, GHSA-pfjf-5gxr-995x; also in requirements_versions.txt | Dependencies (osv-scanner) |
| medium | osv/GHSA-prpg-p95c-32fv |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-1418, GHSA-prpg-p95c-32fv; also in requirements_versions.txt | Dependencies (osv-scanner) |
| medium | osv/GHSA-q2wp-rjmx-x6x9 |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-1987, GHSA-q2wp-rjmx-x6x9; also in requirements_versions.txt | Dependencies (osv-scanner) |
| medium | osv/GHSA-qh6x-j82h-vpf9 |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-1419, GHSA-qh6x-j82h-vpf9; also in requirements_versions.txt | Dependencies (osv-scanner) |
| medium | osv/GHSA-rcv9-qm8p-9p6j |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-1988, GHSA-rcv9-qm8p-9p6j; also in requirements_versions.txt | Dependencies (osv-scanner) |
| medium | osv/GHSA-24rc-8hj2-v98c |
requirements_versions.txt | [email protected] (PyPI) is affected by GHSA-24rc-8hj2-v98c | Dependencies (osv-scanner) |
| medium | osv/GHSA-254f-3936-288h |
requirements_versions.txt | [email protected] (PyPI) is affected by GHSA-254f-3936-288h | Dependencies (osv-scanner) |
| medium | osv/GHSA-3wxw-xv34-2frg |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3837, GHSA-3wxw-xv34-2frg | Dependencies (osv-scanner) |
| medium | osv/GHSA-462x-pgg6-55fp |
requirements_versions.txt | [email protected] (PyPI) is affected by GHSA-462x-pgg6-55fp | Dependencies (osv-scanner) |
| medium | osv/GHSA-4rm8-3hmm-39fg |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-4340, GHSA-4rm8-3hmm-39fg | Dependencies (osv-scanner) |
| medium | osv/GHSA-4x4j-2g7c-83w6 |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-2257, GHSA-4x4j-2g7c-83w6 | Dependencies (osv-scanner) |
| medium | osv/GHSA-59cr-6r3x-644w |
requirements_versions.txt | [email protected] (PyPI) is affected by GHSA-59cr-6r3x-644w | Dependencies (osv-scanner) |
| medium | osv/GHSA-74r2-7ff9-mjj2 |
requirements_versions.txt | [email protected] (PyPI) is affected by GHSA-74r2-7ff9-mjj2 | Dependencies (osv-scanner) |
| medium | osv/GHSA-cwvm-v4w8-q58c |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2023-165, GHSA-cwvm-v4w8-q58c | Dependencies (osv-scanner) |
| medium | osv/GHSA-fc9g-5qg7-mf45 |
requirements_versions.txt | [email protected] (PyPI) is affected by GHSA-fc9g-5qg7-mf45 | Dependencies (osv-scanner) |
| medium | osv/GHSA-fj7v-r99m-22gq |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3494, GHSA-fj7v-r99m-22gq | Dependencies (osv-scanner) |
| medium | osv/GHSA-fx3j-rwgx-fr94 |
requirements_versions.txt | [email protected] (PyPI) is affected by GHSA-fx3j-rwgx-fr94 | Dependencies (osv-scanner) |
| medium | osv/GHSA-gq48-pqfc-9p58 |
requirements_versions.txt | [email protected] (PyPI) is affected by GHSA-gq48-pqfc-9p58 | Dependencies (osv-scanner) |
| medium | osv/GHSA-h35f-9h28-mq5c |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3447, GHSA-h35f-9h28-mq5c | Dependencies (osv-scanner) |
| medium | osv/GHSA-hh9p-6wh2-4mfc |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3841, GHSA-hh9p-6wh2-4mfc | Dependencies (osv-scanner) |
| medium | osv/GHSA-p538-c434-8v24 |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-3950, GHSA-p538-c434-8v24 | Dependencies (osv-scanner) |
| medium | osv/GHSA-p8hx-v2p6-rp84 |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-4337, GHSA-p8hx-v2p6-rp84 | Dependencies (osv-scanner) |
| medium | osv/GHSA-r73j-pqj5-w3x7 |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-2874, GHSA-r73j-pqj5-w3x7 | Dependencies (osv-scanner) |
| medium | osv/GHSA-rfgq-q3w2-pmv2 |
requirements_versions.txt | [email protected] (PyPI) is affected by GHSA-rfgq-q3w2-pmv2 | Dependencies (osv-scanner) |
| medium | osv/GHSA-vx6w-vv9f-6gvg |
requirements_versions.txt | [email protected] (PyPI) is affected by GHSA-vx6w-vv9f-6gvg | Dependencies (osv-scanner) |
| medium | osv/GHSA-w8v5-vhqr-4h9v |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-2447, GHSA-w8v5-vhqr-4h9v | Dependencies (osv-scanner) |
| medium | osv/GHSA-wjx4-4jcj-g98j |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2026-165, GHSA-wjx4-4jcj-g98j | Dependencies (osv-scanner) |
| medium | osv/GHSA-wqgw-9xfh-qf2g |
requirements_versions.txt | [email protected] (PyPI) is affected by GHSA-wqgw-9xfh-qf2g | Dependencies (osv-scanner) |
| medium | osv/PYSEC-2023-175 |
requirements_versions.txt | [email protected] (PyPI) is affected by PYSEC-2023-175 | Dependencies (osv-scanner) |
| medium | opengrep/python.lang.security.audit.exec-detected |
scripts/custom_code.py:31 | Detected the use of exec(). exec() can be dangerous if used to evaluate dynamic content. If this content can be input from outside the program, this may be a code injection vulnerability. Ensure evaluated content is not definable by... | Static analysis (opengrep) |
| medium | opengrep/python.lang.security.audit.eval-detected |
scripts/custom_code.py:33 | Detected the use of eval(). eval() can be dangerous if used to evaluate dynamic content. If this content can be input from outside the program, this may be a code injection vulnerability. Ensure evaluated content is not definable by... | Static analysis (opengrep) |
| medium | opengrep/python.lang.security.audit.exec-detected |
scripts/custom_code.py:35 | Detected the use of exec(). exec() can be dangerous if used to evaluate dynamic content. If this content can be input from outside the program, this may be a code injection vulnerability. Ensure evaluated content is not definable by... | Static analysis (opengrep) |
| low | opengrep/javascript.browser.security.js-open-redirect-from-function |
javascript/ui.js:6 | The application accepts potentially user-controlled input `theme` which can control the location of the current window context. This can lead two types of vulnerabilities open-redirection and Cross-Site-Scripting (XSS) with JavaScript... | Static analysis (opengrep) |
| low | gitleaks/generic-api-key |
localizations/it_IT.json:307 | Possible generic-api-key secret in history (commit 0b028c84ab); removed from the current tree but still retrievable | Secrets (gitleaks) |
| low | opengrep/python.lang.security.use-defusedcsv |
modules/ui_common.py:113 | Detected the generation of a CSV file using the built-in `csv` module. If user data is used to generate the data in this file, it is possible that an attacker could inject a formula when the CSV is imported into a spreadsheet... | Static analysis (opengrep) |
| low | opengrep/python.lang.security.use-defusedcsv |
modules/ui_common.py:60 | Detected the generation of a CSV file using the built-in `csv` module. If user data is used to generate the data in this file, it is possible that an attacker could inject a formula when the CSV is imported into a spreadsheet... | Static analysis (opengrep) |
| low | osv/GHSA-37q5-v5qm-c9v8 |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-1978, GHSA-37q5-v5qm-c9v8; also in requirements_versions.txt | Dependencies (osv-scanner) |
| low | osv/GHSA-6655-8ph2-63j3 |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-211, GHSA-6655-8ph2-63j3; also in requirements_versions.txt | Dependencies (osv-scanner) |
| low | osv/GHSA-phhr-52qp-3mj4 |
requirements.txt | [email protected] (PyPI) is affected by PYSEC-2026-1986, GHSA-phhr-52qp-3mj4; also in requirements_versions.txt | Dependencies (osv-scanner) |
| low | osv/GHSA-xmj3-9gf7-h52w |
requirements_versions.txt | [email protected] (PyPI) is affected by GHSA-xmj3-9gf7-h52w | Dependencies (osv-scanner) |
| low | opengrep/python.lang.security.use-defusedcsv |
scripts/xyz_grid.py:206 | Detected the generation of a CSV file using the built-in `csv` module. If user data is used to generate the data in this file, it is possible that an attacker could inject a formula when the CSV is imported into a spreadsheet... | Static analysis (opengrep) |
Tools and coverage
Every analyzer that ran on this commit. A failed or skipped tool is a coverage gap: its share of the score is left out and the coverage figure drops.
| Analyzer | Pillar | Status | Version | Findings | Note |
|---|---|---|---|---|---|
| AI tool configuration | AI provenance | ok | signatures-v1 | 0 | |
| Explicit AI attribution | AI provenance | ok | signatures-v1 | 0 | |
| Release velocity | AI provenance | ok | prov-5 | 0 | |
| Coding style | AI provenance | ok | — | 0 | |
| Commit velocity | AI provenance | ok | prov-5 | 0 | |
| Complexity (lizard) | Code quality | ok | lizard 1.25.1 | 0 | |
| Documentation | Code quality | ok | — | 0 | |
| Duplication (jscpd) | Code quality | ok | repotrust-dup-w6 | 0 | |
| Lint | Code quality | ok | opengrep 1.33.1; rules f1d2b562b414 | 200 | |
| Tests and CI | Code quality | ok | — | 0 | |
| Type safety | Code quality | ok | — | 0 | |
| CI workflows (zizmor) | Security | ok | zizmor 1.32.0 | 17 | |
| Dependencies (osv-scanner) | Security | ok | osv-scanner version: 2.7.1 | 183 | |
| Release downloads | Security | ok | — | 0 | |
| Security posture | Security | ok | — | 0 | |
| Package registries | Security | ok | — | 0 | |
| Static analysis (opengrep) | Security | ok | opengrep 1.33.1; rules f1d2b562b414 | 48 | |
| OpenSSF Scorecard | Security | skipped | — | 0 | no published OpenSSF Scorecard result for this repo |
| Secrets (gitleaks) | Security | ok | gitleaks 8.30.1 | 1 |
Score history
| Scored | Commit | Scoring | AI provenance | Quality | Security |
|---|---|---|---|---|---|
| 2026-11-14 | 82a973c04367 | prov-5+qual-2+sec-2 | 0% | 54 | 50 |
Full text report
- Repository: https://github.com/AUTOMATIC1111/stable-diffusion-webui
- Commit:
82a973c04367123ae98bd9abdf80d9eda9b910e2 - Generated: 2026-11-14T15:09:19+00:00
- Scorer 0.1.0, scoring prov-5+qual-2+sec-2, report schema v2
Scores
| Pillar | Score | Signal | Confidence | Coverage |
|---|---|---|---|---|
| AI provenance (estimated AI-generated share) | 0 | possible | 65% | 100% |
| Code quality | 54 | weak | 90% | 100% |
| Security | 50 | weak | 85% | 100% |
AI provenance
Weak signals consistent with AI-assisted development.
-
Explicitly attributed share (lower bound): 0.0%
-
Unattributed share in AI-consistent velocity bursts: 19.2%
-
Estimated AI-generated share: 0.0%
-
Stylometry index: 0.26 per 1,000 lines (narrated steps 0, placeholders 0, assistant phrasing 0, emoji 25). Reported as a signal, not scored.
| Month | Lines added | Attributed to AI |
|---|---|---|
| 2023-08 | 7,343 | 0% |
| 2023-09 | 504 | 0% |
| 2023-10 | 1,688 | 0% |
| 2023-11 | 3,745 | 0% |
| 2023-12 | 4,474 | 0% |
| 2024-01 | 3,029 | 0% |
| 2024-02 | 1,121 | 0% |
| 2024-03 | 2,051 | 0% |
| 2024-04 | 597 | 0% |
| 2024-05 | 441 | 0% |
| 2024-06 | 2,645 | 0% |
| 2024-07 | 532 | 0% |
Evidence
- 13,583 lines of first-party code in ~4.1h (3,345 lines/hour, 2 commit session) (2e8b5418e3cd)
- 10,814 lines of first-party code in ~4.0h (2,704 lines/hour, 1 commit session) (75c4511e6b81)
- v1.5.2 → v1.6.0-RC: 7,659 lines in 0.81 days (9,439.9 lines/day) (v1.5.2...v1.)
- 2,219 lines of first-party code in ~3.0h (728 lines/hour, 1 commit session) (345028099d89)
AI provenance describes how code was produced; it is not a quality judgment. Unless attribution is explicit, these are signals consistent with AI generation, not proof. Squash/rebase workflows, imported code, and rewritten history reduce accuracy.
Code quality
Code quality is weak: test-to-source ratio 0.01, CI runs tests; 22% of function code in complex or long functions; 9% duplicated lines. Weakest area: lint.
| Area | Score |
|---|---|
| Complexity (lizard) | 52 |
| Duplication | 58 |
| Code smells (Opengrep) | 21 |
| Tests and CI | 65 |
| Documentation | 85 |
| Type safety | 40 |
| Process (Scorecard review/maintenance) | n/a |
- Functions: 2,629; mean complexity 3.6, 90th percentile 8; 81 complex and 13 long functions
- Duplicated lines: 9.0% of 34,951 compared
- Tests: 310 test lines for 48,781 source lines (ratio 0.01); CI test commands: pytest; 0% of recent source commits also change tests
- Docs missing or thin: contributing
Most complex functions:
- process_images_inner in modules/processing.py: complexity 75, 200 lines
- forward in modules/sd_samplers_cfg_denoiser.py: complexity 63, 114 lines
- run_modelmerger in modules/extras.py: complexity 62, 160 lines
- create_ui in modules/ui.py: complexity 62, 736 lines
- parse_generation_parameters in modules/infotext_utils.py: complexity 54, 100 lines
Security
Security posture is weak: 183 known vulnerabilities in 12 dependencies; 26 high-severity SAST findings; 9 high-severity workflow issues. Weakest area: posture.
| Area | Score |
|---|---|
| Secrets (gitleaks, tree + history) | 97 |
| Static analysis (Opengrep) | 81 |
| Vulnerable dependencies (OSV) | 13 |
| CI workflows (zizmor) | 13 |
| Posture (policy, updates, signing, lockfiles) | 0 |
| OpenSSF Scorecard | n/a |
-
Known vulnerabilities: 183 in 12 packages (critical 20, high 108, medium 48, low 4)
-
Posture checks passed: none; missing: security policy, dependency updates, signed commits, lockfiles
Top findings
| Severity | Finding | Location |
|---|---|---|
| critical | osv/GHSA-gqvf-3hgp-5hxv: [email protected] (PyPI) is affected by PYSEC-2023-255, GHSA-gqvf-3hgp-5hxv; also in requirements_versions.txt |
requirements.txt |
| critical | osv/GHSA-576c-3j53-r9jj: [email protected] (PyPI) is affected by PYSEC-2024-215, GHSA-576c-3j53-r9jj; also in requirements_versions.txt |
requirements.txt |
| critical | osv/GHSA-279j-x4gx-hfrh: [email protected] (PyPI) is affected by PYSEC-2024-219, GHSA-279j-x4gx-hfrh; also in requirements_versions.txt |
requirements.txt |
| critical | osv/PYSEC-2024-274: [email protected] (PyPI) is affected by PYSEC-2024-274; also in requirements_versions.txt |
requirements.txt |
| critical | osv/PYSEC-2024-321: [email protected] (PyPI) is affected by PYSEC-2024-321; also in requirements_versions.txt |
requirements.txt |
| critical | osv/GHSA-j2jg-fq62-7c3h: [email protected] (PyPI) is affected by PYSEC-2025-118, GHSA-j2jg-fq62-7c3h; also in requirements_versions.txt |
requirements.txt |
| critical | osv/GHSA-m842-4qm8-7gpq: [email protected] (PyPI) is affected by PYSEC-2026-345, GHSA-m842-4qm8-7gpq; also in requirements_versions.txt |
requirements.txt |
| critical | osv/GHSA-3863-2447-669p: [email protected] (PyPI) is affected by PYSEC-2023-300, GHSA-3863-2447-669p; also in requirements_versions.txt |
requirements.txt |
| critical | osv/GHSA-fgcw-684q-jj6r: [email protected] (PyPI) is affected by PYSEC-2026-2290, GHSA-fgcw-684q-jj6r; also in requirements_versions.txt |
requirements.txt |
| critical | osv/GHSA-x2qx-6953-8485: [email protected] (PyPI) is affected by PYSEC-2026-2161, GHSA-x2qx-6953-8485 |
requirements_versions.txt |
| critical | osv/GHSA-284h-m62q-gf8w: [email protected] (PyPI) is affected by PYSEC-2026-3786, GHSA-284h-m62q-gf8w |
requirements_versions.txt |
| critical | osv/GHSA-5x8w-8jj5-q52h: [email protected] (PyPI) is affected by PYSEC-2026-4330, GHSA-5x8w-8jj5-q52h |
requirements_versions.txt |
| critical | osv/GHSA-8g5g-8vmr-9782: [email protected] (PyPI) is affected by PYSEC-2026-4332, GHSA-8g5g-8vmr-9782 |
requirements_versions.txt |
| critical | osv/GHSA-xvh5-g6gv-559v: [email protected] (PyPI) is affected by PYSEC-2026-4363, GHSA-xvh5-g6gv-559v |
requirements_versions.txt |
| critical | osv/GHSA-3f63-hfp8-52jq: [email protected] (PyPI) is affected by PYSEC-2026-457, GHSA-3f63-hfp8-52jq |
requirements_versions.txt |
| critical | osv/GHSA-332p-7hrc-92wf: [email protected] (PyPI) is affected by GHSA-332p-7hrc-92wf |
requirements_versions.txt |
| critical | osv/GHSA-w889-685w-c8fh: [email protected] (PyPI) is affected by GHSA-w889-685w-c8fh |
requirements_versions.txt |
| critical | osv/PYSEC-2026-3974: [email protected] (PyPI) is affected by PYSEC-2026-3974 |
requirements_versions.txt |
| critical | osv/PYSEC-2026-3975: [email protected] (PyPI) is affected by PYSEC-2026-3975 |
requirements_versions.txt |
| critical | osv/GHSA-4cv3-v7pv-rfhf: [email protected] (PyPI) is affected by PYSEC-2026-507, GHSA-4cv3-v7pv-rfhf |
requirements_versions.txt |
| high | opengrep/javascript.browser.security.insecure-document-method: User controlled data in methods like innerHTML, outerHTML or document.write is an anti-pattern that can lead to XSS vulnerabilities [confidence low] |
extensions-builtin/canvas-zoom-and-pan/javascript/zoom.js:352 |
| high | opengrep/javascript.browser.security.insecure-innerhtml: User controlled data in a p.innerHTML is an anti-pattern that can lead to XSS vulnerabilities [confidence low] |
extensions-builtin/canvas-zoom-and-pan/javascript/zoom.js:352 |
| high | opengrep/javascript.browser.security.insecure-document-method: User controlled data in methods like innerHTML, outerHTML or document.write is an anti-pattern that can lead to XSS vulnerabilities [confidence low] |
javascript/contextMenus.js:32 |
| high | opengrep/javascript.browser.security.insecure-innerhtml: User controlled data in a contextMenuEntry.innerHTML is an anti-pattern that can lead to XSS vulnerabilities [confidence low] |
javascript/contextMenus.js:32 |
| high | opengrep/javascript.browser.security.insecure-document-method: User controlled data in methods like innerHTML, outerHTML or document.write is an anti-pattern that can lead to XSS vulnerabilities [confidence low] |
javascript/extraNetworks.js:662 |
Static signals only: the scorer never runs the project's code. Secret findings are pattern matches that were not verified, and secret values are never stored.
Distribution signals
- binary-release-asset: release v1.10.0 ships sd.webui-1.10.1-blackwell.7z (66920 downloads)
Signals consistent with a repository that exists to distribute a download. They are heuristics, not a verdict; release files were not downloaded or inspected.
Repository profile
- Source lines: 48,781; test lines: 310
| Language | Lines |
|---|---|
| Python | 43,654 |
| JavaScript | 5,068 |
| Shell | 369 |