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
1 critical · 10 warn · 108 info
Scan time
74.9 s
LLM review
Reviewed by claude-haiku-5-5 (Anthropic): 70 of 80 warn and critical signals; 69 demoted to info.
Disclude version
4.0.0
Scanned (UTC)
2026-10-21 11:27

Signals

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

  1. [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
  2. [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
  3. [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
  4. [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
  5. [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
  6. [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
  7. [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
  8. [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
  9. [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
  10. [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
  11. warn 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
    suspicious LLM, confidence 0.55 A hardcoded base64-encoded OpenSSH private deploy key constant in a test library.
    Reasoning

    The constant base64-decodes to an OpenSSH private key header, so it is a hardcoded private deploy key in source. It is most likely a test fixture or a deliberately published read-only key, but committed private key material is a genuine secret-exposure risk and cannot be verified from the snippet.

  12. 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.90 Documentation showing a version-pinned uv install script piped to sh.
    Reasoning

    Documented installer pinned to a specific version from the project's own domain. This is a normal install instruction, not a covert dropper.

  13. 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 CI smoke test invoking the package's module-named CLI after install.
    Reasoning

    The `${MODULE_NAME} --help` line runs the freshly built package's own console entry point in a release smoke test. The variable is a workflow-level name, not attacker input, and the same file builds and installs the package it runs.

  14. 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 of the uv-build CLI after installing the built wheel or sdist.
    Reasoning

    This is the same post-install smoke test pattern for the uv-build package, running its own installed entry point. It is a normal release verification step.

  15. 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 Verification step installing the locally built package and checking its help output.
    Reasoning

    Installs a locally built package from dist/ and runs its help output to verify the artifact. The variable-named command is an expected part of testing the built binary.

  16. 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 Verification step installing the uv-build artifact and running its help.
    Reasoning

    Installs the uv-build artifact from a local directory and runs its help command. This is standard release artifact verification.

  17. 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 Pinned NASM version variable used in a Windows build-tool installation step.
    Reasoning

    The flag is a PowerShell variable being treated as a command by the parser. The step downloads the official NASM installer from nasm.us for a pinned version. This is a build dependency, not execution of untrusted code.

  18. 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 Hardcoded SHA-256 checksum for the NASM installer, used for integrity checking.
    Reasoning

    The SHA-256 is a hardcoded hash for the pinned NASM installer. Its presence suggests the download is meant to be verified, which is the opposite of obfuscation. The flag is a parser artifact on a variable assignment.

  19. 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 Downloads the NASM installer from nasm.us to a temp path before running it silently.
    Reasoning

    Downloads the NASM installer from the official upstream host into a temp path. The 'command' is a file path variable being run by Start-Process. This is standard toolchain setup for a Windows build.

  20. 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 Silent NASM installer run with exit-code check in a Windows CI step.
    Reasoning

    Runs the NASM installer with silent flags and checks the exit code. This is the usual way CI installs a build dependency. The flag is a parser artifact on a PowerShell variable.

  21. 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 Exit-code check after the NASM installer run in a Windows CI step.
    Reasoning

    Checks the NASM installer's exit code and throws on failure. This is defensive scripting, and the flagged variable is only a PowerShell expression.

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

    Appends the NASM install directory to GITHUB_PATH so later steps can find the assembler. This is ordinary CI PATH configuration with no hidden or remote execution.

  23. 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.80 CI step that runs the just-built package's --help as a smoke test, with the command name taken from a MODULE_NAME variable.
    Reasoning

    The command name comes from a workflow variable, a common pattern in release CI where the module name is a fixed value in the job's env or matrix. The shown code only builds and smoke-tests the package it just installed from /dist. Nothing here is attacker-controlled input, though the variable's definition is outside the snippet.

  24. 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.80 Release smoke test running the built package's --help via a MODULE_NAME variable.
    Reasoning

    Same pattern as the other build-release-binaries findings: a release-verification step that installs the local wheel and runs its --help. The variable is most likely a constant defined elsewhere in the workflow.

  25. 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.80 Release smoke test invoking the built -build helper via a MODULE_NAME variable.
    Reasoning

    Repeats the same release smoke-test pattern: install from /dist with --no-index, then run the module's --help. No untrusted input reaches the command name in the snippet.

  26. 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.80 Venv smoke test that runs the installed package's entry point via a MODULE_NAME variable.
    Reasoning

    Venv-based smoke test that installs the locally built package from /dist and runs its entry point. The variable-named command is a routine CI verification pattern.

  27. 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.80 Venv smoke test of the built -build helper's --help output.
    Reasoning

    Venv smoke test of the locally built -build helper with --no-index installation from /dist. Consistent with legitimate release verification.

  28. 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.80 Venv smoke test that runs the built package's CLI via a MODULE_NAME variable.
    Reasoning

    Venv-based smoke test installing the local wheel and running its CLI. The variable command name is a standard CI pattern and the surrounding steps are verification only.

  29. 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.80 Release smoke test running the built module's --help via a MODULE_NAME variable.
    Reasoning

    Repeats the release smoke-test pattern: install from local /dist and run the module's --help. The TODO comments show it is maintained verification code.

  30. 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.80 Venv smoke test of the built -build helper's --help output.
    Reasoning

    Venv smoke test of the locally built -build helper. The variable command is not attacker-controlled in the shown context and the step is consistent with release verification.

  31. 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.80 Release smoke test of the built -build helper's --help using a MODULE_NAME variable.
    Reasoning

    Same release smoke-test structure, with a commented alternative using the underscore module name. Nothing in the snippet suggests malicious execution.

  32. 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.70 CI step that downloads the cargo-hawk installer script from an astral-sh GitHub release and pipes it to sh.
    Reasoning

    Piping a remote installer into sh is a risky supply-chain pattern, but this one is the vendor's own installer from astral-sh GitHub releases, pinned to a HAWK_VERSION variable, and fetched over HTTPS with TLS 1.2 enforced. That matches the standard install instructions for such tools. The residual risk is the unpinned-hash trust in the release artifact.

  33. [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 -->"
  34. 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 Workflow step executes a command name held in a loop variable, a common CI test-runner pattern.
    Reasoning

    The loop runs commands taken from a variable set by the workflow's own test matrix. The uv-prefixed branch runs a local ./uv binary, which is normal for CI test runners. Nothing in the snippet fetches or decodes a payload.

  35. 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 Same loop's fallback branch runs the workflow-provided command variable.
    Reasoning

    This is the else branch of the same loop over matrix-defined commands. It is a standard CI construct, and the command comes from the workflow configuration rather than from attacker-controlled input.

  36. 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
    likely benign LLM, confidence 0.92 PowerShell invokes py.exe from a full Windows path to install Python 3.14.
    Reasoning

    The line calls Python Install Manager's py.exe by a full Windows path under LOCALAPPDATA, as the comment says. The $env: prefix is PowerShell syntax that the bash-embedded parser misreads as a variable command name. This is a routine Windows CI setup step.

  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. [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
  39. 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.90 Activates a virtualenv created earlier in the same CI step.
    Reasoning

    The script sources the activate file of a virtualenv that the same step just created with uv venv at $PYODIDE_VENV. The path is set by the workflow, not by external input, so this is a normal venv activation.

  40. 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
    likely benign LLM, confidence 0.90 PowerShell activates a native Windows venv and runs the pyodide CLI.
    Reasoning

    The 'backslash escapes' are ordinary Windows path separators in a relative venv Activate.ps1 path. The command is a standard PowerShell venv activation followed by a pyodide CLI call. Nothing is hidden.

  41. 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
    likely benign LLM, confidence 0.92 PowerShell sets pyodide environment variables and exports them to GITHUB_ENV.
    Reasoning

    The flagged token is the PowerShell $env: variable assignment syntax, which the bash parser misreads as a command name. The step sets PYODIDE env values from the pyodide CLI and writes them to GITHUB_ENV, a normal CI pattern.

  42. 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
    likely benign LLM, confidence 0.92 PowerShell exports further pyodide index settings to GITHUB_ENV.
    Reasoning

    This is the same PowerShell $env: assignment and GITHUB_ENV export pattern as the preceding line. It is a parser artifact on routine CI configuration code.

  43. 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'
    likely benign LLM, confidence 0.90 PowerShell runs uv and pip from a Windows venv to install numpy for a Pyodide test.
    Reasoning

    The backslashes are Windows path separators for .\uv.exe and the venv Activate.ps1 script. The rest of the step is an ordinary pip install and import check, with no concealed command.

  44. 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"
    likely benign LLM, confidence 0.92 PowerShell prepends pyenv-win directories to PATH for the CI session.
    Reasoning

    The line sets PYENV and PATH for pyenv-win using PowerShell $env: syntax, which the parser misreads as a variable command name. It is ordinary Windows CI environment setup.

  45. 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
    likely benign LLM, confidence 0.92 PowerShell updates PATH with pyenv-win directories for later CI steps.
    Reasoning

    This is the same $env: PATH assignment as the previous line. It sets up pyenv-win shims for later steps and does not run any fetched or encoded content.

  46. 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
    likely benign LLM, confidence 0.92 PowerShell uses pyenv-win to install and set global Python 3.11.9.
    Reasoning

    The step runs pyenv.bat from the PYENV directory the workflow itself set to install and select Python 3.11.9. The $env: prefix is a parser artifact, and the command is a standard toolchain install.

  47. 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..."
    likely benign LLM, confidence 0.92 PowerShell sets pyenv-win's global Python version to 3.11.9.
    Reasoning

    This line repeats the pyenv-win global-version call from the previous line. It is an ordinary Windows CI toolchain command with no evidence of obfuscation.

  48. 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.93 PowerShell step in a CI workflow that runs pyenv-win to list installed versions.
    Reasoning

    The flagged line is a PowerShell call operator invoking pyenv-win from a known install path under $env:PYENV, and the step only prints versions. The bash-style parser misreads PowerShell syntax as a dynamic command name, so this is a false positive in a CI test workflow.

  49. 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 Evals uv's self-generated bash completion script inside a CI smoke test.
    Reasoning

    The eval runs the output of the project's own freshly built uv binary to generate shell completions, a documented pattern. It is a CI smoke test in the project's repository, not an attacker-controlled input.

  50. 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 Evals uvx's self-generated bash completion script inside a CI smoke test.
    Reasoning

    Same pattern as the adjacent line: eval of the locally built uvx's generated completion output in a CI smoke test, with no external or attacker-controlled input.

  51. 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 Repeated eval of uv/uvx self-generated completions in another smoke-test job.
    Reasoning

    Identical generated-completion eval in the same workflow file, repeated across jobs. It is the project's own binary output in CI.

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

    Same generated-completion eval repeated in a CI job. No sign of tampering or external input.

  53. 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 Repeated eval of uv/uvx self-generated completions in a further smoke-test job.
    Reasoning

    Same generated-completion eval in another CI job of the same workflow, using the project's own binaries.

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

    Same generated-completion eval repeated in the workflow, operating only on output from the project's own binaries.

  55. 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.92 PowerShell step refreshing PATH and running a repo check script in CI.
    Reasoning

    The flagged line is PowerShell invoking a repo script with a PATH refresh, misparsed by the bash-style analyzer as a variable command name. This is ordinary CI setup, a false positive.

  56. 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 an environment variable as an argument to a repo check script in CI.
    Reasoning

    The $env:TEST_PYTHON_VERSION reference is a script argument, not a command name, and sits in the same PowerShell step as the previous finding. Benign CI parameter passing.

  57. 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 official pyenv.run installer into bash.
    Reasoning

    Piping a remote installer straight into bash is a real supply-chain risk pattern, but here it fetches pyenv's official installer in a CI setup step. The risk is accepted practice rather than obfuscation or malicious intent.

  58. 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 Evals pyenv's standard shell init output to activate pyenv in CI.
    Reasoning

    eval of 'pyenv init -' is the standard documented shell integration for pyenv, and pyenv is installed in the preceding step. Routine CI setup, not malicious.

  59. 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.93 PowerShell step capturing cargo bloat output in a CI workflow.
    Reasoning

    $output is a PowerShell variable holding cargo bloat output, and the bash-style parser misreads it as a command name. This is a false positive in a benign CI step.

  60. 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.93 PowerShell pipeline filtering cargo bloat output in a CI workflow.
    Reasoning

    $filteredOutput is a PowerShell pipeline variable being filtered with Select-String. The analyzer misclassified it as a command name, so this is a false positive in benign CI code.

  61. 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.90 A PowerShell if-condition on a variable, misclassified as a variable command name.
    Reasoning

    The flagged token is a PowerShell variable used as a boolean condition in an if statement. It is not a command invocation, so the scanner misread the syntax. Nothing in the snippet is dynamic execution.

  62. 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.90 A PowerShell if-branch that exits on a pattern match, misread as dynamic execution.
    Reasoning

    Same false positive: `if ($containsPatterns)` followed by `Exit 1` is a normal conditional, not a variable being executed as a command.

  63. 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.85 Documentation for installing uv via curl piped to sh from astral.sh.
    Reasoning

    This is the documented official uv installer one-liner. Piping a vendor install script to sh is a common but still trust-based pattern, and in a README it is the expected install method.

  64. 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 pronunciation notation for 'uv' in the README.
    Reasoning

    The characters are IPA phonetic symbols in a pronunciation guide, which legitimately mix Latin and IPA scripts in prose.

  65. 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 pronunciation notation for 'uv' in the README.
    Reasoning

    Same IPA pronunciation notation; mixed scripts are expected here.

  66. 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 sha256 hash fragment in a test HTML page for a package index.
    Reasoning

    The matched text is a hex sha256 digest in a URL fragment inside an HTML test fixture. It is not a meaningful base64 payload.

  67. 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.90 A Rust test table of Python byte-string escapes for path decoding tests.
    Reasoning

    The escapes encode byte sequences inside a Python fsdecode snippet used as a test string for path handling. This is test data exercising byte-path conversion, not hidden code.

  68. 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.90 A Rust test case enumerating byte escapes for fsdecode path tests.
    Reasoning

    The same test table contains a range of byte escapes covering non-ASCII bytes to validate fsdecode behaviour. The consistent structure indicates deliberate test coverage.

  69. 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.90 A Rust test enumerating byte escapes for path decoding.
    Reasoning

    The escapes are a systematic enumeration of byte values in a test string for Python path decoding. This is a legitimate exhaustive test.

  70. 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.90 A Rust test enumerating high-byte escapes for path decoding.
    Reasoning

    This is the high byte range of the same systematic test enumeration, consistent with a deliberate byte-coverage test.

  71. 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);
  72. 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 {
  73. 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 `α`
  74. 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 α]
                    ^
  75. 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 α]
                    ^
            "
  76. 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 `Ѧ`
  77. 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Ѧ
                 ^
            ");
  78. 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
  79. 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
  80. 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
                                          ^^
  81. 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
                                          ^^
            "#
  82. 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
                                          ^^
            "#
  83. 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();
  84. 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();
  85. 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
                            ^^
  86. 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
                            ^^
            "#
  87. identifier `αx` mixes scripts: Greek + Latin (in string/comment) (raw pass, confidence 0.40)

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

                // Unicode
                "α",
                "férrîs",
                "안녕하세요",
  89. 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);
                }
  90. 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.90 A test fixture array of base64-encoded strings.
    Reasoning

    The entries decode to short plain strings such as 'pat' and a test token-like value, in a fixture array. The base64 is used as test input data.

  91. 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 test fixture array of base64-encoded values.
    Reasoning

    The blobs are base64-encoded fixture strings in a test array, with a trailing newline typical of test data. Nothing indicates a live credential or executable payload.

  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.97 A test requirement URL containing a package URL with a sha256 fragment in a Rust test file.
    Reasoning

    A base64-like string inside a test fixture is a URL with a sha256 fragment and a hex-looking hash, not an encoded payload. The raw pass has a high false-positive rate, and this is a plain test URL.

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

    This is the standard documented installer one-liner for uv, a widely used and legitimate project. It is a markup prose example, so the pipe-to-shell pattern is the documented install method rather than hidden execution. Users are told the command, not made to run it covertly.

  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.90 Documentation showing the wget-based uv install command piped to sh.
    Reasoning

    Same legitimate documented uv installer pattern using wget, shown as a shell example in documentation.

  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.90 Project index docs showing the standard curl-pipe-to-sh uv installer.
    Reasoning

    Repeated official uv install one-liner in the project index docs. Legitimate installation guidance.

  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.85 Documentation example comparing pip and uv pip list output with diff.
    Reasoning

    This is a diff of pip list and uv pip list output in a console example. The variable command name is just the diff utility in an illustrative shell snippet; there is no malicious payload.

  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.88 Installer reference doc showing the official uv install script piped to sh with --help.
    Reasoning

    Documented uv installer one-liner with a help flag, in a console example. Legitimate install documentation.

  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 Cargo wrapper script that execs either a configured real cargo binary or cargo itself.
    Reasoning

    A wrapper that execs cargo auditable, using REAL_CARGO from the environment if set. This is a typical cargo wrapper pattern. The dynamic path is a configured tool path, not attacker-controlled input, though an env var could redirect it.

  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 located relative to its own directory.
    Reasoning

    The script calls a sibling helper resolved from SCRIPT_DIR, a normal repo-local pattern. SCRIPT_DIR is derived from the script's own location, so this is ordinary project tooling, not obfuscation.

  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 Test setup hook that runs a sibling codesign helper script.
    Reasoning

    A test setup hook calls codesign-macos.sh from SCRIPT_DIR with arguments. This is a repo-local helper invocation typical of build tooling.

  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-testing script that installs built wheels and smoke-tests the binaries with --help.
    Reasoning

    Installs wheels into a Python environment and then runs the installed binaries with --help. The command name comes from a loop over fixed names under a venv path set earlier in the script; the venv path is a locally created value, so this is ordinary release testing.

  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.80 Loop running the installed uv binaries from a test virtualenv with --help.
    Reasoning

    Runs the fixed binary names uv, uvx and uv-build from a virtualenv directory created by the same script. The variable path is a local build-test artifact, not untrusted input, so this is a normal smoke test.

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.0.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 .