PyPI / uv / 0.13.5

uv 0.13.5

Source
https://github.com/astral-sh/uv
Tag scanned
0.13.5
Compared with
0.13.4 (1 signals introduced since)
Files
1178 scanned, 654 skipped (binary, oversized, or unrecognised)
Signals
0 critical · 0 warn · 119 info
Scan time
68.7 s
LLM review
Reviewed by claude-haiku-5-5 (Anthropic): 80 of 80 warn and critical signals; 80 demoted to info.
Disclude version
4.1.0
Scanned (UTC)
2026-10-22 12:30

Signals

Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.

  1. info warn → info by review dynamic-execution docs/getting-started/installation.md:28:5 new in this release

    [markup prose] pipeline feeds into `sh` — piped data is executed as shell code (ast pass, confidence 0.80)

        $ curl -LsSf https://astral.sh/uv/0.13.5/install.sh | sh
    likely benign LLM, confidence 0.85 Documentation showing a version-pinned curl-to-sh install command for uv.
    Reasoning

    A versioned pin of the same official installer script, shown in project docs for reproducible installs.

  2. info warn → info by review dynamic-execution .github/workflows/build-release-binaries.yml:82:13

    [embedded bash] command name is a variable (`$MODULE_NAME`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

                pip install /dist/${PACKAGE_NAME}-*.tar.gz --force-reinstall --config-settings=maturin.build-args=--locked
                ${MODULE_NAME} --help
                python -m ${MODULE_NAME} --help
                uvx --help
    likely benign LLM, confidence 0.90 Release-build CI step that runs the built package's CLI via a configured module name variable.
    Reasoning

    This is a release workflow that installs the freshly built package and smoke-tests its CLI with `${MODULE_NAME} --help`. The variable is a workflow-level value set by the repository's own CI config, not attacker-controlled input. The pass flagged a variable command name, which is normal in CI scripts and not obfuscation.

  3. info warn → info by review dynamic-execution .github/workflows/build-release-binaries.yml:114:13

    [embedded bash] command name is a variable (`$MODULE_NAME`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

                pip install /dist/${PACKAGE_NAME}_build-*.tar.gz --force-reinstall --config-settings=maturin.build-args=--locked
                ${MODULE_NAME}-build --help
                python -m ${MODULE_NAME}_build --help
    likely benign LLM, confidence 0.90 CI smoke test that runs the built uv-build helper using a repository-defined variable.
    Reasoning

    Same pattern as the other smoke-test steps: a repository-defined module name variable is used to run the just-built `-build` helper for a verification check. No external input or encoded payload is involved.

  4. info warn → info by review dynamic-execution .github/workflows/build-release-binaries.yml:249:11

    [embedded bash] command name is a variable (`$MODULE_NAME`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

              pip install ${PACKAGE_NAME} --no-index --find-links dist/ --force-reinstall
              ${MODULE_NAME} --help
              python -m ${MODULE_NAME} --help
              uvx --help
    likely benign LLM, confidence 0.90 Release verification step that installs the local package and runs its CLI.
    Reasoning

    This is a repeated install-and-verify step in the release pipeline. It installs the package from a local dist directory and runs its CLI. The variable command name is repository-controlled, so the dynamic-execution flag is a false positive for CI scripting.

  5. info warn → info by review dynamic-execution .github/workflows/build-release-binaries.yml:292:11

    [embedded bash] command name is a variable (`$MODULE_NAME`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

              pip install ${PACKAGE_NAME}_build --no-index --find-links crates/uv-build/dist --force-reinstall
              ${MODULE_NAME}-build --help
              python -m ${MODULE_NAME}_build --help
    likely benign LLM, confidence 0.90 Release verification step for the uv-build package using local artifacts.
    Reasoning

    This is the uv-build variant of the install-and-smoke-test step. It installs from a local build directory and runs a repo-defined command name. No attacker-controlled input or obfuscation appears.

  6. info warn → info by review dynamic-execution .github/workflows/build-release-binaries.yml:334:11

    [embedded bash] command name is a variable (`$version`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

              # Namespace runners do not include winget.
              $version = '3.02'
              $sha256 = '0DDB40310861EB29F4D649FEB9466779982A2D251C0DB2B9CF0D21CF591171F3'
              $installer = Join-Path $env:RUNNER_TEMP "nasm-${version}-installer-x64.exe"
    likely benign LLM, confidence 0.85 Windows CI step that sets a pinned NASM version used to build a download URL.
    Reasoning

    This is PowerShell in a Windows runner, not bash. The `$version` variable is a hardcoded pinned NASM version used to build a download URL. The pass misclassified the language. Pinning and downloading from the official nasm.us host is a standard build-dependency pattern.

  7. info warn → info by review dynamic-execution .github/workflows/build-release-binaries.yml:335:11

    [embedded bash] command name is a variable (`$sha256`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

              $version = '3.02'
              $sha256 = '0DDB40310861EB29F4D649FEB9466779982A2D251C0DB2B9CF0D21CF591171F3'
              $installer = Join-Path $env:RUNNER_TEMP "nasm-${version}-installer-x64.exe"
    likely benign LLM, confidence 0.85 Windows CI step that pins the expected SHA-256 of the NASM installer.
    Reasoning

    `$sha256` is a hardcoded checksum for the pinned NASM installer, which is a supply-chain integrity control and not a concealment technique. The flag comes from the PowerShell line being analyzed as bash. The snippet doesn't show the verification step, so a small doubt remains about whether the hash is actually checked.

  8. info warn → info by review dynamic-execution .github/workflows/build-release-binaries.yml:336:11

    [embedded bash] command name is a variable (`$installer`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

              $sha256 = '0DDB40310861EB29F4D649FEB9466779982A2D251C0DB2B9CF0D21CF591171F3'
              $installer = Join-Path $env:RUNNER_TEMP "nasm-${version}-installer-x64.exe"
              Invoke-WebRequest "https://www.nasm.us/pub/nasm/releasebuilds/$version/win64/nasm-${version}-installer-x64.exe" -OutFile $installer
    likely benign LLM, confidence 0.85 Windows CI step that downloads the pinned NASM installer from the official site.
    Reasoning

    The step downloads the pinned NASM installer from the official nasm.us release path into RUNNER_TEMP. The flagged `$installer` variable is a local PowerShell path. This is a standard build-toolchain fetch, and the bash-language flag is a false positive.

  9. info warn → info by review dynamic-execution .github/workflows/build-release-binaries.yml:341:11

    [embedded bash] command name is a variable (`$installation`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

              }
              $installation = Start-Process $installer -ArgumentList '/S' -Wait -PassThru
              if ($installation.ExitCode -ne 0) {
                throw "NASM installation failed: $($installation.ExitCode)"
    likely benign LLM, confidence 0.85 Windows CI step that silently installs NASM and checks the exit code.
    Reasoning

    This runs the downloaded NASM installer silently with `/S` and checks the exit code. That is a normal unattended install in CI. The `$installation` variable is a PowerShell local, and the finding misreads the language.

  10. info warn → info by review dynamic-execution .github/workflows/build-release-binaries.yml:342:15

    [embedded bash] command name is a variable (`$installation`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

              $installation = Start-Process $installer -ArgumentList '/S' -Wait -PassThru
              if ($installation.ExitCode -ne 0) {
                throw "NASM installation failed: $($installation.ExitCode)"
              }
    likely benign LLM, confidence 0.85 Windows CI step that aborts the build if the NASM installer fails.
    Reasoning

    This is an exit-code check on the NASM installer process in PowerShell, which aborts the build if the install fails. It is ordinary error handling, and the flag is a language-misclassification false positive.

  11. info warn → info by review dynamic-execution .github/workflows/build-release-binaries.yml:343:48

    [embedded bash] command name is a variable (`$installation`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

              if ($installation.ExitCode -ne 0) {
                throw "NASM installation failed: $($installation.ExitCode)"
              }
              echo "C:\Program Files\NASM" | Out-File -FilePath $env:GITHUB_PATH -Append
    likely benign LLM, confidence 0.85 Windows CI step that adds NASM's install directory to the runner PATH.
    Reasoning

    This appends the NASM install directory to GITHUB_PATH so later steps can find the tools. It is a standard GitHub Actions pattern for toolchain setup, and the flagged variable is a PowerShell local, not an attacker-controlled command.

  12. info critical → info by review dynamic-execution .github/workflows/build-release-binaries.yml:384:13

    [embedded bash] command name is a variable (`$LLVM_READOBJ`) and `LLVM_READOBJ` is assigned the output of a command — executed command determined at runtime (ast pass, confidence 0.90)

                IMPORTS_FILE="$RUNNER_TEMP/${binary}-coff-imports.txt"
                "$LLVM_READOBJ" --coff-imports "target/${{ matrix.platform.target }}/release/${binary}.exe" > "$IMPORTS_FILE"
    
                if grep -Eiq 'vcruntime[[:digit:]_]*\.dll|ucrtbase\.dll|api-ms-win-crt-' "$IMPORTS_FILE"; then
    likely benign LLM, confidence 0.85 CI step that runs llvm-readobj on a freshly built Windows binary to list its imports.
    Reasoning

    This is the uv release workflow. LLVM_READOBJ is a tool path set from llvm tooling in CI and used to inspect a COFF import table of the just-built binary, which is a legitimate Windows CRT dependency check. The variable-command flag is a generic CI pattern, not a dropper.

  13. info warn → info by review dynamic-execution .github/workflows/build-release-binaries.yml:397:11

    [embedded bash] command name is a variable (`$MODULE_NAME`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

              pip install ${PACKAGE_NAME} --no-index --find-links dist/ --force-reinstall
              ${MODULE_NAME} --help
              python -m ${MODULE_NAME} --help
              uvx --help
    likely benign LLM, confidence 0.85 Release smoke test invoking the built package's CLI via an env-provided module name.
    Reasoning

    Smoke-test step in a release workflow running the packaged module's --help after installing from local dist. MODULE_NAME is a workflow-set env value from the project's own build matrix; the variable command is a normal pattern for this kind of test.

  14. info warn → info by review dynamic-execution .github/workflows/build-release-binaries.yml:440:11

    [embedded bash] command name is a variable (`$MODULE_NAME`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

              pip install ${PACKAGE_NAME}_build --no-index --find-links crates/uv-build/dist --force-reinstall
              ${MODULE_NAME}-build --help
              python -m ${MODULE_NAME}_build --help
    likely benign LLM, confidence 0.85 Release smoke test for the uv-build wheel using a workflow-defined module name.
    Reasoning

    Same release smoke-test pattern for the uv-build package; the variable is a project-defined env value and the commands only run --help on locally built artifacts.

  15. info warn → info by review dynamic-execution .github/workflows/build-release-binaries.yml:467:11

    [embedded bash] command name is a variable (`$MODULE_NAME`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

              pip install ${PACKAGE_NAME} --no-index --find-links dist/ --force-reinstall
              ${MODULE_NAME} --help
              python -m ${MODULE_NAME} --help
              uvx --help
    likely benign LLM, confidence 0.85 Release smoke test running the built package's --help via a workflow-defined variable.
    Reasoning

    Repeated release smoke test of the built package's CLI; no network fetch or untrusted input drives the command name.

  16. info warn → info by review dynamic-execution .github/workflows/build-release-binaries.yml:475:11

    [embedded bash] command name is a variable (`$MODULE_NAME`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

              pip install ${PACKAGE_NAME}_build --no-index --find-links dist/ --force-reinstall
              ${MODULE_NAME}-build --help
              python -m ${MODULE_NAME}_build --help
    likely benign LLM, confidence 0.85 Release smoke test for the uv-build package from local artifacts.
    Reasoning

    Release smoke test of the uv-build wheel from local dist; the variable is an internal CI configuration value.

  17. info warn → info by review dynamic-execution .github/workflows/build-release-binaries.yml:561:11

    [embedded bash] command name is a variable (`$MODULE_NAME`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

              pip install ${PACKAGE_NAME} --no-index --find-links dist/ --force-reinstall
              ${MODULE_NAME} --help
              python -m ${MODULE_NAME} --help
              uvx --help
    likely benign LLM, confidence 0.85 Release smoke test invoking the built package's CLI.
    Reasoning

    Same release smoke-test pattern, running the built package's CLI from locally built artifacts with a project-defined module name.

  18. info warn → info by review dynamic-execution .github/workflows/build-release-binaries.yml:622:11

    [embedded bash] command name is a variable (`$MODULE_NAME`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

              pip install ${PACKAGE_NAME}_build --no-index --find-links crates/uv-build/dist --force-reinstall
              ${MODULE_NAME}-build --help
              python -m ${MODULE_NAME}_build --help
    likely benign LLM, confidence 0.85 Release smoke test for the uv-build wheel.
    Reasoning

    Smoke test of the uv-build wheel with local artifacts and a workflow-defined module name; no sign of malicious intent.

  19. info warn → info by review dynamic-execution .github/workflows/build-release-binaries.yml:720:13

    [embedded bash] command name is a variable (`$MODULE_NAME`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

                pip install ${PACKAGE_NAME} --no-index --find-links /dist --force-reinstall
                ${MODULE_NAME} --help
                # TODO(konsti): Enable this test on all platforms, currently `find_uv_bin` is failing to discover uv here.
                # python -m ${MODULE_NAME} --help
    likely benign LLM, confidence 0.85 Post-install verification of the uv package's CLI in a release workflow.
    Reasoning

    Release verification step testing the installed package's CLI. The variable is a CI-configured name, and the surrounding TODO comments show ordinary maintenance work.

  20. info warn → info by review dynamic-execution .github/workflows/build-release-binaries.yml:775:13

    [embedded bash] command name is a variable (`$MODULE_NAME`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

                pip install ${PACKAGE_NAME}_build --no-index --find-links /dist --force-reinstall
                ${MODULE_NAME}-build --help
                # TODO(konsti): Enable this test on all platforms, currently `find_uv_bin` is failing to discover uv here.
                # python -m ${MODULE_NAME}_build --help
    likely benign LLM, confidence 0.85 Post-install verification of the uv-build package in a release workflow.
    Reasoning

    Routine release verification of the uv-build package with locally built artifacts; the commented-out lines and TODO indicate normal project maintenance.

  21. info warn → info by review dynamic-execution .github/workflows/build-release-binaries.yml:837:13

    [embedded bash] command name is a variable (`$MODULE_NAME`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

                pip install ${PACKAGE_NAME} --no-index --find-links /dist --force-reinstall
                ${MODULE_NAME} --help
                # TODO(konsti): Enable this test on all platforms, currently `find_uv_bin` is failing to discover uv here.
                # python -m ${MODULE_NAME} --help
    likely benign LLM, confidence 0.85 Post-install verification of the package CLI in a release workflow.
    Reasoning

    Same post-install smoke test pattern in a release workflow, running the package's own CLI with an internally configured module name.

  22. info warn → info by review dynamic-execution .github/workflows/build-release-binaries.yml:892:13

    [embedded bash] command name is a variable (`$MODULE_NAME`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

                pip install ${PACKAGE_NAME}-build --no-index --find-links /dist --force-reinstall
                ${MODULE_NAME}-build --help
                # TODO(konsti): Enable this test on all platforms, currently `find_uv_bin` is failing to discover uv here.
                # python -m ${MODULE_NAME}-build --help
    likely benign LLM, confidence 0.85 CI smoke test that runs the built package's entry point via a MODULE_NAME variable.
    Reasoning

    The command name comes from a workflow-level variable used to smoke-test a freshly built wheel's CLI. Expanding a variable in CI is a common pattern and the snippet has no sign of attacker-controlled input. The variable is defined elsewhere in the workflow, which the snippet does not show.

  23. info warn → info by review dynamic-execution .github/workflows/build-release-binaries.yml:1065:13

    [embedded bash] command name is a variable (`$MODULE_NAME`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

                pip install ${PACKAGE_NAME} --no-index --find-links /dist --force-reinstall
                ${MODULE_NAME} --help
                # TODO(konsti): Enable this test on all platforms, currently `find_uv_bin` is failing to discover uv here.
                # python -m ${MODULE_NAME} --help
    likely benign LLM, confidence 0.85 Release CI step invoking the installed package's CLI via a variable name.
    Reasoning

    Same release-workflow smoke test pattern, running the installed package's command after a local pip install from /dist. The variable is a configured name, not external input, so this is ordinary build verification.

  24. info warn → info by review dynamic-execution .github/workflows/build-release-binaries.yml:1120:13

    [embedded bash] command name is a variable (`$MODULE_NAME`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

                pip install ${PACKAGE_NAME}-build --no-index --find-links /dist --force-reinstall
                ${MODULE_NAME}-build --help
                # TODO(konsti): Enable this test on all platforms, currently `find_uv_bin` is failing to discover uv here.
                # python -m ${MODULE_NAME}-build --help
    likely benign LLM, confidence 0.85 Build-verification step running a variable-named CLI from the built wheel.
    Reasoning

    Same pattern as the other release-build smoke tests: a variable-named command run after installing the locally built wheel. Nothing in the snippet indicates untrusted control of the value.

  25. info warn → info by review dynamic-execution .github/workflows/build-release-binaries.yml:1175:13

    [embedded bash] command name is a variable (`$MODULE_NAME`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

                .venv/bin/pip install ${PACKAGE_NAME} --no-index --find-links /dist/ --force-reinstall
                .venv/bin/${MODULE_NAME} --help
                # TODO(konsti): Enable this test on all platforms, currently `find_uv_bin` is failing to discover uv here.
                # .venv/bin/python -m ${MODULE_NAME} --help
    likely benign LLM, confidence 0.85 Venv-based release smoke test executing the packaged CLI via a variable.
    Reasoning

    A venv-based smoke test running the package's CLI through a variable name. This is routine CI verification of a release artifact.

  26. info warn → info by review dynamic-execution .github/workflows/build-release-binaries.yml:1230:13

    [embedded bash] command name is a variable (`$MODULE_NAME`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

                .venv/bin/pip install ${PACKAGE_NAME}-build --no-index --find-links /dist --force-reinstall
                .venv/bin/${MODULE_NAME}-build --help
                # TODO(konsti): Enable this test on all platforms, currently `find_uv_bin` is failing to discover uv here.
    likely benign LLM, confidence 0.85 Release CI check running the build helper's --help via a variable name.
    Reasoning

    Routine release-workflow check that the installed build helper responds to --help. The variable comes from workflow configuration and the snippet shows no external data flow.

  27. info warn → info by review dynamic-execution .github/workflows/build-release-binaries.yml:1300:13

    [embedded bash] command name is a variable (`$MODULE_NAME`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

                .venv/bin/pip install ${PACKAGE_NAME} --no-index --find-links /dist --force-reinstall
                .venv/bin/${MODULE_NAME} --help
                # TODO(konsti): Enable this test on all platforms, currently `find_uv_bin` is failing to discover uv here.
                # .venv/bin/python -m ${MODULE_NAME} --help
    likely benign LLM, confidence 0.85 Smoke test of the installed package command in a release workflow.
    Reasoning

    Same venv smoke-test pattern executing the packaged command by configured name. It is a normal verification step in a release pipeline.

  28. info warn → info by review dynamic-execution .github/workflows/build-release-binaries.yml:1316:13

    [embedded bash] command name is a variable (`$MODULE_NAME`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

                pip install ${PACKAGE_NAME} --no-index --find-links /dist --force-reinstall
                ${MODULE_NAME} --help
                # TODO(konsti): Enable this test on all platforms, currently `find_uv_bin` is failing to discover uv here.
                # python -m ${MODULE_NAME} --help
    likely benign LLM, confidence 0.85 Release CI invoking the installed CLI for a --help sanity check.
    Reasoning

    Routine check that the freshly installed CLI runs, with the name supplied by workflow configuration. No sign of injection or hidden payload.

  29. info warn → info by review dynamic-execution .github/workflows/build-release-binaries.yml:1372:13

    [embedded bash] command name is a variable (`$MODULE_NAME`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

                .venv/bin/pip install ${PACKAGE_NAME}-build --no-index --find-links /dist --force-reinstall
                .venv/bin/${MODULE_NAME}-build --help
                # TODO(konsti): Enable this test on all platforms, currently `find_uv_bin` is failing to discover uv here.
    likely benign LLM, confidence 0.85 Release workflow sanity check of the build helper binary via a variable.
    Reasoning

    Same release smoke-test pattern for the build helper, running a configured command name after a local wheel install. Benign build verification.

  30. info warn → info by review dynamic-execution .github/workflows/build-release-binaries.yml:1387:13

    [embedded bash] command name is a variable (`$MODULE_NAME`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

                pip install ${PACKAGE_NAME}-build --no-index --find-links /dist --force-reinstall
                ${MODULE_NAME}-build --help
                # TODO(konsti): Enable this test on all platforms, currently `find_uv_bin` is failing to discover uv here.
                # python -m ${MODULE_NAME}_build --help
    likely benign LLM, confidence 0.85 Release CI step checking the build helper runs, with a configured command name.
    Reasoning

    Final variant of the same release smoke test, checking the build helper's --help output. The variable is configuration-defined and the step is ordinary CI verification.

  31. info warn → info by review dynamic-execution .github/workflows/check-lint.yml:207:11

    [embedded bash] pipeline feeds into `sh` — piped data is executed as shell code (ast pass, confidence 0.80)

              curl --proto '=https' --tlsv1.2 -LsSf \
                "https://github.com/astral-sh/hawk/releases/download/${HAWK_VERSION}/cargo-hawk-installer.sh" | sh
    likely benign LLM, confidence 0.80 CI step installing a pinned tool by piping the vendor's release installer script to sh.
    Reasoning

    The step downloads an installer script over HTTPS with TLS 1.2 enforced from a versioned astral-sh GitHub release and pipes it to sh. Curl-to-shell is a risky pattern in general, but this is a common, pinned, first-party install method in a lint workflow, with no obfuscation or hidden logic.

  32. [embedded bash] compression ratio 0.871 is >2σ above file mean 0.614 (outside string/comment) (raw pass, confidence 0.25)

              if [ -n "$UPSTREAM_NUMBER" ]; then
                comment="$comment An upstream pull request was already created at [#$UPSTREAM_NUMBER](https://github.com/astral-sh/uv/pull/$UPSTREAM_NUMBER)."
              fi
              marker="<!-- uv-promotion-rejection:$APPROVAL_ID:$EXPECTED_HEAD_SHA -->"
  33. info warn → info by review dynamic-execution .github/workflows/test-ecosystem.yml:68:15

    [embedded bash] command name is a variable (`$cmd`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

                if [[ $cmd == uv* ]]; then
                  ./$cmd
                else
                  $cmd
    likely benign LLM, confidence 0.80 Bash loop in a CI test workflow runs a command name taken from a variable.
    Reasoning

    The variable command name is part of a loop over test commands in a CI workflow. The value is set by the workflow's own test matrix, not by an attacker-controlled source, and the branch that runs ./$cmd only applies to uv commands. This is a normal test-runner pattern.

  34. info warn → info by review dynamic-execution .github/workflows/test-ecosystem.yml:70:15

    [embedded bash] command name is a variable (`$cmd`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

                else
                  $cmd
                fi
              done
    likely benign LLM, confidence 0.80 Else branch of the same CI test loop executes the variable command.
    Reasoning

    Same loop as the preceding finding: the else branch runs the command held in $cmd, which the workflow sets for ecosystem testing. Nothing in the snippet points to hidden or remote command selection.

  35. info warn → info by review dynamic-execution .github/workflows/test-integration.yml:378:13

    [embedded bash] command name is a variable (`$env`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

              # Call Python Install Manager's py.exe by full path to avoid legacy py.exe
              & "$env:LOCALAPPDATA\Microsoft\WindowsApps\py.exe" install 3.14
    dismissed LLM, confidence 0.92 PowerShell call to py.exe by full path in a Windows CI step.
    Reasoning

    The flagged token is a PowerShell environment variable reference ($env:LOCALAPPDATA) used in a full path to py.exe. This is an ordinary Windows CI step that invokes the Python Install Manager, and the parser misread the PowerShell syntax as a bash variable command.

  36. [embedded bash] command name is a variable (`$all_found`) that this file sets only to plain text (ast pass, confidence 0.40)

    
              if ! $all_found; then
                echo "One or more expected executables were not found."
                exit 1
  37. [embedded bash] command name is a variable (`$all_found`) that this file sets only to plain text (ast pass, confidence 0.40)

    
              if ! $all_found; then
                echo "One or more expected executables were not found."
                exit 1
  38. info warn → info by review dynamic-import .github/workflows/test-integration.yml:724:11

    [embedded bash] `source` called with a dynamic path — sourcing a variable script path (ast pass, confidence 0.75)

              ./uv venv -p "$PYODIDE_PYTHON" "$PYODIDE_VENV"
              source "$PYODIDE_VENV/bin/activate"
              ./uv --directory "$RUNNER_TEMP" pip install \
                --extra-index-url="$PYODIDE_INDEX" \
    likely benign LLM, confidence 0.85 Sources the venv activate script at a variable path during Pyodide integration setup.
    Reasoning

    The workflow sources a virtualenv activate script whose path comes from the workflow's own $PYODIDE_VENV variable, which the job created earlier with uv venv. Sourcing a venv activate script is standard practice in CI.

  39. info warn → info by review obfuscated-command-name .github/workflows/test-integration.yml:765:13

    [embedded bash] command name contains 3 backslash-escape sequences — hiding the true command (ast pass, confidence 0.85)

              & .\venv-native\Scripts\Activate.ps1
              pyodide xbuildenv install 0.29.2
              $env:PYODIDE_PYTHON = pyodide config get interpreter
    dismissed LLM, confidence 0.90 PowerShell activation of a relative venv script; backslashes are ordinary Windows path separators.
    Reasoning

    The backslash count comes from a Windows relative path (.\venv-native\Scripts\Activate.ps1) and a PowerShell call, not from escaping that hides a command. The obfuscation signal misfires on normal Windows path syntax.

  40. info warn → info by review dynamic-execution .github/workflows/test-integration.yml:767:11

    [embedded bash] command name is a variable (`$env`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

              pyodide xbuildenv install 0.29.2
              $env:PYODIDE_PYTHON = pyodide config get interpreter
              $env:PYODIDE_INDEX = pyodide config get package_index
              echo "PYODIDE_PYTHON=$env:PYODIDE_PYTHON" >> $env:GITHUB_ENV
    dismissed LLM, confidence 0.92 PowerShell environment variable assignment from pyodide config output.
    Reasoning

    This is a PowerShell $env: assignment that captures the output of pyodide config. The parser treated the $env: prefix as a variable command name. It is ordinary CI configuration.

  41. info warn → info by review dynamic-execution .github/workflows/test-integration.yml:768:11

    [embedded bash] command name is a variable (`$env`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

              $env:PYODIDE_PYTHON = pyodide config get interpreter
              $env:PYODIDE_INDEX = pyodide config get package_index
              echo "PYODIDE_PYTHON=$env:PYODIDE_PYTHON" >> $env:GITHUB_ENV
              echo "PYODIDE_INDEX=$env:PYODIDE_INDEX" >> $env:GITHUB_ENV
    dismissed LLM, confidence 0.92 PowerShell environment variable assignment for the Pyodide package index.
    Reasoning

    Same PowerShell $env: assignment pattern as the preceding line, setting the package index variable from pyodide config. No execution of untrusted content is present.

  42. info warn → info by review obfuscated-command-name .github/workflows/test-integration.yml:775:13

    [embedded bash] command name contains 3 backslash-escape sequences — hiding the true command (ast pass, confidence 0.85)

              .\uv.exe venv -p $env:PYODIDE_PYTHON venv-pyodide
              & .\venv-pyodide\Scripts\Activate.ps1
              .\uv.exe pip install --extra-index-url=$env:PYODIDE_INDEX --no-build numpy
              python -c 'import numpy'
    dismissed LLM, confidence 0.90 Windows relative-path invocation of uv.exe and a venv activation script.
    Reasoning

    The backslashes are Windows path separators in .\uv.exe and .\venv-pyodide\Scripts\Activate.ps1. The workflow runs its own uv binary and venv, so this is a parser artifact, not a hidden command.

  43. info warn → info by review dynamic-execution .github/workflows/test-integration.yml:968:11

    [embedded bash] command name is a variable (`$env`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

              # Add pyenv-win to PATH for this session
              $env:PYENV = "$env:USERPROFILE\.pyenv\pyenv-win"
              $env:PATH = "$env:PYENV\bin;$env:PYENV\shims;$env:PATH"
    dismissed LLM, confidence 0.92 PowerShell sets PYENV and PATH for a pyenv-win install in CI.
    Reasoning

    This PowerShell line sets PYENV and PATH for a pyenv-win installation inside a CI job. The $env: references are normal PowerShell syntax, and the flagged 'variable command' is a misparse.

  44. info warn → info by review dynamic-execution .github/workflows/test-integration.yml:969:11

    [embedded bash] command name is a variable (`$env`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

              $env:PYENV = "$env:USERPROFILE\.pyenv\pyenv-win"
              $env:PATH = "$env:PYENV\bin;$env:PYENV\shims;$env:PATH"
    
              # Add to GITHUB_PATH so WSL can find the shims
    dismissed LLM, confidence 0.92 PowerShell PATH update for pyenv-win shims in a Windows CI job.
    Reasoning

    Same PowerShell PYENV and PATH setup as the preceding finding, here shown with the GITHUB_PATH comment. Standard CI environment configuration.

  45. info warn → info by review dynamic-execution .github/workflows/test-integration.yml:976:13

    [embedded bash] command name is a variable (`$env`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

              Write-Host "Installing Python 3.11.9 via pyenv-win..."
              & "$env:PYENV\bin\pyenv.bat" install 3.11.9
              & "$env:PYENV\bin\pyenv.bat" global 3.11.9
    dismissed LLM, confidence 0.92 Invokes pyenv.bat from the workflow's PYENV directory to install Python 3.11.9.
    Reasoning

    The line invokes pyenv.bat from the PYENV directory the workflow itself set up, to install and select Python 3.11.9. This is ordinary CI tooling; the $env: reference was misparsed as a variable command.

  46. info warn → info by review dynamic-execution .github/workflows/test-integration.yml:977:13

    [embedded bash] command name is a variable (`$env`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

              & "$env:PYENV\bin\pyenv.bat" install 3.11.9
              & "$env:PYENV\bin\pyenv.bat" global 3.11.9
    
              Write-Host "Verifying pyenv-win installation..."
    dismissed LLM, confidence 0.92 Sets the global pyenv-win Python version in a Windows CI step.
    Reasoning

    Sets the global pyenv-win Python version after installation, in the same Windows CI step. Routine tooling setup with no sign of obfuscation or remote code.

  47. info warn → info by review dynamic-execution .github/workflows/test-integration.yml:980:13

    [embedded bash] command name is a variable (`$env`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

              Write-Host "Verifying pyenv-win installation..."
              & "$env:PYENV\bin\pyenv.bat" versions
    likely benign LLM, confidence 0.90 CI step that runs pyenv.bat versions to verify a pyenv-win install.
    Reasoning

    The command is a PowerShell call to a pyenv-win binary under a path built from $env:PYENV, followed by a `versions` listing. This is a standard CI check that the installed tool works, with no download, decoding, or hidden behaviour.

  48. info critical → info by review dynamic-execution .github/workflows/test-smoke.yml:45:11

    [embedded bash] `eval` called on a dynamic (variable/substitution) expression (ast pass, confidence 0.90)

              eval "$(./uv generate-shell-completion bash)"
              eval "$(./uvx --generate-shell-completion bash)"
    likely benign LLM, confidence 0.88 Smoke test evaluates uv's own generated bash completion script.
    Reasoning

    The eval runs the output of the project's own built uv binary generating its shell completion script. This is a common, self-contained pattern in CLI test workflows and does not fetch remote code.

  49. info critical → info by review dynamic-execution .github/workflows/test-smoke.yml:46:11

    [embedded bash] `eval` called on a dynamic (variable/substitution) expression (ast pass, confidence 0.90)

              eval "$(./uv generate-shell-completion bash)"
              eval "$(./uvx --generate-shell-completion bash)"
    likely benign LLM, confidence 0.88 Smoke test evaluates uvx's own generated bash completion script.
    Reasoning

    Same eval of locally generated completion output from ./uvx, a self-generated script in a CI smoke test.

  50. info critical → info by review dynamic-execution .github/workflows/test-smoke.yml:73:11

    [embedded bash] `eval` called on a dynamic (variable/substitution) expression (ast pass, confidence 0.90)

              eval "$(./uv generate-shell-completion bash)"
              eval "$(./uvx --generate-shell-completion bash)"
    likely benign LLM, confidence 0.88 Smoke test evaluates uv's own generated bash completion script.
    Reasoning

    Repeated eval of the project's own generated completion script in another job, with the same benign context.

  51. info critical → info by review dynamic-execution .github/workflows/test-smoke.yml:74:11

    [embedded bash] `eval` called on a dynamic (variable/substitution) expression (ast pass, confidence 0.90)

              eval "$(./uv generate-shell-completion bash)"
              eval "$(./uvx --generate-shell-completion bash)"
    likely benign LLM, confidence 0.88 Smoke test evaluates uvx's own generated bash completion script.
    Reasoning

    Repeated eval of the project's own generated completion script, same benign context.

  52. info critical → info by review dynamic-execution .github/workflows/test-smoke.yml:125:11

    [embedded bash] `eval` called on a dynamic (variable/substitution) expression (ast pass, confidence 0.90)

              eval "$(./uv generate-shell-completion bash)"
              eval "$(./uvx --generate-shell-completion bash)"
    likely benign LLM, confidence 0.88 Smoke test evaluates uv's own generated bash completion script.
    Reasoning

    Repeated eval of the project's own generated completion script in another smoke job; benign.

  53. info critical → info by review dynamic-execution .github/workflows/test-smoke.yml:126:11

    [embedded bash] `eval` called on a dynamic (variable/substitution) expression (ast pass, confidence 0.90)

              eval "$(./uv generate-shell-completion bash)"
              eval "$(./uvx --generate-shell-completion bash)"
    likely benign LLM, confidence 0.88 Smoke test evaluates uvx's own generated bash completion script.
    Reasoning

    Repeated eval of the project's own generated completion script; benign.

  54. info warn → info by review dynamic-execution .github/workflows/test-system.yml:666:11

    [embedded bash] command name is a variable (`$env`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

              $env:PATH = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
              python ./scripts/check_system_python.py --uv ./uv.exe --check-python-version $env:TEST_PYTHON_VERSION --check-path
    likely benign LLM, confidence 0.85 CI step that resets PATH and runs a local system-Python check script.
    Reasoning

    PowerShell sets PATH from machine and user environment variables, then runs a repository check script with a version variable. The 'command name is a variable' warning is a parser artifact; the script is local and the behaviour is ordinary test setup.

  55. info warn → info by review dynamic-execution .github/workflows/test-system.yml:666:90

    [embedded bash] command name is a variable (`$env`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

              $env:PATH = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
              python ./scripts/check_system_python.py --uv ./uv.exe --check-python-version $env:TEST_PYTHON_VERSION --check-path
    likely benign LLM, confidence 0.85 Passes TEST_PYTHON_VERSION to the local check_system_python.py script.
    Reasoning

    Same line as the previous finding; the flagged $env:TEST_PYTHON_VERSION argument is passed to a local, repository-provided script, which is routine.

  56. info warn → info by review dynamic-execution .github/workflows/test-system.yml:681:11

    [embedded bash] pipeline feeds into `bash` — piped data is executed as shell code (ast pass, confidence 0.80)

              # Install pyenv
              curl https://pyenv.run | bash
    
              # Set up environment variables for current step
    likely benign LLM, confidence 0.70 CI step installs pyenv by piping the pyenv.run installer into bash.
    Reasoning

    This is the widely used pyenv installer piped to bash from its official domain. It is a real curl-to-shell pattern with supply-chain risk in general, but in a CI test setup it is the documented install method and nothing in the snippet is obfuscated or malicious.

  57. info critical → info by review dynamic-execution .github/workflows/test-system.yml:686:11

    [embedded bash] `eval` called on a dynamic (variable/substitution) expression (ast pass, confidence 0.90)

              export PATH="$PYENV_ROOT/bin:$PATH"
              eval "$(pyenv init -)"
    
              # Install Python 3.9
    likely benign LLM, confidence 0.90 CI step evaluates the standard pyenv init output to set up shims.
    Reasoning

    eval "$(pyenv init -)" is the standard documented pyenv shell initialization, evaluating pyenv's own output in a CI step.

  58. info warn → info by review dynamic-execution .github/workflows/test-windows-trampolines.yml:116:11

    [embedded bash] command name is a variable (`$output`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

              $output = uv run --only-dev cargo bloat --locked --release --target x86_64-pc-windows-msvc
              $filteredOutput = $output | Select-String -Pattern 'core::fmt::write|core::fmt::getcount' -NotMatch
    dismissed LLM, confidence 0.85 Assigns cargo bloat output to a variable and filters it with Select-String.
    Reasoning

    $output is assigned the result of a `uv run cargo bloat` command and then piped to Select-String. The finding treats a variable assignment as a command, which is a parser misread of ordinary PowerShell; no execution of attacker-controlled data occurs.

  59. info warn → info by review dynamic-execution .github/workflows/test-windows-trampolines.yml:117:11

    [embedded bash] command name is a variable (`$filteredOutput`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

              $filteredOutput = $output | Select-String -Pattern 'core::fmt::write|core::fmt::getcount' -NotMatch
              $containsPatterns = $filteredOutput | Select-String -Pattern 'core::fmt|std::panicking|std::backtrace_rs'
    dismissed LLM, confidence 0.85 Filters the cargo bloat output with a second Select-String for expected patterns.
    Reasoning

    Assigns a pipeline filtered from the previous line's output to a variable. Again a parser false positive on normal PowerShell assignment, not dynamic execution.

  60. info warn → info by review dynamic-execution .github/workflows/test-windows-trampolines.yml:118:11

    [embedded bash] command name is a variable (`$containsPatterns`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

              $filteredOutput = $output | Select-String -Pattern 'core::fmt::write|core::fmt::getcount' -NotMatch
              $containsPatterns = $filteredOutput | Select-String -Pattern 'core::fmt|std::panicking|std::backtrace_rs'
    
              if ($containsPatterns) {
    dismissed LLM, confidence 0.93 A PowerShell CI step that greps command output for patterns and branches on the result.
    Reasoning

    The flagged `$containsPatterns` is a PowerShell variable used in an `if` condition, not a command name. The scanner misread the PowerShell syntax as embedded bash command execution. Nothing here runs attacker-controlled input.

  61. info warn → info by review dynamic-execution .github/workflows/test-windows-trampolines.yml:120:15

    [embedded bash] command name is a variable (`$containsPatterns`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    
              if ($containsPatterns) {
                  Exit 1
              } else {
    dismissed LLM, confidence 0.93 A PowerShell CI conditional that exits with status 1 when unwanted patterns appear in test output.
    Reasoning

    Same PowerShell `if ($containsPatterns)` construct followed by `Exit 1`. It is a normal test-failure check in a CI workflow.

  62. info warn → info by review dynamic-execution README.md:50:1

    [embedded bash] pipeline feeds into `sh` — piped data is executed as shell code (ast pass, confidence 0.80)

    # On macOS and Linux.
    curl -LsSf https://astral.sh/uv/install.sh | sh
    likely benign LLM, confidence 0.80 The README's documented curl-to-sh install command for the uv tool.
    Reasoning

    This is the official uv installer one-liner documented in the README. Piping a vendor install script to sh is a known, if debatable, distribution practice, and the URL points at the project's own domain. It is not obfuscation or a dropper hidden in the code.

  63. info warn → info by review unicode-mixed-script README.md:279:36

    identifier `juː` mixes scripts: Latin + Other (raw pass, confidence 0.80)

    
    It's pronounced as "you - vee" ([`/juː viː/`]https://en.wikipedia.org/wiki/Help:IPA/English#Key)
    
    #### How should I stylize uv?
    dismissed LLM, confidence 0.97 IPA pronunciation notation in the README for how to say the project name.
    Reasoning

    The raw pass flagged IPA phonetic symbols in a pronunciation guide. This is legitimate Unicode text, not an identifier or obfuscation.

  64. info warn → info by review unicode-mixed-script README.md:279:41

    identifier `viː` mixes scripts: Latin + Other (raw pass, confidence 0.80)

    
    It's pronounced as "you - vee" ([`/juː viː/`]https://en.wikipedia.org/wiki/Help:IPA/English#Key)
    
    #### How should I stylize uv?
    dismissed LLM, confidence 0.97 IPA pronunciation notation in the README for how to say the project name.
    Reasoning

    Same IPA pronunciation text as the previous finding; mixed-script flags on IPA characters in prose are false positives.

  65. info warn → info by review encoding-base64 crates/uv-client/src/html.rs:646:52

    base64-like blob (66 bytes, compression ratio 0.88) (raw pass, confidence 0.60)

    <h1>Links for jinja2</h1>
    <a href="/whl/Jinja2-3.1.2-py3-none-any.whl#sha256%3D4095ada29e51070f7d199a0a5bdf5c8d8e238e03f0bf4dcc02571e78c9ae800d">Jinja2-3.1.2-py3-none-any.whl</a><br/>
    </body>
    </html>
    dismissed LLM, confidence 0.93 An HTML test fixture linking to a Jinja2 wheel with a sha256 fragment.
    Reasoning

    The 'blob' is a hex SHA-256 digest in a URL fragment inside an HTML test fixture for a package index page. It is a plain checksum, not an encoded payload.

  66. info warn → info by review encoding-hex crates/uv-fs/src/path.rs:965:100

    18 consecutive `\xNN` escapes (entropy 4.2 bits/byte) (raw pass, confidence 0.65)

                    1..=0x5e,
                    r##"__import__("os").fsdecode(b"/foo/\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^/bar")"##,
                ),
                (
    dismissed LLM, confidence 0.93 A Rust test case containing a Python snippet with all byte values escaped, used to test path decoding.
    Reasoning

    The escapes form a Python byte-string literal in a Rust test table covering path-to-bytes round-trip cases. Byte-escape tables are normal for testing filesystem path encoding.

  67. info warn → info by review encoding-escape-soup crates/uv-fs/src/path.rs:969:85

    37 consecutive `\xNN` escapes (entropy 5.2 bits/byte) (raw pass, confidence 0.80)

                    0x5f..=0xa3,
                    r#"__import__("os").fsdecode(b"/foo/_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3/bar")"#,
                ),
                (
    dismissed LLM, confidence 0.93 A Rust test fixture enumerating byte values as Python fsdecode input.
    Reasoning

    This is a systematic test table of byte values for path-decoding edge cases. The escapes are part of a fixture, not hidden logic.

  68. info warn → info by review encoding-escape-soup crates/uv-fs/src/path.rs:973:53

    46 consecutive `\xNN` escapes (entropy 5.5 bits/byte) (raw pass, confidence 0.80)

                    0xa4..=0xd1,
                    r#"__import__("os").fsdecode(b"/foo/\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1/bar")"#,
                ),
                (
    dismissed LLM, confidence 0.93 A Rust test fixture covering high-range bytes for path decoding.
    Reasoning

    A consecutive byte-range table in a Rust test for path encoding. Enumerating non-ASCII bytes is expected for this kind of test.

  69. info warn → info by review encoding-escape-soup crates/uv-fs/src/path.rs:977:53

    46 consecutive `\xNN` escapes (entropy 5.5 bits/byte) (raw pass, confidence 0.80)

                    0xd2..=u8::MAX,
                    r#"__import__("os").fsdecode(b"/foo/\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff/bar")"#,
                ),
            ] {
    dismissed LLM, confidence 0.93 A Rust test fixture covering the final byte range for path decoding.
    Reasoning

    Same systematic byte-range test fixture as the neighboring findings; it exercises edge-case bytes for path handling.

  70. info proc-macro-presence crates/uv-macros/src/lib.rs:12:1

    proc-macro attribute `#[proc_macro_derive]` present (ast pass, confidence 0.95)

    /// the formatter out of line to avoid duplicating it at call sites.
    #[proc_macro_derive(DebugNoInline)]
    pub fn derive_debug_no_inline(input: TokenStream) -> TokenStream {
        let input = parse_macro_input!(input as DeriveInput);
  71. info unicode-homoglyph crates/uv-normalize/src/lib.rs:231:20

    identifier `α` contains homoglyph candidates: α (03B1)→a (in string/comment) (raw pass, confidence 0.35)

                "space in middle",
                "alpha-α",
            ];
            for input in failures {
  72. info unicode-homoglyph crates/uv-pep508/src/lib.rs:1421:39

    identifier `α` contains homoglyph candidates: α (03B1)→a (in string/comment) (raw pass, confidence 0.35)

            assert_snapshot!(
                parse_pep508_err("foo[bar α]"),
                @"
            Expected either `,` (separating extras) or `]` (ending the extras section), found `α`
  73. info unicode-homoglyph crates/uv-pep508/src/lib.rs:1423:92

    identifier `α` contains homoglyph candidates: α (03B1)→a (in string/comment) (raw pass, confidence 0.35)

                @"
            Expected either `,` (separating extras) or `]` (ending the extras section), found `α`
            foo[bar α]
                    ^
  74. info unicode-homoglyph crates/uv-pep508/src/lib.rs:1424:17

    identifier `α` contains homoglyph candidates: α (03B1)→a (in string/comment) (raw pass, confidence 0.35)

            Expected either `,` (separating extras) or `]` (ending the extras section), found `α`
            foo[bar α]
                    ^
            "
  75. info unicode-mixed-script crates/uv-pep508/src/lib.rs:1764:31

    identifier `wheelѦ` mixes scripts: Latin + Cyrillic (in string/comment) (raw pass, confidence 0.40)

            assert_snapshot!(
                parse_pep508_err("wheelѦ"),
                @"
            Expected one of `@`, `(`, `<`, `=`, `>`, `~`, `!`, `;`, found `Ѧ`
  76. info unicode-mixed-script crates/uv-pep508/src/lib.rs:1767:9

    identifier `wheelѦ` mixes scripts: Latin + Cyrillic (in string/comment) (raw pass, confidence 0.40)

            Expected one of `@`, `(`, `<`, `=`, `>`, `~`, `!`, `;`, found `Ѧ`
            wheelѦ
                 ^
            ");
  77. info unicode-homoglyph crates/uv-pep508/src/lib.rs:1823:63

    identifier `αx` contains homoglyph candidates: α (03B1)→a (in string/comment) (raw pass, confidence 0.35)

            assert_snapshot!(
                parse_pep508_err(r#"foo; python_version == "3.12" αx"#),
                @r#"
            Unexpected character 'α', expected 'and', 'or' or end of input
  78. info unicode-mixed-script crates/uv-pep508/src/lib.rs:1823:63

    identifier `αx` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

            assert_snapshot!(
                parse_pep508_err(r#"foo; python_version == "3.12" αx"#),
                @r#"
            Unexpected character 'α', expected 'and', 'or' or end of input
  79. info unicode-homoglyph crates/uv-pep508/src/lib.rs:1825:31

    identifier `α` contains homoglyph candidates: α (03B1)→a (in string/comment) (raw pass, confidence 0.35)

                @r#"
            Unexpected character 'α', expected 'and', 'or' or end of input
            foo; python_version == "3.12" αx
                                          ^^
  80. info unicode-homoglyph crates/uv-pep508/src/lib.rs:1826:39

    identifier `αx` contains homoglyph candidates: α (03B1)→a (in string/comment) (raw pass, confidence 0.35)

            Unexpected character 'α', expected 'and', 'or' or end of input
            foo; python_version == "3.12" αx
                                          ^^
            "#
  81. info unicode-mixed-script crates/uv-pep508/src/lib.rs:1826:39

    identifier `αx` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

            Unexpected character 'α', expected 'and', 'or' or end of input
            foo; python_version == "3.12" αx
                                          ^^
            "#
  82. identifier `αx` contains homoglyph candidates: α (03B1)→a (in string/comment) (raw pass, confidence 0.35)

        fn test_marker_expression_non_ascii_trailing() {
            let err = MarkerExpression::from_str(r#"os_name == "nt" αx"#)
                .unwrap_err()
                .to_string();
  83. identifier `αx` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

        fn test_marker_expression_non_ascii_trailing() {
            let err = MarkerExpression::from_str(r#"os_name == "nt" αx"#)
                .unwrap_err()
                .to_string();
  84. identifier `α` contains homoglyph candidates: α (03B1)→a (in string/comment) (raw pass, confidence 0.35)

                @r#"
            Unexpected character 'α', expected end of input
            os_name == "nt" αx
                            ^^
  85. identifier `αx` contains homoglyph candidates: α (03B1)→a (in string/comment) (raw pass, confidence 0.35)

            Unexpected character 'α', expected end of input
            os_name == "nt" αx
                            ^^
            "#
  86. identifier `αx` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

            Unexpected character 'α', expected end of input
            os_name == "nt" αx
                            ^^
            "#
  87. identifier `α` contains homoglyph candidates: α (03B1)→a (in string/comment) (raw pass, confidence 0.35)

                // Unicode
                "α",
                "férrîs",
                "안녕하세요",
  88. base64-like blob (68 bytes, compression ratio 0.91) (in comment) (raw pass, confidence 0.36)

                    // Python implementations vary
                    // https://github.com/pypa/pyproject-metadata/pull/150/files#diff-7d938dbc255a08c2cfab1b4f1f8d1f6519c9312dd0a39d7793fa778474f1fbd1L135-R141
                    let _ = writeln!(writer, "{}{}", " ".repeat(key.len() + 2), line);
                }
  89. info warn → info by review encoding-base64 crates/uv-test/src/lib.rs:2591:6

    base64-like blob (112 bytes, compression ratio 1.01) (raw pass, confidence 0.60)

        "cGF0Cg==",
        "MTFBQlVDUjZBMERMUTQ3aVphN3hPdV9qQmhTMkZUeHZ4ZE13OHczakxuZndsV2ZlZjc2cE53eHBWS2tiRUFwdnpmUk8zV0dDSUhicDFsT01aago=",
    ];
    likely benign LLM, confidence 0.80 A Rust test table of base64-encoded credential-like fixture values.
    Reasoning

    These are base64 strings in a test-data array, one decoding to 'pat' and others to short strings. They look like fixture values for credential-handling tests rather than an executed payload. Test context is not shown, so some doubt remains.

  90. info warn → info by review encoding-base64 crates/uv-test/src/lib.rs:2599:6

    base64-like blob (112 bytes, compression ratio 1.00) (raw pass, confidence 0.60)

        "cGF0Cg==",
        "MTFBQlVDUjZBMDJTOFYwMTM4YmQ0bV9uTXpueWhxZDBrcllROTQ5SERTeTI0dENKZ2lmdzIybDFSR2s1SE04QW8xTUVYQ1I0Q1YxYUdPRGpvZQo=",
    ];
    likely benign LLM, confidence 0.80 A base64 fixture in a Rust test table for credential-handling tests.
    Reasoning

    Another base64 fixture from the same test table. The value is consistent with a fake token or test string used in authentication tests. No execution path is visible in the snippet.

  91. info warn → info by review encoding-base64 crates/uv-test/src/lib.rs:2602:52

    base64-like blob (548 bytes, compression ratio 0.71) (raw pass, confidence 0.60)

    ub const READ_ONLY_GITHUB_SSH_DEPLOY_KEY: &str = "LS0tLS1CRUdJTiBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0KYjNCbGJuTnphQzFyWlhrdGRqRUFBQUFBQkc1dmJtVUFBQUFFYm05dVpRQUFBQUFBQUFBQkFBQUFNd0FBQUF0emMyZ3RaVwpReU5UVXhPUUFBQUNBeTF1SnNZK1JXcWp1NkdIY3Z6a3AwS21yWDEwdmo3RUZqTkpNTkRqSGZPZ0FBQUpqWUpwVnAyQ2FWCmFRQUFBQXR6YzJndFpXUXlOVFV4T1FBQU
    likely benign LLM, confidence 0.80 A Rust test constant containing a base64-encoded fake SSH deploy key.
    Reasoning

    The base64 decodes to an OpenSSH private key header, which is a common test fixture for SSH deploy-key handling. It is named READ_ONLY_GITHUB_SSH_DEPLOY_KEY in a test crate, so it is most likely a dummy key. A real leaked key would be a concern, but nothing in the snippet suggests it is live or executed.

  92. base64-like blob (68 bytes, compression ratio 0.93) (in comment) (raw pass, confidence 0.36)

                // scripts, we can consider reverting https://github.com/astral-sh/uv/pull/5750/files#diff-969979506be03e89476feade2edebb4689a9c261f325988d3c7efc5e51de26d1L273-L277.
                dunce::canonicalize(python_exe.as_path()).unwrap_or_else(|_| {
  93. info warn → info by review encoding-base64 crates/uv-types/src/hash.rs:751:150

    base64-like blob (71 bytes, compression ratio 0.90) (raw pass, confidence 0.60)

            let first = UnresolvedRequirement::Named(requirement(
                "https://files.pythonhosted.org/packages/36/55/ad4de788d84a630656ece71059665e01ca793c04294c463fd84132f40fe6/anyio-4.0.0-py3-none-any.whl#sha256=CFDB2B588B9FC25EDE96D8DB56ED50848B0B649DCA3DD1DF0B11F683BB9E0B5F",
            ));
    likely benign LLM, confidence 0.90 A test fixture URL containing a wheel path and sha256 hash fragment.
    Reasoning

    The blob is a sha256 fragment inside a test URL for a real PyPI wheel, in a requirement-parsing unit test. It is data in a test fixture, not an encoded payload.

  94. compression ratio 0.837 is >2σ above file mean 0.808 (raw pass, confidence 0.50)

        ]
        sdist = { url = "https://files.pythonhosted.org/packages/23/a2/97899f6bd0e873fed3a7e67ae8d3a08b21799430fb4da15cfedf10d6e2c2/iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32", size = 8104, upload-time = "2020-10-14T10:20:18.572Z" }
        wheels = [
  95. compression ratio 0.837 is >2σ above file mean 0.808 (raw pass, confidence 0.50)

        ]
        sdist = { url = "https://files.pythonhosted.org/packages/23/a2/97899f6bd0e873fed3a7e67ae8d3a08b21799430fb4da15cfedf10d6e2c2/iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32", size = 8104, upload-time = "2020-10-14T10:20:18.572Z" }
        wheels = [
  96. compression ratio 0.910 is >2σ above file mean 0.787 (raw pass, confidence 0.50)

                { url = "http://[LOCALHOST]/files/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374", size = 5892, upload-time = "2023-01-07T11:08:09.864Z" },
            ]
            "#
  97. compression ratio 0.811 is >2σ above file mean 0.788 (raw pass, confidence 0.50)

            { url = "https://files.pythonhosted.org/packages/f9/de/dc04a3ea60b22624b51c703a84bbe0184abcd1d0b9bc8074b5d6b7ab90bb/typing_extensions-4.10.0-py3-none-any.whl", hash = "sha256:69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475", size = 33926, upload-time = "2024-02-25T22:12:47.72Z" },
        ]
  98. compression ratio 0.909 is >2σ above file mean 0.813 (raw pass, confidence 0.50)

        let requirements_in = context.temp_dir.child("requirements.in");
        requirements_in.write_str("flask @ https://files.PYTHONHOSTED.org/packages/36/42/015c23096649b908c809c69388a805a571a3bea44362fe87e33fc3afa01f/flask-3.0.0-py3-none-any.whl")?;
    
        uv_snapshot!(context.filters(), context.pip_compile()
  99. compression ratio 0.903 is >2σ above file mean 0.792 (raw pass, confidence 0.50)

            sdist = { url = "http://[LOCALHOST]/basic-auth/files/packages/d7/4b/cbd8e699e64a6f16ca3a8220661b5f83792b3017d0f79807cb8708d33913/iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3", size = 4646, upload-time = "2023-01-07T11:08:11.254Z" }
            wheels = [
  100. compression ratio 0.889 is >2σ above file mean 0.792 (raw pass, confidence 0.50)

                { url = "http://[LOCALHOST]/basic-auth/files/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374", size = 5892, upload-time = "2023-01-07T11:08:09.864Z" },
            ]
  101. compression ratio 0.903 is >2σ above file mean 0.792 (raw pass, confidence 0.50)

            sdist = { url = "http://[LOCALHOST]/basic-auth/files/packages/d7/4b/cbd8e699e64a6f16ca3a8220661b5f83792b3017d0f79807cb8708d33913/iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3", size = 4646, upload-time = "2023-01-07T11:08:11.254Z" }
            wheels = [
  102. compression ratio 0.889 is >2σ above file mean 0.792 (raw pass, confidence 0.50)

                { url = "http://[LOCALHOST]/basic-auth/files/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374", size = 5892, upload-time = "2023-01-07T11:08:09.864Z" },
            ]
  103. compression ratio 0.879 is >2σ above file mean 0.804 (raw pass, confidence 0.50)

        version = "2.0.0"
        archive = { url = "http://public:heron@[LOCALHOST]/basic-auth/files/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hashes = { sha256 = "b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374" } }
    
        ----- stderr -----
  104. compression ratio 0.902 is >2σ above file mean 0.802 (raw pass, confidence 0.50)

    
        hint: You're on [PLATFORM] (`[TAG]`), but `a` (v1.0.0) only has wheels for the following platform: `macosx_10_0_ppc64`; consider adding "sys_platform == '[PLATFORM]' and platform_machine == '[MACHINE]'" to `tool.uv.required-environments` to ensure uv resolves to a version with compatible wheels
        "#);
  105. compression ratio 0.801 is >2σ above file mean 0.695 (raw pass, confidence 0.50)

                { name = "outer", directory = "../" },
                { name = "workspace-member-in-subdir", git = "https://github.com/astral-sh/workspace-in-root-test?subdirectory=workspace-member-in-subdir&rev=d3ab48d2338296d47e28dbb2fb327c5e2ac4ac68" },
            ]
  106. info warn → info by review dynamic-execution docs/getting-started/installation.md:16:5

    [markup prose] pipeline feeds into `sh` — piped data is executed as shell code (ast pass, confidence 0.80)

        $ curl -LsSf https://astral.sh/uv/install.sh | sh
    likely benign LLM, confidence 0.85 Documentation showing the official curl-to-sh install command for uv.
    Reasoning

    This is the documented official install command for uv (curl piped to sh). It is standard install guidance in project docs, and the pipe is the upstream installer convention.

  107. info warn → info by review dynamic-execution docs/getting-started/installation.md:22:5

    [markup prose] pipeline feeds into `sh` — piped data is executed as shell code (ast pass, confidence 0.80)

        $ wget -qO- https://astral.sh/uv/install.sh | sh
    likely benign LLM, confidence 0.85 Documentation showing the official wget-to-sh install command for uv.
    Reasoning

    Same documented official installer, shown with wget. It is standard install instructions in project docs.

  108. info warn → info by review dynamic-execution docs/index.md:45:5

    [markup prose] pipeline feeds into `sh` — piped data is executed as shell code (ast pass, confidence 0.80)

        $ curl -LsSf https://astral.sh/uv/install.sh | sh
    likely benign LLM, confidence 0.85 Project homepage showing the official curl-to-sh install command.
    Reasoning

    The homepage repeats the official installer one-liner. This is normal documentation for the project's own install script.

  109. info warn → info by review dynamic-execution docs/pip/compatibility.md:498:8

    [embedded bash] command name is a variable (`$diff`) not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    (venv) $ diff --side-by-side  <(pip list) <(uv pip list)
    Package          Version					Package          Version
    ---------------- -------					---------------- -------
    likely benign LLM, confidence 0.90 A console example running diff with process substitution to compare pip and uv package lists.
    Reasoning

    The flagged token is a diff command in a console transcript comparing pip and uv listings. The $diff variable is an artifact of the markdown parser, and the snippet shows only ordinary tabular output.

  110. info warn → info by review dynamic-execution docs/reference/installer.md:57:3

    [embedded bash] pipeline feeds into `sh` — piped data is executed as shell code (ast pass, confidence 0.80)

    ```console
    $ curl -LsSf https://astral.sh/uv/install.sh | sh -s -- --help
    ```
    likely benign LLM, confidence 0.85 Documentation showing the official installer piped to sh with a help flag.
    Reasoning

    Documented official installer invoked with -s -- --help to show options. It is ordinary install docs.

  111. info critical → info by review dynamic-execution scripts/cargo.sh:13:5

    `exec` called with a dynamic (variable/substitution) path (ast pass, confidence 0.85)

    if [ -n "${REAL_CARGO:-}" ]; then
        exec "$REAL_CARGO" auditable "$@"
    else
        exec cargo auditable "$@"
    likely benign LLM, confidence 0.75 A cargo wrapper script that delegates to cargo auditable, optionally via an overridden cargo binary.
    Reasoning

    This is a small wrapper that execs cargo auditable, using REAL_CARGO from the environment when set and falling back to cargo otherwise. It is a developer tooling shim with no download or decoding, though the env-driven exec path is a minor doubt.

  112. command name is a variable (`$CARGO_AUDITABLE_INSTALL`) that this file sets only to plain text (ast pass, confidence 0.40)

        rustup target add "$MUSL_TARGET"
        CC=gcc $CARGO_AUDITABLE_INSTALL --target "$MUSL_TARGET"
    else
        $CARGO_AUDITABLE_INSTALL
  113. command name is a variable (`$CARGO_AUDITABLE_INSTALL`) that this file sets only to plain text (ast pass, confidence 0.40)

    else
        $CARGO_AUDITABLE_INSTALL
    fi
  114. info dynamic-execution scripts/install-mold.sh:51:1

    command name is a variable (`$SUDO`) that this file sets only to plain text (ast pass, confidence 0.40)

    
    $SUDO tar -C /usr/local --strip-components=1 --no-overwrite-dir -xzf "$archive"
    
    # Make mold the default linker
  115. info dynamic-execution scripts/install-mold.sh:56:5

    command name is a variable (`$SUDO`) that this file sets only to plain text (ast pass, confidence 0.40)

    if [ "$current_ld" != /usr/local/bin/mold ]; then
        $SUDO ln -sf /usr/local/bin/mold "$current_ld"
    fi
  116. info critical → info by review dynamic-execution scripts/manual-github-release.sh:61:1

    command name is a variable (`$SCRIPT_DIR`) and `SCRIPT_DIR` is assigned the output of a command — executed command determined at runtime (ast pass, confidence 0.90)

    MANIFEST="artifacts/dist-manifest.json"
    "$SCRIPT_DIR/dist-manifest-to-files.sh" "$MANIFEST" > release-assets.txt
    assets=()
    while IFS= read -r asset; do
    likely benign LLM, confidence 0.90 A release script invoking a sibling helper located via SCRIPT_DIR.
    Reasoning

    SCRIPT_DIR is the usual self-location idiom, and the script runs a sibling helper in the same repository. This is normal release tooling.

  117. info critical → info by review dynamic-execution scripts/nextest-setup-hook-unix.sh:33:5

    command name is a variable (`$SCRIPT_DIR`) and `SCRIPT_DIR` is assigned the output of a command — executed command determined at runtime (ast pass, confidence 0.90)

      if [[ ${#targets[@]} -gt 0 ]]; then
        "$SCRIPT_DIR/codesign-macos.sh" "$UV_TEST_CODESIGN_IDENTITY" "${targets[@]}"
      fi
    fi
    likely benign LLM, confidence 0.90 A nextest setup hook calling a sibling codesign script for test binaries.
    Reasoning

    SCRIPT_DIR is set by the standard self-location idiom, and the call runs a sibling codesign helper for test binaries. This is ordinary test infrastructure.

  118. info warn → info by review dynamic-execution scripts/test-release-wheels-macos.sh:15:1

    command name is a variable () not set in this file — the caller or environment decides what runs (ast pass, confidence 0.70)

    fi
    "${python[@]}" -m pip install --no-index --no-deps "$wheel_directory"/*.whl
    for binary in uv uvx uv-build; do
      "$virtual_environment/bin/$binary" --help
    likely benign LLM, confidence 0.80 A release test script running installed binaries with --help after pip install.
    Reasoning

    The variable command comes from a Python interpreter array in a release-verification script. The caller sets the environment by design, and the script only runs --help checks on installed tools.

  119. info critical → info by review dynamic-execution scripts/test-release-wheels-macos.sh:17:3

    command name is a variable (`$virtual_environment`, `$binary`) and `virtual_environment` is assigned the output of a command — executed command determined at runtime (ast pass, confidence 0.90)

    for binary in uv uvx uv-build; do
      "$virtual_environment/bin/$binary" --help
    done
    likely benign LLM, confidence 0.85 A loop running the freshly installed uv binaries from a test virtualenv with --help.
    Reasoning

    The loop runs uv, uvx, and uv-build from a virtual environment created by the same script, with --help as the only argument. The binary names are fixed, so the runtime resolution is expected.

Reproduce This Scan

Run disclude locally to verify. Add --format sarif for SARIF output. Add --llm (with an API key in the environment) to include the LLM review.

cargo install disclude --version 4.1.0
git clone https://github.com/astral-sh/uv uv && cd uv
git checkout 0.13.5
disclude scan --severity info --diff 0.13.4 .