PyPI / uv / 0.13.4

uv 0.13.4

Source
https://github.com/astral-sh/uv
Tag scanned
0.13.4
Compared with
0.13.3 (1 signals introduced since)
Files
1177 scanned, 652 skipped (binary, oversized, or unrecognised)
Signals
0 critical · 0 warn · 119 info
Scan time
71.2 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 06:52

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.4/install.sh | sh
    likely benign LLM, confidence 0.93 Documentation showing a version-pinned uv install script command.
    Reasoning

    Pinned-version variant of the official uv install script in documentation; legitimate and consistent with the project's install docs.

  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.85 Smoke-test step invoking the project's own CLI by a variable name.
    Reasoning

    The flagged `${MODULE_NAME}` is a workflow-level variable naming the project's own CLI, used to run its `--help` smoke test after a local pip install. The pattern is a standard release-workflow check. The variable is defined elsewhere in the workflow, and the AST pass flags any variable command name even when it is harmless.

  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.85 Smoke test running the project's own build-helper CLI by variable name.
    Reasoning

    Same pattern as the other build-release smoke tests: `${MODULE_NAME}-build --help` runs the package's own build helper after installing its freshly built wheel or sdist. Nothing here fetches or runs untrusted code.

  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.85 Post-build verification step that installs and runs the project's own CLI.
    Reasoning

    This is a release-verification step that installs the just-built package from local dist/ with --no-index and runs its help command. The variable command name is the project's own module name, and the flag is a generic AST heuristic.

  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.85 Local install and help smoke test of the built uv-build package.
    Reasoning

    The step installs the locally built uv-build distribution from a local directory with --no-index and smoke-tests it. This is ordinary build-verification behaviour with no remote code fetched at run time.

  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.80 Assignment of a pinned NASM version and SHA256 used to build a download path.
    Reasoning

    This PowerShell step pins NASM version 3.02 and a SHA256 hash, then downloads the installer from the official nasm.us release path. The `$version` reference is string interpolation in a URL and filename, not a dynamic command. The pinned hash is the expected supply-chain control.

  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.80 Constant assignment of the expected NASM installer SHA256.
    Reasoning

    The `$sha256` line is a constant string assignment that pins the expected installer hash. It is not executed as a command, so the finding is a false positive from the variable-command heuristic.

  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.80 Builds a temp path for the NASM installer download.
    Reasoning

    The `$installer` path is built with Join-Path under RUNNER_TEMP and downloaded from the official NASM host. The variable is used as a file path for `-OutFile`, not as an executed command name, so the finding is a heuristic 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.80 Silently runs the downloaded NASM installer and checks its exit code.
    Reasoning

    `Start-Process $installer` runs the NASM installer that was downloaded from the official host, pinned by version and hash, with the silent `/S` flag, and the exit code is checked. The variable only holds the path to a known installer, so the execution is expected for a build dependency.

  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.80 Checks the NASM installer exit code and fails on error.
    Reasoning

    This is an exit-code check after the NASM installer runs. The `$installation` variable is a process object, and the error throw is a normal failure guard, so nothing here is malicious.

  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.80 Adds the NASM install directory to the GitHub Actions PATH.
    Reasoning

    The line appends the standard NASM install directory to GITHUB_PATH so later build steps can find the assembler. This is a routine CI PATH setup, and the variable is a process object, not an executed command name.

  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 Release workflow runs llvm-readobj to list COFF imports of a built Windows binary.
    Reasoning

    LLVM_READOBJ is a tool path (llvm-readobj) set from a tool lookup in a release workflow; running it to dump COFF imports for a DLL-dependency check is a standard build verification step, not malicious. The flagged pattern is a variable command name, which is normal in CI.

  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 Smoke test invoking the built package's module name with --help after pip install.
    Reasoning

    MODULE_NAME is a project-defined variable (the package's module name) used to smoke-test an installed wheel with --help. This is ordinary release-test scripting in a uv repository; the variable is set in workflow env, not from untrusted input.

  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 Smoke test of the built uv-build package via its module/command name.
    Reasoning

    Same pattern as the other MODULE_NAME smoke tests: installs the built uv-build wheel and runs its help command. Routine CI verification with a workflow-defined variable.

  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 Smoke test invoking the installed package command with --help.
    Reasoning

    Routine release smoke test running the installed package's command and module with --help; the variable is workflow-defined and no untrusted input flows into it.

  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 Smoke test of the built uv-build package via its command name.
    Reasoning

    Routine release smoke test of the built uv-build wheel with workflow-defined variables; typical CI verification.

  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 Smoke test invoking the installed package command with --help.
    Reasoning

    Same routine CI smoke test of the installed package's command and module with --help.

  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 Smoke test of the built uv-build package via its command name.
    Reasoning

    Routine release smoke test of the built uv-build wheel; variable is workflow-defined.

  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 Smoke test invoking the installed package command with --help, with a TODO comment about platform coverage.
    Reasoning

    Routine smoke test with a workflow-defined module name; the commented-out line is a TODO about platform support, not hidden behavior.

  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 Smoke test of the built uv-build package with a TODO about platform coverage.
    Reasoning

    Routine release smoke test of the built uv-build wheel; the TODO comment concerns test coverage only.

  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 Smoke test invoking the installed package command with --help.
    Reasoning

    Routine release smoke test with workflow-defined variables and a benign TODO comment.

  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 CLI via a templated module name.
    Reasoning

    The variable command name is a standard smoke-test step in a release workflow, where the module name is a workflow-defined value. The surrounding file is a normal CI pipeline for building uv binaries, and the snippet shows no decoding, remote fetching, or concealment. The flag comes from the generic variable-command rule.

  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 workflow step that invokes the freshly installed package's CLI with --help.
    Reasoning

    This is the same release-workflow smoke test pattern: the templated command name runs the just-installed package's entry point to verify the build. Nothing in the snippet is hidden or malicious, and the flag reflects only the variable command name.

  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 the installed build tool's --help via a templated name.
    Reasoning

    The step installs a locally built wheel from /dist and checks its help output, which is ordinary build verification. The templated command is a workflow-defined name, not attacker-controlled input.

  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 smoke test that runs the installed package's executable.
    Reasoning

    The step installs the package into a local venv and runs its entry point, a routine smoke test in release CI. The variable is set by the workflow, and the snippet shows no obfuscation or external download.

  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 Post-install check that runs the built tool's --help from a venv.
    Reasoning

    This is a standard post-install verification step in a release pipeline, invoking the built tool's help command. The dynamic name is a workflow-level variable and the file shows typical CI behavior.

  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 Release test step that exercises the installed package's CLI.
    Reasoning

    The templated command runs the package's CLI from a local venv after installing a wheel from /dist. This is routine release testing with no sign of malicious intent.

  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 Smoke test invoking the installed module's help output.
    Reasoning

    Same smoke-test pattern: a local wheel install followed by a help invocation of the module, with the name supplied by the workflow. Nothing in the snippet is concealed or fetched remotely.

  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 Venv install verification that runs the built tool's help command.
    Reasoning

    Routine verification of a freshly built venv install in a release workflow. The dynamic command name is a workflow variable and the context is ordinary CI testing.

  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 that checks the built package's help output.
    Reasoning

    This is a standard build-verification step that runs the packaged CLI's help. The templated name is set by the workflow, and there is no encoding, network fetch of code, or evasion in the snippet.

  31. info warn → info by review dynamic-execution .github/workflows/check-lint.yml:206: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 that downloads and runs the hawk installer script from an official GitHub release.
    Reasoning

    The pipeline downloads an installer script over HTTPS with TLS 1.2 enforced from the official astral-sh GitHub releases, pinned by a version variable, and runs it with sh. Piping an installer to a shell is risky in general, but this is a common vendor installation pattern with no obfuscation. The residual doubt is that the script itself is not visible.

  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.85 A CI test loop executes uv or other test commands taken from a variable.
    Reasoning

    The loop runs commands from a `$cmd` list that the test workflow itself supplies, a common pattern in test harnesses. The variable comes from the workflow's own test matrix, not from attacker-controlled input, and nothing in the snippet is encoded or hidden.

  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.85 Else branch of the same CI test loop that runs a variable command.
    Reasoning

    This is the else branch of the same test-runner loop over workflow-defined commands. It is ordinary CI test-runner behaviour with no obfuscation or malicious indicators.

  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.93 PowerShell step invoking py.exe by full path to install Python 3.14.
    Reasoning

    The `$env:` token is PowerShell environment-variable syntax in a Windows step, which the bash-oriented parser misreads as a command name. The line calls the Python Install Manager's py.exe by its full path, as the comment says.

  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 Pyodide virtualenv's activate script after creating it.
    Reasoning

    The script sources the venv activate file that the same job just created with `uv venv -p ... $PYODIDE_VENV`. Sourcing a venv's activate script from a workflow-controlled path is standard practice.

  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.93 PowerShell activation of a native venv via a Windows backslash path.
    Reasoning

    The flagged 'escapes' are ordinary Windows path backslashes in `.\venv-native\Scripts\Activate.ps1`, a normal venv activation. This is a parser artifact, not command hiding.

  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.93 PowerShell step setting Pyodide environment variables for later CI steps.
    Reasoning

    The `$env:` assignments are PowerShell syntax for setting environment variables from `pyodide config` output and writing them to GITHUB_ENV. This is routine CI setup and the scanner misparses it.

  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.93 PowerShell step exporting the Pyodide package index to GITHUB_ENV.
    Reasoning

    Same PowerShell `$env:` assignment and GITHUB_ENV export pattern as the adjacent lines. It is benign CI configuration, and the flag comes from parsing PowerShell as bash.

  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.93 Windows PowerShell step running uv to create a venv and install numpy.
    Reasoning

    `.\uv.exe` with backslashes is a normal Windows relative executable path, and the rest of the snippet is a standard uv and pip install sequence. The escape count is a false positive from Windows paths.

  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.93 PowerShell step adding pyenv-win directories to PATH for the session.
    Reasoning

    This sets PYENV and PATH for pyenv-win in PowerShell, which is ordinary Windows toolchain setup. The `$env:` syntax is misread by the bash-oriented parser.

  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.93 PowerShell step extending PATH with pyenv-win shims.
    Reasoning

    This is the same pyenv-win PATH setup as the preceding line, using PowerShell `$env:` syntax. It is benign build 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 PowerShell step installing and selecting Python 3.11.9 via pyenv-win.
    Reasoning

    The command runs pyenv-win from the PYENV directory set earlier in the same job to install and select Python 3.11.9. This is routine toolchain setup, and the flag comes from parsing `$env:` as a command name.

  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 PowerShell step setting the global pyenv-win Python version to 3.11.9.
    Reasoning

    This is the second pyenv-win call in the same step, setting the global Python version. It is ordinary CI toolchain configuration with no hidden or encoded behaviour.

  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
    dismissed LLM, confidence 0.92 PowerShell call to a pyenv-win binary under $env:PYENV in a Windows integration test workflow.
    Reasoning

    The flagged line is PowerShell invoking pyenv-win from an environment variable path inside a CI test step. The bash-based parser misreads PowerShell's & call operator as a dynamic command name. No obfuscation or hostile behaviour is present.

  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.90 eval of uv's self-generated bash completion script in a smoke test workflow.
    Reasoning

    eval runs the output of uv's own generate-shell-completion subcommand. This is the documented way to install shell completions and it executes the project's own trusted binary in CI.

  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.90 eval of uvx's self-generated bash completion script in a smoke test workflow.
    Reasoning

    Same pattern as the preceding finding: eval of uv's own shell-completion output, a standard and trusted usage.

  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.90 eval of uv self-generated completions in the smoke test workflow.
    Reasoning

    Identical snippet to the other smoke-test findings: eval of uv's own generated completion output in CI, which is benign.

  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.90 eval of uvx self-generated completions in the smoke test workflow.
    Reasoning

    Identical snippet to the other smoke-test findings: eval of uvx's own generated completion output in CI, which is benign.

  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.90 eval of uv self-generated completions in a repeated smoke test job.
    Reasoning

    Repeats the same benign eval of uv's own completion generator in another job of the same workflow.

  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.90 eval of uvx self-generated completions in a repeated smoke test job.
    Reasoning

    Repeats the same benign eval of uvx's own completion generator in another job of the same workflow.

  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
    dismissed LLM, confidence 0.90 PowerShell PATH reset and invocation of check_system_python.py in a Windows system test.
    Reasoning

    PowerShell environment setup followed by a call to a repository script with an environment variable argument. The parser misreads the PowerShell line as bash, and the step is an ordinary CI check.

  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
    dismissed LLM, confidence 0.90 Passes $env:TEST_PYTHON_VERSION to check_system_python.py in a Windows system test.
    Reasoning

    Same PowerShell step as the preceding finding; the flagged column is just the $env:TEST_PYTHON_VERSION argument to a repository script in CI.

  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.72 Installs pyenv by piping the official pyenv.run installer script to bash in a CI step.
    Reasoning

    Piping a remote script to bash is a supply-chain risk pattern in general. Here it is the documented pyenv installer from its official domain, used in a CI test setup, so the concern is modest. Pinning or checksum verification would be better practice.

  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 eval of pyenv init output to set up the shell in a system test workflow.
    Reasoning

    eval "$(pyenv init -)" is the standard pyenv shell setup recommended by its documentation. It runs the local pyenv binary's own init output in a CI test.

  58. info warn → info by review dynamic-execution .github/workflows/test-windows-trampolines.yml:115: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.90 PowerShell assignment capturing cargo bloat output in a Windows trampoline test.
    Reasoning

    PowerShell variable assignment from a cargo bloat command, misparsed as a bash command name. The code only filters text output in CI.

  59. info warn → info by review dynamic-execution .github/workflows/test-windows-trampolines.yml:116: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.90 PowerShell Select-String filtering of cargo bloat output in a Windows trampoline test.
    Reasoning

    PowerShell pipeline filtering a variable with Select-String, misparsed as a bash command name. Ordinary CI logic with no execution of untrusted content.

  60. info warn → info by review dynamic-execution .github/workflows/test-windows-trampolines.yml:117: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.85 A PowerShell CI step that greps test output for panic or backtrace patterns and stores the match in a variable.
    Reasoning

    The flagged variable $containsPatterns is only used as a condition in an if statement, not as a command name, so the 'command name is a variable' signal is a misreading of PowerShell. The step filters test output with Select-String, which is ordinary CI logic.

  61. info warn → info by review dynamic-execution .github/workflows/test-windows-trampolines.yml:119: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.85 The else branch of the same CI step, which exits with a failure code when unwanted output patterns are found.
    Reasoning

    This is the same if-condition on $containsPatterns, followed by Exit 1. Nothing is executed dynamically, so the finding is a false positive.

  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 A README install instruction that pipes the uv install script from astral.sh into sh.
    Reasoning

    The curl-to-sh installer is the standard documented install method for the uv tool, shown in user docs. It is a common supply-chain-sensitive pattern, but it is publicly documented and points to the project's own domain, so it is not hidden malicious behaviour.

  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.95 IPA phonetic notation for the project name's pronunciation in the README.
    Reasoning

    The Latin and IPA characters in the pronunciation guide are legitimate phonetic notation, not identifier obfuscation, and the context is prose in a README.

  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.95 IPA phonetic notation for the project name's pronunciation in the README.
    Reasoning

    The second IPA token is the same legitimate pronunciation notation in documentation prose.

  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.90 A test HTML page with a Jinja2 wheel link that carries a sha256 hash fragment.
    Reasoning

    The blob is a sha256 hex digest in a URL fragment inside an HTML test fixture. It is not base64 content, and the pattern is an ordinary package index link.

  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")"##,
                ),
                (
    likely benign LLM, confidence 0.85 A Rust test table entry containing a Python bytes literal of control-character escapes for path decoding tests.
    Reasoning

    The hex escapes build a byte string covering the full control-character range, used as a Python fsdecode test input for path-handling round trips. This is deliberate test fixture data, not a payload, and the code only constructs test strings.

  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")"#,
                ),
                (
    likely benign LLM, confidence 0.85 A Rust test table entry with escaped high-byte values used to test path byte decoding.
    Reasoning

    This is a systematic enumeration of byte values in a test table of Python fsdecode inputs. The pattern matches exhaustive edge-case testing and is not executed as an attack.

  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")"#,
                ),
                (
    likely benign LLM, confidence 0.85 A test string with a sequential range of escaped bytes for path decoding tests.
    Reasoning

    The escape run is a sequential byte range in a test string for the Python fsdecode path test. The surrounding code is a test table, so it is benign test data.

  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")"#,
                ),
            ] {
    likely benign LLM, confidence 0.85 The last test string in the path decoding table, covering the remaining high-byte range.
    Reasoning

    This is the final sequential byte range in the same exhaustive path-decoding test table. It is benign test data.

  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.85 A test constant array of base64-encoded strings used as test fixtures in the uv test library.
    Reasoning

    The values are base64 test fixtures, such as 'pat\n' and a token-like string. Test-suite constants like these are common and do not show obfuscated execution.

  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.85 A second test constant array of base64-encoded strings in the uv test library.
    Reasoning

    This is another base64 test fixture array with similar content, consistent with test data for credential or path handling.

  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.70 A base64-encoded read-only GitHub SSH deploy key constant used in the uv test library.
    Reasoning

    The constant decodes to an OpenSSH private key, which is a credential-like blob. It is named as a read-only deploy key for test use, which is a plausible test fixture, but a committed key is worth noting as a secret-hygiene concern rather than evidence of malicious obfuscation.

  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",
            ));
    dismissed LLM, confidence 0.95 Test fixture containing a PyPI wheel URL with a sha256 hash fragment.
    Reasoning

    A base64-like string here is a long URL with a sha256 fragment in a Rust test fixture; the raw pass flags high-entropy-looking text in a URL and the compression ratio is ordinary for a hex-like hash. No decoding or execution occurs.

  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.95 Documentation showing the official uv curl-to-sh install command.
    Reasoning

    This is the standard documented installer one-liner from the official uv project (astral.sh). Piping an install script to sh is a known pattern that is widely documented; the markdown context is prose showing a user command, not a hidden payload.

  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.95 Documentation showing the wget variant of the uv install script.
    Reasoning

    Same official uv installer documented with wget; a legitimate install instruction from the project's own domain, not evidence of obfuscation.

  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.94 Index page showing the official uv curl-to-sh install command.
    Reasoning

    Official uv installation command in the project index docs, same pattern as the installation guide; benign project documentation.

  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
    ---------------- -------					---------------- -------
    dismissed LLM, confidence 0.90 Documentation example diffing pip list and uv pip list output.
    Reasoning

    Shell example in docs comparing pip and uv pip lists using process substitution. The variable command name is a false positive from the markdown code block context; nothing is fetched or executed dangerously.

  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 uv install script invoked with --help.
    Reasoning

    Documented install command with --help flag from the project's own docs. Same benign curl-to-sh installer pattern; the flag is merely passed to the script for help output.

  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.85 A bash wrapper script that execs either a user-configured REAL_CARGO binary or `cargo auditable` with the passed arguments.
    Reasoning

    The exec targets $REAL_CARGO, an environment variable that the script checks, with a fallback to plain `cargo auditable`. This is a standard wrapper pattern that forwards arguments to the real cargo binary with the cargo-auditable subcommand. The dynamic path is a set-by-the-user override, not encoded or hidden code, and the snippet shows no download, decoding, or remote fetch. The flag is a generic dynamic-exec hit on a benign build helper.

  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.85 Release script invoking a helper script located relative to its own directory.
    Reasoning

    Runs a sibling helper script from SCRIPT_DIR, which is derived from the script's own location in a release tooling repo. This is standard script-relative invocation, not an injection or dropper; the critical severity overstates it.

  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.85 Nextest setup hook invoking a repo-local codesign helper script.
    Reasoning

    Calls codesign-macos.sh from SCRIPT_DIR with a test signing identity and target list. Ordinary test-harness tooling; the dynamic path resolves to a repo-local script, so this is expected behavior.

  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 Release wheel test script running installed binaries from a venv.
    Reasoning

    Invokes uv, uvx, uv-build from a virtual environment bin directory in a release-testing script. The variable comes from the script's own setup; the warning reflects the analyzer not seeing the assignment in this snippet.

  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 Loop running uv, uvx and uv-build --help from a test virtual environment.
    Reasoning

    Runs binaries from $virtual_environment/bin with a fixed loop list of names, all from a test venv the script created. Expected for release smoke testing; not a malicious dropper.

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.4
disclude scan --severity info --diff 0.13.3 .