Skip to content

v1.1.0

Latest

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