Skip to content

Releases

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 04 Nov 23:37

Changelog

A release focused on closing ways an untrusted repository could affect the machine or leak data during a scan.

Security

  • No more reads outside the repository. Surface files like .npmrc or scripts/*.sh that are symlinks pointing outside the scanned tree are now refused. Previously, with -llm, scanning an untrusted repo could follow such a link and send the file's contents, potentially your local credentials, to the model endpoint.
  • LLM review stays on your endpoint. Redirects that leave the configured host or scheme are no longer followed. A 307/308 redirect replays the request body, so a redirecting endpoint could previously send repository contents, and possibly your token, somewhere else.
  • Shell-safe advice. The git clone commands side-eye prints are now shell-quoted. A remote URL containing ; or $(...) can no longer turn the printed advice into an execution.
  • Correct files scanned on raw endpoints. A branch or tag containing ? or # is now escaped in raw file URLs, so a URL scan reads the right ref.
  • Harder-to-shape LLM prompt. The prompt's untrusted-data fence is drawn from crypto/rand per run, and every file-listing line is quoted, so crafted file names can no longer break out of the listing and read as instructions.

Reliability

  • No hangs on hostile files. A FIFO or device named like a surface file used to block a scan forever while it waited for a writer. Both are now refused, and files over 8 MiB are treated as unreadable and skipped.
  • Bounded ZIP scans. A ZIP archive with more than 100,000 entries now fails immediately with an explanatory error, instead of stalling the scan with unbounded memory use.

Install

  • The installer fails closed without gh. It used to print a warning and install an unverifiable binary anyway. Now it stops and explains the two ways forward: install gh, or set SIDE_EYE_INSTALL_SKIP_ATTESTATION=1 for an air-gapped mirror.
  • HTTPS everywhere. Every download, including redirects, requires HTTPS with TLS 1.2 or later.

Under the hood

  • Go 1.27.3 build. Clears the 9 standard-library vulnerabilities govulncheck reported for 1.27.1.
  • Dependencies updated. All dependencies are at their latest versions.
  • Security-conscious CI. CI now runs govulncheck on every push and PR, and the release workflow runs vet and tests before publishing any asset.
  • Tags only from reviewed commits. Release tags can only be cut from commits pushed to origin/main.
  • New developer targets. make upgrade updates all dependencies, and make check mirrors the full CI behavior.

Commits

  • d9b7393 docs: cover the security fixes and tooling added since v1.0.1
  • 903e199 chore(make): add upgrade target and make check mirror CI
  • 2668562 fix(go): bump toolchain to 1.27.3 and deps to latest
  • 6fd06d1 fix: refuse a ZIP archive with more entries than side-eye will index
  • 72b1ab3 fix: shell-quote the clone command printed in remote-scan advice
  • 473e76b fix: escape the whole branch or tag in raw file URLs
  • 183ec25 fix: draw the LLM prompt fence from crypto/rand and quote listing lines
  • 707f673 ci: run vet and tests before the release is published
  • 5318953 ci: scope the test workflow token and run govulncheck
  • 1a9e3b2 fix: release only the commit that main has on origin
  • 7d3fd43 fix: make the installer fail closed without gh and pin curl to https
  • cab0767 fix: stop the LLM client following redirects off the configured endpoint
  • 4a99860 fix: confine repository file reads to the scanned tree
  • 1446079 fix: refuse FIFOs, devices, and oversized files during a scan

v1.0.1

Choose a tag to compare

@github-actions github-actions released this 06 Oct 00:01

Changelog

  • 19f94a3 add screenshot in readme
  • 8bc1590 fix: run the shell and Android checks against ZIP and URL targets
  • bb382a8 build: bump golang.org/x/sys to v0.44.0 for GO-2026-5024
  • 51e8757 fix: verify build provenance in the installer, not just the checksum
  • c31c8e9 fix: fence the LLM prompt and refuse cleartext endpoints
  • 1efb420 fix: drop -token so a secret never reaches argv
  • 47e9420 fix: keep include.path and core.hooksPath inside the scanned tree
  • 3d44fba fix: marshal finding severity as a name, not an integer
  • f247150 fix: strip terminal escape sequences from report output

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 05 Oct 22:05

Changelog

  • 8e08286 docs: add the banner image and logo assets
  • 2645598 docs: link the remaining surface items to their own documented abuse
  • 48524de docs: link each checked surface to a real exploit of it
  • b129bce build: add a make release target
  • 3ab8ac6 docs: make the README user focused and split LLM setup into its own page
  • ceef454 docs: add developer docs for architecture, rules, and each scan path
  • aff5e04 docs: add the README with the threat model and usage
  • a879fac build: add cross-platform releases and an install script
  • fd9ad78 ci: run vet and the full test suite on every push
  • e64970d chore: add make targets for install, test, check, and scan
  • 7f14397 test: cover ZIP, worktree, and LLM paths end to end
  • a7cabc3 test: drive the built binary against real repositories
  • d57e385 feat: add the CLI entry point that dispatches on target type
  • b64de29 test: cover the LLM pass with a stub endpoint and the selection rules
  • ec2009d feat: add an optional LLM review pass over the execution surface
  • 711dc03 feat: scan a ZIP archive, including a bundled .git directory
  • b4d20c3 test: cover URL parsing and the remote source contract
  • 72a0524 feat: print findings as a table or JSON with per-target advice
  • 4c5d515 feat: scan a remote repository over HTTPS without cloning
  • 07996e5 feat: render findings in a fixed-width box table
  • 20ec03c feat: add shared terminal styling, banner, and progress spinner
  • be89675 test: cover Android build execution and shell script heuristics
  • 7e46e67 test: cover config parsing, git rules, and worktree checks through fixtures
  • b900823 feat: detect install hooks and Android build-time command execution
  • 7b204ef feat: detect editor tasks and shell setup files that auto-run
  • 1523ce7 feat: detect git config keys, hooks, and drivers that run commands
  • 48f2992 feat: model findings, parse git config, and read the worktree
  • b794650 chore: initialize Go module and ignore rules
  • 03edbfb docs: add Apache 2.0 license
  • 7a6c1fd init