← Back to scan
File as GitHub Issue repo: rasbt/LLMs-from-scratch

Push this scan report to rasbt/LLMs-from-scratch

Click the green button below to open GitHub’s new-issue form, pre-filled with the report title, summary table, top findings, and an embedded score-card image. No authentication needed — you review on GitHub before submitting. Repobility is credited as the scanner.

Embedded score card image

This image will render at the top of the issue body. Hosted on Repobility, refreshes automatically after re-scans.

Repobility score card

Issue title

JS: child_process.exec with non-literal

Curate findings to include

Pick exactly which findings appear in the issue body. By default the top 5 are included. Uncheck noise, check what matters.

Top 5 (default)
Severity Rule Title File:line
HIGH SEC080 [SEC080] Python: tarfile.extractall without filter: tarfile.extract*() without filter='da… ch06/03_bonus_imdb-classification/downl…:46
HIGH SEC035 [SEC035] Unbounded Resource Allocation — DoS risk: Allocating resources (buffers, recursi… ch06/03_bonus_imdb-classification/downl…:46
HIGH MINED006 [MINED006] Overcatch Baseexception: except BaseException: ... — prevents Ctrl+C and Syste… ch05/05_bonus_hparam_tuning/hparam_sear…:206
HIGH MINED006 [MINED006] Overcatch Baseexception: except BaseException: ... — prevents Ctrl+C and Syste… ch05/03_bonus_pretraining_on_gutenberg/…:141
HIGH SEC085 [SEC085] JS: child_process.exec with non-literal: child_process.exec with user-derived in… pkg/llms_from_scratch/utils.py:149
HIGH SEC085 [SEC085] JS: child_process.exec with non-literal: child_process.exec with user-derived in… ch02/05_bpe-from-scratch/tests.py:28
HIGH SEC128 [SEC128] Async function without await — fire-and-forget Promise (AI mistake): Async call … ch05/01_main-chapter-code/gpt_generate.…:296
HIGH SEC128 [SEC128] Async function without await — fire-and-forget Promise (AI mistake): Async call … ch04/10_kv-sharing/plot_memory_estimate…:162
HIGH SEC128 [SEC128] Async function without await — fire-and-forget Promise (AI mistake): Async call … ch02/02_bonus_bytepair-encoder/bpe_open…:165
HIGH MINED001 [MINED001] Bare Except Pass: except: pass or except Exception: pass — silently swallows e… ch06/01_main-chapter-code/gpt_download.…:80
HIGH MINED001 [MINED001] Bare Except Pass: except: pass or except Exception: pass — silently swallows e… ch05/01_main-chapter-code/gpt_download.…:81
HIGH MINED001 [MINED001] Bare Except Pass: except: pass or except Exception: pass — silently swallows e… appendix-E/01_main-chapter-code/gpt_dow…:80
HIGH SEC114 [SEC114] path.join / Path() on user-controlled segment without containment check: filepat… ch05/01_main-chapter-code/gpt_generate.…:56
HIGH SEC114 [SEC114] path.join / Path() on user-controlled segment without containment check: filepat… ch05/01_main-chapter-code/gpt_download.…:42
HIGH SEC114 [SEC114] path.join / Path() on user-controlled segment without containment check: filepat… appendix-E/01_main-chapter-code/gpt_dow…:41
HIGH SEC078 [SEC078] Python: requests without timeout: requests.get/post without a timeout will hang … ch02/02_bonus_bytepair-encoder/bpe_open…:156
HIGH SEC029 [SEC029] Server-Side Request Forgery (SSRF) — outbound HTTP from user input: Outbound HTT… ch06/01_main-chapter-code/gpt_download.…:49
HIGH SEC029 [SEC029] Server-Side Request Forgery (SSRF) — outbound HTTP from user input: Outbound HTT… ch05/01_main-chapter-code/gpt_download.…:50
HIGH SEC029 [SEC029] Server-Side Request Forgery (SSRF) — outbound HTTP from user input: Outbound HTT… appendix-E/01_main-chapter-code/gpt_dow…:49
HIGH MINED106 Phantom test coverage: test_context_overflow_bug ch04/03_kv-cache/tests.py:113
HIGH MINED115 Action `actions/setup-python` pinned to mutable ref `@v6` .github/workflows/basic-tests-pytorch-r…:28
HIGH MINED115 Action `actions/checkout` pinned to mutable ref `@v6` .github/workflows/basic-tests-pytorch-r…:25
HIGH MINED115 Action `actions/setup-python` pinned to mutable ref `@v6` .github/workflows/basic-tests-macos-uv.…:34
HIGH MINED115 Action `actions/checkout` pinned to mutable ref `@v6` .github/workflows/basic-tests-macos-uv.…:31
HIGH MINED115 Action `actions/github-script` pinned to mutable ref `@v8` .github/workflows/required-checks.yml:18
HIGH MINED115 Action `actions/setup-python` pinned to mutable ref `@v6` .github/workflows/basic-tests-pip.yml:34
HIGH MINED115 Action `actions/checkout` pinned to mutable ref `@v6` .github/workflows/basic-tests-pip.yml:31
HIGH MINED115 Action `actions/setup-python` pinned to mutable ref `@v6` .github/workflows/basic-tests-windows-u…:30
HIGH MINED115 Action `actions/checkout` pinned to mutable ref `@v6` .github/workflows/basic-tests-windows-u…:27
HIGH MINED115 Action `actions/setup-python` pinned to mutable ref `@v6` .github/workflows/check-spelling-errors…:19
HIGH MINED115 Action `actions/checkout` pinned to mutable ref `@v6` .github/workflows/check-spelling-errors…:16
HIGH MINED115 Action `actions/setup-python` pinned to mutable ref `@v6` .github/workflows/pep8-linter.yml:15
HIGH MINED115 Action `actions/checkout` pinned to mutable ref `@v6` .github/workflows/pep8-linter.yml:13
HIGH MINED115 Action `actions/setup-python` pinned to mutable ref `@v6` .github/workflows/check-links.yml:19
HIGH MINED115 Action `actions/checkout` pinned to mutable ref `@v6` .github/workflows/check-links.yml:16
HIGH MINED115 Action `actions/setup-python` pinned to mutable ref `@v6` .github/workflows/basic-tests-linux-uv.…:34
HIGH MINED115 Action `actions/checkout` pinned to mutable ref `@v6` .github/workflows/basic-tests-linux-uv.…:31
HIGH MINED115 Action `actions/checkout` pinned to mutable ref `@v6` .github/workflows/basic-tests-pixi.yml:34
HIGH MINED115 Action `actions/setup-python` pinned to mutable ref `@v6` .github/workflows/basic-tests-latest-py…:28
HIGH MINED115 Action `actions/checkout` pinned to mutable ref `@v6` .github/workflows/basic-tests-latest-py…:25
HIGH MINED115 Action `actions/setup-python` pinned to mutable ref `@v6` .github/workflows/basic-tests-old-pytor…:32
HIGH MINED115 Action `actions/checkout` pinned to mutable ref `@v6` .github/workflows/basic-tests-old-pytor…:29
HIGH MINED119 Dockerfile `ADD https://astral.sh/uv/install.sh` setup/03_optional-docker-environment/.d…:11
HIGH MINED118 Dockerfile FROM `pytorch/pytorch:2.5.0-cuda12.4-cudnn9-runtime` not pinned by digest setup/03_optional-docker-environment/.d…:2
HIGH PYSEC-2026-139 torch: PYSEC-2026-139 requirements.txt
HIGH PYSEC-2025-209 torch: PYSEC-2025-209 requirements.txt
HIGH PYSEC-2025-208 torch: PYSEC-2025-208 requirements.txt
HIGH PYSEC-2025-207 torch: PYSEC-2025-207 requirements.txt
HIGH PYSEC-2025-206 torch: PYSEC-2025-206 requirements.txt
HIGH PYSEC-2025-205 torch: PYSEC-2025-205 requirements.txt
HIGH PYSEC-2025-204 torch: PYSEC-2025-204 requirements.txt
HIGH PYSEC-2025-203 torch: PYSEC-2025-203 requirements.txt
HIGH PYSEC-2025-198 torch: PYSEC-2025-198 requirements.txt
HIGH PYSEC-2025-191 torch: PYSEC-2025-191 requirements.txt
HIGH PYSEC-2024-259 torch: PYSEC-2024-259 requirements.txt
HIGH GHSA-rch3-82jr-f9w9 jupyterlab: GHSA-rch3-82jr-f9w9 requirements.txt
HIGH GHSA-mqcg-5x36-vfcg jupyterlab: GHSA-mqcg-5x36-vfcg requirements.txt
HIGH GHSA-9q39-rmj3-p4r2 jupyterlab: GHSA-9q39-rmj3-p4r2 requirements.txt
HIGH GHSA-44cc-43rp-5947 jupyterlab: GHSA-44cc-43rp-5947 requirements.txt
HIGH PYSEC-2026-164 jupyterlab: PYSEC-2026-164 requirements.txt
HIGH PYSEC-2024-110 scikit-learn: PYSEC-2024-110 ch06/03_bonus_imdb-classification/requi…
HIGH GHSA-38vq-g6vr-w8wf sentencepiece: GHSA-38vq-g6vr-w8wf ch05/07_gpt_to_llama/requirements-extra…
HIGH GHSA-2g59-m95p-pgfq chainlit: GHSA-2g59-m95p-pgfq ch05/06_user_interface/requirements-ext…
HIGH PYSEC-2025-40 transformers: PYSEC-2025-40 ch02/02_bonus_bytepair-encoder/requirem…
HIGH PYSEC-2025-218 transformers: PYSEC-2025-218 ch02/02_bonus_bytepair-encoder/requirem…
HIGH PYSEC-2025-217 transformers: PYSEC-2025-217 ch02/02_bonus_bytepair-encoder/requirem…
HIGH PYSEC-2025-216 transformers: PYSEC-2025-216 ch02/02_bonus_bytepair-encoder/requirem…
HIGH PYSEC-2025-215 transformers: PYSEC-2025-215 ch02/02_bonus_bytepair-encoder/requirem…
HIGH PYSEC-2025-214 transformers: PYSEC-2025-214 ch02/02_bonus_bytepair-encoder/requirem…
HIGH PYSEC-2025-213 transformers: PYSEC-2025-213 ch02/02_bonus_bytepair-encoder/requirem…
HIGH PYSEC-2025-212 transformers: PYSEC-2025-212 ch02/02_bonus_bytepair-encoder/requirem…
HIGH PYSEC-2025-211 transformers: PYSEC-2025-211 ch02/02_bonus_bytepair-encoder/requirem…
HIGH PYSEC-2024-229 transformers: PYSEC-2024-229 ch02/02_bonus_bytepair-encoder/requirem…
HIGH PYSEC-2024-228 transformers: PYSEC-2024-228 ch02/02_bonus_bytepair-encoder/requirem…
HIGH PYSEC-2024-227 transformers: PYSEC-2024-227 ch02/02_bonus_bytepair-encoder/requirem…
HIGH PYSEC-2023-301 transformers: PYSEC-2023-301 ch02/02_bonus_bytepair-encoder/requirem…
HIGH SEC020 [SEC020] Secret Printed to Logs: Debug or diagnostic code appears to print a credential-b… ch02/05_bpe-from-scratch/tests.py:146
HIGH SEC013 [SEC013] Path Traversal — User Input in File Path: User-controlled input used in file pat… ch05/01_main-chapter-code/gpt_generate.…:56
HIGH SEC013 [SEC013] Path Traversal — User Input in File Path: User-controlled input used in file pat… ch05/01_main-chapter-code/gpt_download.…:42
HIGH SEC013 [SEC013] Path Traversal — User Input in File Path: User-controlled input used in file pat… appendix-E/01_main-chapter-code/gpt_dow…:41
MED SEC012 [SEC012] ZipSlip — Archive Path Traversal: Archive extraction without path validation all… pkg/llms_from_scratch/ch06.py:33
MED SEC012 [SEC012] ZipSlip — Archive Path Traversal: Archive extraction without path validation all… ch06/03_bonus_imdb-classification/downl…:46
MED SEC045 [SEC045] eval()/exec() on stored or user-supplied data: eval() and exec() on data — even … pkg/llms_from_scratch/utils.py:149
MED SEC045 [SEC045] eval()/exec() on stored or user-supplied data: eval() and exec() on data — even … ch02/05_bpe-from-scratch/tests.py:28
MED MINED111 Bare except continues silently appendix-E/01_main-chapter-code/gpt_dow…:91
MED MINED111 Bare except continues silently pkg/llms_from_scratch/ch05.py:323
MED MINED111 Bare except continues silently .github/scripts/check_double_quotes.py:111
MED MINED111 Bare except continues silently setup/02_installing-python-libraries/py…:90
MED MINED111 Bare except continues silently ch05/01_main-chapter-code/gpt_download.…:91
MED MINED111 Bare except continues silently ch07/01_main-chapter-code/gpt_download.…:91
MED MINED109 Mutable default argument in `load_dataset_to_dataframe` (dict) ch06/03_bonus_imdb-classification/downl…:51
MED MINED111 Bare except continues silently ch06/03_bonus_imdb-classification/gpt_d…:91
MED MINED111 Bare except continues silently ch06/01_main-chapter-code/gpt_download.…:91
MED MINED111 Bare except continues silently ch06/02_bonus_additional-experiments/gp…:91
MED COMP001 [COMP001] High cognitive complexity: Function `check_quotes_in_source` has cognitive comp… .github/scripts/check_double_quotes.py:76
MED DKR007 Docker build context has no .dockerignore .dockerignore
MED DEPCUR-GHA GitHub Action `actions/github-script@v8` is 1 major version(s) behind (latest v9.0.0) .github/workflows/required-checks.yml:18
MED MINED124 requirements.txt: `tqdm` has no version pin ch02/02_bonus_bytepair-encoder/requirem…:2
MED MINED124 requirements.txt: `requests` has no version pin ch02/02_bonus_bytepair-encoder/requirem…:1
MED MINED124 requirements.txt: `thop` has no version pin ch04/02_performance-analysis/requiremen…:1
MED GHSA-887c-mr87-cxwp torch: GHSA-887c-mr87-cxwp requirements.txt
MED GHSA-4m77-cmpx-vjc4 jupyterlab: GHSA-4m77-cmpx-vjc4 requirements.txt
MED GHSA-rcv9-qm8p-9p6j transformers: GHSA-rcv9-qm8p-9p6j ch02/02_bonus_bytepair-encoder/requirem…
MED GHSA-q2wp-rjmx-x6x9 transformers: GHSA-q2wp-rjmx-x6x9 ch02/02_bonus_bytepair-encoder/requirem…
MED GHSA-jjph-296x-mrcr transformers: GHSA-jjph-296x-mrcr ch02/02_bonus_bytepair-encoder/requirem…
MED GHSA-fpwr-67px-3qhx transformers: GHSA-fpwr-67px-3qhx ch02/02_bonus_bytepair-encoder/requirem…
MED GHSA-9356-575x-2w9m transformers: GHSA-9356-575x-2w9m ch02/02_bonus_bytepair-encoder/requirem…
MED GHSA-6rvg-6v2m-4j46 transformers: GHSA-6rvg-6v2m-4j46 ch02/02_bonus_bytepair-encoder/requirem…
MED GHSA-69w3-r845-3855 transformers: GHSA-69w3-r845-3855 ch02/02_bonus_bytepair-encoder/requirem…
MED GHSA-59p9-h35m-wg4g transformers: GHSA-59p9-h35m-wg4g ch02/02_bonus_bytepair-encoder/requirem…
MED GHSA-4w7r-h757-3r74 transformers: GHSA-4w7r-h757-3r74 ch02/02_bonus_bytepair-encoder/requirem…
MED GHSA-37mw-44qp-f5jm transformers: GHSA-37mw-44qp-f5jm ch02/02_bonus_bytepair-encoder/requirem…
MED DKR013 Dockerfile ADD downloads remote content setup/03_optional-docker-environment/.d…:11
MED DKR001 Docker final stage has no non-root USER setup/03_optional-docker-environment/.d…:2
MED AIC001 Parallel implementation file sits beside a canonical file ch04/03_kv-cache/gpt_with_kv_cache_opti…:1
MED AGT015 Remote install command pipes network code directly to a shell setup/01_optional-python-setup-preferen…:33
MED AGT015 Remote install command pipes network code directly to a shell setup/01_optional-python-setup-preferen…:23
MED AGT015 Remote install command pipes network code directly to a shell .github/workflows/pep8-linter.yml:20
MED AGT015 Remote install command pipes network code directly to a shell .github/workflows/check-spelling-errors…:25
MED AGT015 Remote install command pipes network code directly to a shell .github/workflows/check-links.yml:25
MED AGT015 Remote install command pipes network code directly to a shell .github/workflows/basic-tests-pytorch-r…:34
MED AGT015 Remote install command pipes network code directly to a shell .github/workflows/basic-tests-old-pytor…:38
MED AGT015 Remote install command pipes network code directly to a shell .github/workflows/basic-tests-macos-uv.…:41
MED AGT015 Remote install command pipes network code directly to a shell .github/workflows/basic-tests-linux-uv.…:41
MED AGT015 Remote install command pipes network code directly to a shell .github/workflows/basic-tests-latest-py…:34
LOW SEC124 [SEC124] TOCTOU file access (os.access then open): Check-then-use file pattern (access/ex… ch05/18_muon/gpt_train_muon.py:187
LOW SEC124 [SEC124] TOCTOU file access (os.access then open): Check-then-use file pattern (access/ex… ch05/18_muon/gpt_train.py:143
LOW SEC124 [SEC124] TOCTOU file access (os.access then open): Check-then-use file pattern (access/ex… ch05/01_main-chapter-code/gpt_train.py:143
LOW COMP001 [COMP001] High cognitive complexity: Function `download_file` has cognitive complexity 13… appendix-E/01_main-chapter-code/gpt_dow…:47
LOW COMP001 [COMP001] High cognitive complexity: Function `calc_loss_loader` has cognitive complexity… appendix-D/01_main-chapter-code/previou…:256
LOW DEPCUR-GHA GitHub Action `actions/setup-python@v6` is minor version(s) behind (latest v6.2.0) .github/workflows/basic-tests-pytorch-r…:28
LOW DEPCUR-GHA GitHub Action `actions/setup-python@v6` is minor version(s) behind (latest v6.2.0) .github/workflows/basic-tests-macos-uv.…:34
LOW DEPCUR-GHA GitHub Action `actions/setup-python@v6` is minor version(s) behind (latest v6.2.0) .github/workflows/basic-tests-pip.yml:34
LOW DEPCUR-GHA GitHub Action `actions/setup-python@v6` is minor version(s) behind (latest v6.2.0) .github/workflows/basic-tests-windows-u…:30
LOW DEPCUR-GHA GitHub Action `actions/setup-python@v6` is minor version(s) behind (latest v6.2.0) .github/workflows/check-spelling-errors…:19
LOW DEPCUR-GHA GitHub Action `actions/setup-python@v6` is minor version(s) behind (latest v6.2.0) .github/workflows/pep8-linter.yml:15
LOW DEPCUR-GHA GitHub Action `actions/setup-python@v6` is minor version(s) behind (latest v6.2.0) .github/workflows/check-links.yml:19
LOW DEPCUR-GHA GitHub Action `actions/setup-python@v6` is minor version(s) behind (latest v6.2.0) .github/workflows/basic-tests-linux-uv.…:34
LOW DEPCUR-GHA GitHub Action `actions/setup-python@v6` is minor version(s) behind (latest v6.2.0) .github/workflows/basic-tests-latest-py…:28
LOW DEPCUR-GHA GitHub Action `actions/setup-python@v6` is minor version(s) behind (latest v6.2.0) .github/workflows/basic-tests-old-pytor…:32
LOW GHSA-g7vv-2v7x-gj9p tqdm: GHSA-g7vv-2v7x-gj9p requirements.txt
LOW GHSA-vvfj-2jqx-52jm jupyterlab: GHSA-vvfj-2jqx-52jm requirements.txt
LOW GHSA-g7vv-2v7x-gj9p tqdm: GHSA-g7vv-2v7x-gj9p ch07/02_dataset-utilities/requirements-…
LOW GHSA-v492-6xx2-p57g chainlit: GHSA-v492-6xx2-p57g ch05/06_user_interface/requirements-ext…
LOW GHSA-phhr-52qp-3mj4 transformers: GHSA-phhr-52qp-3mj4 ch02/02_bonus_bytepair-encoder/requirem…
LOW GHSA-37q5-v5qm-c9v8 transformers: GHSA-37q5-v5qm-c9v8 ch02/02_bonus_bytepair-encoder/requirem…
LOW AIC003 Duplicated implementation block across source files ch04/05_mla/gpt_with_kv_mla.py:71
LOW AIC003 Duplicated implementation block across source files ch04/05_mla/gpt_with_kv_mla.py:66
LOW AIC003 Duplicated implementation block across source files ch04/05_mla/gpt_with_kv_mla.py:54
LOW AIC003 Duplicated implementation block across source files ch04/05_mla/gpt_with_kv_mla.py:50
LOW AIC003 Duplicated implementation block across source files ch04/05_mla/gpt_with_kv_mha.py:68
LOW AIC003 Duplicated implementation block across source files ch04/05_mla/gpt_with_kv_mha.py:41
LOW AIC003 Duplicated implementation block across source files ch04/05_mla/gpt_with_kv_mha.py:18
LOW AIC003 Duplicated implementation block across source files ch04/05_mla/gpt_with_kv_mha.py:1
LOW AIC003 Duplicated implementation block across source files ch04/04_gqa/gpt_with_kv_mha.py:68
LOW AIC003 Duplicated implementation block across source files ch04/04_gqa/gpt_with_kv_mha.py:41
LOW AIC003 Duplicated implementation block across source files ch04/04_gqa/gpt_with_kv_mha.py:18
LOW AIC003 Duplicated implementation block across source files ch04/04_gqa/gpt_with_kv_gqa.py:76
LOW AIC003 Duplicated implementation block across source files ch04/04_gqa/gpt_with_kv_gqa.py:68
LOW AIC003 Duplicated implementation block across source files ch04/03_kv-cache/gpt_with_kv_cache.py:92
LOW AIC003 Duplicated implementation block across source files ch04/03_kv-cache/gpt_with_kv_cache.py:65
LOW AIC003 Duplicated implementation block across source files ch04/03_kv-cache/gpt_with_kv_cache.py:5
LOW AIC003 Duplicated implementation block across source files ch04/03_kv-cache/gpt_with_kv_cache.py:1
LOW AIC003 Duplicated implementation block across source files ch04/03_kv-cache/gpt_ch04.py:42
LOW AIC003 Duplicated implementation block across source files ch04/03_kv-cache/gpt_ch04.py:27
LOW AIC003 Duplicated implementation block across source files ch04/03_kv-cache/gpt_ch04.py:5
LOW AIC003 Duplicated implementation block across source files ch04/01_main-chapter-code/previous_chap…:18
LOW AIC003 Duplicated implementation block across source files ch04/01_main-chapter-code/previous_chap…:5
LOW AIC003 Duplicated implementation block across source files ch04/01_main-chapter-code/previous_chap…:1
LOW AIC003 Duplicated implementation block across source files ch04/01_main-chapter-code/gpt.py:59
LOW AIC003 Duplicated implementation block across source files ch04/01_main-chapter-code/gpt.py:5
LOW AIC003 Duplicated implementation block across source files ch04/01_main-chapter-code/gpt.py:1
LOW AIC003 Duplicated implementation block across source files appendix-E/01_main-chapter-code/previou…:66
LOW AIC003 Duplicated implementation block across source files appendix-E/01_main-chapter-code/previou…:12
LOW AIC003 Duplicated implementation block across source files appendix-D/01_main-chapter-code/previou…:60
LOW AIC003 Duplicated implementation block across source files appendix-A/01_main-chapter-code/DDP-scr…:17
LOW DKR012 Dockerfile keeps pip download cache setup/03_optional-docker-environment/.d…:17
LOW DKR011 Dockerfile installs recommended OS packages setup/03_optional-docker-environment/.d…:5
LOW AIC005 Duplicate top-level symbol appears in a patch-style file ch04/03_kv-cache/gpt_with_kv_cache_opti…:1
INFO MINED043 [MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle cr… ch06/03_bonus_imdb-classification/downl…:86
INFO MINED049 [MINED049] Print Pii: Logging password/token/email/ssn directly to stdout. ch04/07_moe/memory_estimator_moe.py:120
INFO MINED049 [MINED049] Print Pii: Logging password/token/email/ssn directly to stdout. ch04/03_kv-cache/gpt_ch04.py:245
INFO MINED049 [MINED049] Print Pii: Logging password/token/email/ssn directly to stdout. ch02/05_bpe-from-scratch/tests.py:146
INFO MINED067 [MINED067] Python Requests No Timeout: requests.get/post/etc. without timeout= can hang f… ch05/01_main-chapter-code/gpt_download.…:50
INFO MINED067 [MINED067] Python Requests No Timeout: requests.get/post/etc. without timeout= can hang f… ch02/02_bonus_bytepair-encoder/bpe_open…:156
INFO MINED067 [MINED067] Python Requests No Timeout: requests.get/post/etc. without timeout= can hang f… appendix-E/01_main-chapter-code/gpt_dow…:49
INFO MINED050 [MINED050] Stub Only Function: Function declared but body is just pass, return None, rais… ch06/01_main-chapter-code/gpt_download.…:81
INFO MINED050 [MINED050] Stub Only Function: Function declared but body is just pass, return None, rais… ch05/01_main-chapter-code/gpt_download.…:82
INFO MINED050 [MINED050] Stub Only Function: Function declared but body is just pass, return None, rais… appendix-E/01_main-chapter-code/gpt_dow…:81
INFO DEPCUR-GHA GitHub Action `actions/checkout@v6` is patch version(s) behind (latest v6.0.3) .github/workflows/basic-tests-pytorch-r…:25
INFO DEPCUR-GHA GitHub Action `actions/checkout@v6` is patch version(s) behind (latest v6.0.3) .github/workflows/basic-tests-macos-uv.…:31
INFO DEPCUR-GHA GitHub Action `actions/checkout@v6` is patch version(s) behind (latest v6.0.3) .github/workflows/basic-tests-pip.yml:31
INFO DEPCUR-GHA GitHub Action `actions/checkout@v6` is patch version(s) behind (latest v6.0.3) .github/workflows/basic-tests-windows-u…:27
INFO DEPCUR-GHA GitHub Action `actions/checkout@v6` is patch version(s) behind (latest v6.0.3) .github/workflows/check-spelling-errors…:16
INFO DEPCUR-GHA GitHub Action `actions/checkout@v6` is patch version(s) behind (latest v6.0.3) .github/workflows/pep8-linter.yml:13
INFO DEPCUR-GHA GitHub Action `actions/checkout@v6` is patch version(s) behind (latest v6.0.3) .github/workflows/check-links.yml:16
INFO DEPCUR-GHA GitHub Action `actions/checkout@v6` is patch version(s) behind (latest v6.0.3) .github/workflows/basic-tests-linux-uv.…:31
INFO DEPCUR-GHA GitHub Action `actions/checkout@v6` is patch version(s) behind (latest v6.0.3) .github/workflows/basic-tests-pixi.yml:34
INFO DEPCUR-GHA GitHub Action `actions/checkout@v6` is patch version(s) behind (latest v6.0.3) .github/workflows/basic-tests-latest-py…:25
INFO DEPCUR-GHA GitHub Action `actions/checkout@v6` is patch version(s) behind (latest v6.0.3) .github/workflows/basic-tests-old-pytor…:29
Reset to top 5 200 findings available (after auto-suppression of test files + won't-fix)

Issue body (markdown)

## Code-quality scan: `rasbt/LLMs-from-scratch`

**Score: 65/100 (C+)**  ·  262 findings  ·  scanned 2026-06-05 06:49 UTC  ·  32,984 LOC

| Severity | Count |
|---|---|
| CRITICAL | 3 |
| HIGH | 105 |
| MEDIUM | 45 |
| LOW | 54 |

📊 [Full filterable report](https://repobility.com/scan/0fcda472-f82b-4312-90c9-2da9b44309aa/)  ·  ![scorecard](https://repobility.com/scan/0fcda472-f82b-4312-90c9-2da9b44309aa/report.png?v=1780642190-s2)

### Top findings

1. **HIGH** `SEC080` — Python: tarfile.extractall without filter
   `ch06/03_bonus_imdb-classification/download_prepare_dataset.py:46` · A05:2021 Security Misconfiguration
2. **HIGH** `SEC035` — Unbounded Resource Allocation — DoS risk
   `ch06/03_bonus_imdb-classification/download_prepare_dataset.py:46` · CWE-770 · A04:2021 Insecure Design (DoS)
3. **HIGH** `MINED006` — Overcatch Baseexception
   `ch05/05_bonus_hparam_tuning/hparam_search.py:206` · CWE-705 · ✓ Repobility
4. **HIGH** `MINED006` — Overcatch Baseexception
   `ch05/03_bonus_pretraining_on_gutenberg/pretraining_simple.py:141` · CWE-705 · ✓ Repobility
5. **HIGH** `SEC085` — JS: child_process.exec with non-literal
   `pkg/llms_from_scratch/utils.py:149`

---

**Security note**: this issue is public. If any flagged finding is a real, exploitable vulnerability, please redirect to your `SECURITY.md` policy or open a [private security advisory](https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing-information-about-vulnerabilities/privately-reporting-a-security-vulnerability) instead. We're happy to close this and re-submit privately.

---

_Filed automatically. Close this issue if not useful — we won't refile. Full report: https://repobility.com/scan/0fcda472-f82b-4312-90c9-2da9b44309aa/_
Megaproject â high spam risk
Could not determine 'rasbt/LLMs-from-scratch' star count (GitHub API rate-limited or unreachable). When in doubt about repo size, prefer opening a focused PR or a discussion rather than an issue.
Already filed
150/284 findings (53%) on this scan are already flagged as test-file, won't-fix, or suppressed. The scan is too noisy to file as a single issue. Curate down to specific actionable findings, or address the FP source first.

The button opens GitHubâs new-issue page in a new tab. You will see the title + body pre-filled â review, edit if you want, then click GitHubâs "Submit new issue" button. Repobility never posts anything on your behalf.

For real security findings on big repos: use the project's SECURITY.md or private advisory flow instead of a public issue.