Repository navigation
Conversation
lelia
temporarily deployed
to
socket-firewall
September 18, 2026 19:21 — with
GitHub Actions
Inactive
lelia
temporarily deployed
to
socket-firewall
September 18, 2026 19:35 — with
GitHub Actions
Inactive
Merged
lelia
force-pushed
the
lelia/tools-upgrade-maintenance
branch
from
November 4, 2026 16:39
4be28a9 to
72885d9
Compare
lelia
added a commit
that referenced
this pull request
Nov 4, 2026
The Socket Python CLI bump moves to #118 with the rest of the image toolchain refresh, so this PR carries only the release version, the SDK lock bump and the release notes. The 3.5.0 changelog keeps the upgrade note and the fix, minus the parser internals.
lelia
added a commit
that referenced
this pull request
Nov 4, 2026
socketsecurity 2.11.11, now bumped in #118, pins socketdev==3.6.2 exactly, so the SDK moves with it there. This PR keeps only the release version and notes. The 3.5.0 summary now names both Tier 1 changes that make this a minor release.
Moves every bundled tool to its latest release: OpenGrep v1.33.1, TruffleHog 3.99.8, Socket npm CLI 1.13.1, Socket Python CLI 2.11.11 (previously proposed in #134), uv 0.13.7, and in the app-tests image gosec v2.30.0 and Go 1.27.3. Trivy is already current on main. OpenGrep moves seven minors, so the Java rule set was re-measured on OWASP BenchmarkJava at the pinned corpus commit. 1.30.0 and 1.33.1 produce the same findings, so docs/java-sast-benchmark.md records 1.33.1 without new numbers.
All three Dockerfiles pinned their base and tool images as
`FROM image:${VERSION}` against an ARG, and the comments claimed Dependabot
tracked them through those FROM lines. It never did. Its Dockerfile parser is a
regex over FROM lines whose image and tag groups both require literal
characters, and it performs no ARG substitution, so every interpolated line
matched with no version and was skipped with no error at all.
The evidence: no Docker-ecosystem pull request has ever been opened against
this repo — all 33 Dependabot PRs are `python:uv` or `github-actions` — and
`git log -L` on the ARG pins shows they have only ever moved in hand-written
PRs. That is how uv came to sit 16 patch releases behind.
Images are now pinned as literal tags on their FROM lines, which is the only
form the parser reads. `node` and `uv` join the app-tests allow list, since an
`allow:` list silently drops images it does not name, and `securego/gosec`
leaves it: gosec is installed by a shell script and has no FROM line to match.
tests/test_dockerfile_pins.py transcribes the upstream regexes and asserts
every trackable FROM line parses to a version, that the allow lists cover every
image pinned, and that the one duplicated pin — the trufflehog label ARG, which
exists because a LABEL cannot read a FROM tag back — equals its FROM tag.
Two deliberate trade-offs: `--build-arg TRUFFLEHOG_VERSION=` no longer has any
effect, and TRIVY_IMAGE stays interpolated on purpose, because Socket's Trivy
build is digest-pinned and must not move independently.
Verified by building the heavy image with the documented public-Trivy
override: opengrep 1.33.1, trufflehog 3.99.8, socket 1.13.1, socketcli
2.11.11, uv 0.13.7, and the labels carry the same versions.
Socket npm CLI 1.9.0 and later fetch the Coana reachability engine from Socket instead of npm: a signed URL from api.socket.dev, served from storage.googleapis.com, with no npm fallback. Restricted networks that allowed only an npm registry or mirror now fail Tier 1. The heavy image's Python CLI made the same change in 2.11.0, which shipped undocumented in 3.4.1. docs/parameters.md gains a "Network access for Tier 1" section covering both hosts, the engine cache, the retired SOCKET_CLI_COANA_LAUNCHER and the --reach-version limit. The action, Docker, local install and README docs point to it where Tier 1 comes up, and the changelog carries it as an upgrade note.
socketsecurity 2.11.11 pins socketdev==3.6.2 exactly. With the CLI bump here and the SDK bump left to the release PR, the heavy image would run 3.6.2 in its system interpreter and 3.6.1 in the locked venv. Lock 3.6.2 and raise the source-install floor to match. Moved from #134.
lelia
force-pushed
the
lelia/tools-upgrade-maintenance
branch
from
November 4, 2026 21:11
b69f87b to
73da387
Compare
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
A Tier 1 scan behind a DNS allowlist showed three gaps in the earlier docs: - The engine needs the scanned ecosystem's package registry to install dependencies. Without it Tier 1 still reports success, but every vulnerability comes back as INSTALL ERROR, unless the workspace already has its dependencies installed. - The Socket CLI ignores HTTPS_PROXY and SOCKET_CLI_API_PROXY for these requests (1.1.165 and 1.13.1 alike), so the hosts must be allowed at the network level. - A Tier 1 failure does not change the scan's exit code. The api.socket.dev and storage.googleapis.com requirements, the ENOTFOUND error when storage is blocked, and the cache directory skipping the download on a warm run were all confirmed.
Live runs of both CLIs behind a logging proxy and a DNS allowlist: - The Socket npm CLI does not apply HTTPS_PROXY or SOCKET_CLI_API_PROXY to its own requests and fails to resolve api.socket.dev. Setting NODE_USE_ENV_PROXY=1 next to HTTPS_PROXY routes them through the proxy and a full Tier 1 scan completes. - The Python CLI (socketcli 2.11.11, heavy image) honors HTTPS_PROXY on its own, uses the same three hosts, degrades to INSTALL ERROR without the package registry, and exits 3 when storage.googleapis.com is blocked. Also corrects the Python CLI version: 2.11.0 was never published, so 2.11.1 is the first release that fetches the engine from Socket.
The Socket npm CLI does not apply HTTPS_PROXY to its own requests, so behind a proxy Tier 1 fails with `getaddrinfo EAI_AGAIN api.socket.dev`. All three images now set NODE_USE_ENV_PROXY=1, which makes Node apply HTTPS_PROXY, HTTP_PROXY and NO_PROXY and does nothing when none is set. Verified with the standard image on a network whose only egress is a logging proxy: with only HTTPS_PROXY set, Tier 1 completes with full results (1 reachable, 4 unreachable) and every request goes through the proxy. Without a proxy, results are unchanged. The docs drop the per-run NODE_USE_ENV_PROXY instruction for the images and keep it for native installs.
1.14.0 carries reachability fixes for --dynamic-sbom-inference builds and the same Coana CLI (15.14.1) and Node requirement as 1.13.1. Verified with the standard image: a Tier 1 scan returns full results (1 reachable, 4 unreachable) directly and on a network whose only egress is an HTTPS_PROXY.
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refreshes every bundled tool pin to its latest release, makes the image pins readable by Dependabot so they stop going stale, documents Socket Tier 1's new network requirements, and makes Tier 1 work behind an HTTP(S) proxy. This PR now owns every dependency and toolchain bump for 3.5.0; #134 is pure release prep.
Pins
mainv1.26.0v1.33.13.96.03.99.81.1.1651.14.02.11.32.11.11(moved from #134)3.6.13.6.2(moved from #134)0.12.10.13.7v2.28.0v2.30.01.26.51.27.3Trivy
0.76.1is already current onmain(#128).socketdevmoves here becausesocketsecurity==2.11.11pinssocketdev==3.6.2exactly; split across PRs, the heavy image would run 3.6.2 in its system interpreter and 3.6.1 in the locked venv. The source-install floor rises tosocketdev>=3.6.2. Python 3.12 and Node 22 are intentional major-line pins.Dependabot fix
Dependabot's Dockerfile parser (
shared_file_parser.rb) does no ARG substitution, soFROM image:${VERSION}lines are matched with no version and silently skipped. No Docker-ecosystem Dependabot PR has ever been opened here.FROM image:taglines; thePYTHON_VERSION,UV_VERSION,GOLANG_VERSIONandNODE_VERSIONARGs are gone.nodeandghcr.io/astral-sh/uv, dropssecurego/gosec(installed by script, no FROM line).check_core_tools.pyandcheck_release_docs.pyread the TruffleHog pin from its FROM line.tests/test_dockerfile_pins.pytranscribes the upstream regexes and fails if a FROM line becomes unparseable, an image is missing from an allow list, or the TruffleHog label ARG drifts from its FROM tag.--build-arg TRUFFLEHOG_VERSIONno longer has any effect.FROM ${TRIVY_IMAGE}stays interpolated on purpose, since Socket's digest-pinned Trivy moves only with trivy-dist releases.User-visible changes
api.socket.devand downloads fromstorage.googleapis.com, with no npm fallback.SOCKET_CLI_COANA_LAUNCHERno longer has any effect, and a--reach-versionolder than the move fails. The heavy image's Python CLI made the same change in 2.11.0, which shipped undocumented in 3.4.1. This is now an upgrade note in the changelog and a new Network access for Tier 1 section (hosts, failure modes, proxy limitation, cache), linked from the action, Docker, local install and README docs, and verified with a live run below.Tier 1 behind a proxy
All three images now set
NODE_USE_ENV_PROXY=1. The Socket npm CLI doesn't applyHTTPS_PROXYto its own requests, so Tier 1 behind a proxy failed withgetaddrinfo EAI_AGAIN api.socket.dev. With the variable set, Node appliesHTTPS_PROXY,HTTP_PROXYandNO_PROXY, and it does nothing when none of them is set. This is beyond a pin refresh, but it came out of validating this PR, so it ships here. Verified with the rebuilt standard image: with onlyHTTPS_PROXYset, Tier 1 returns full results through the proxy, and the no-proxy run is unchanged. The CLI-side docs are SocketDev/socket-cli#1700 and SocketDev/socket-python-cli#441.Verification
pytest: 508 passed, 1 skipped (intended: app-tests has no TruffleHog label), withSOCKET_BASICS_REQUIRE_OPENGREP=1on OpenGrep 1.33.1.OWASP BenchmarkJava (
51f0a7c): 1.30.0 and 1.33.1 produce the same 1,527 findings; score is still 48.9 (precision 76.7%, recall 71.3%).check_release_docs.py --checkin sync;docker build --checkclean on all three Dockerfiles.Live Tier 1 run (standard image, real org,
SKIP_SOCKET_SUBMISSION=1, npm project onlodash@4.17.15), with hostname allowlisting through a DNS sidecar:api.socket.dev,storage.googleapis.com,registry.npmjs.orgapi.socket.dev,storage.googleapis.comINSTALL ERROR(no registry to install deps)node_modulespreinstalledstorage.googleapis.comblockedFailed to get the Coana CLI 15.14.1: getaddrinfo ENOTFOUND storage.googleapis.comstorage.googleapis.comblockedRepeated with the heavy image's Python CLI (
socketcli 2.11.11 --reach): same three hosts and the sameINSTALL ERRORdegradation without the registry. With storage blocked it exits 3.Proxy behavior: the Socket npm CLI ignores
HTTPS_PROXYandSOCKET_CLI_API_PROXY(1.1.165 behaves the same, so not a regression) and fails withgetaddrinfo EAI_AGAIN api.socket.dev. AddingNODE_USE_ENV_PROXY=1routes everything through the proxy, and a full Basics Tier 1 scan completes (1 reachable, 4 unreachable).socketclihonorsHTTPS_PROXYon its own. A Basics Tier 1 failure leaves the scan's exit code at 0. All of this is now documented.Socket npm CLI 1.14.0: the rebuilt standard image reports
socket1.14.0, and a Tier 1 scan returns full results both directly and with onlyHTTPS_PROXYavailable. The other runs above used 1.13.1, which bundles the same Coana CLI (15.14.1).Heavy image built end to end with the documented
TRIVY_IMAGE=aquasec/trivy:0.76.1override. Inside it: opengrep 1.33.1, trufflehog 3.99.8, socket 1.13.1, socketcli 2.11.11, uv 0.13.7, Python 3.12.16, Node 22.23.4. The OCI labels match.Merge order
#125 (merged) → this PR → #134. Rebased on main after #125; both
[Unreleased]entries sit side by side. After this merges, #134 rerunsprep_release.pyto fold them into[3.5.0].Note
Medium Risk
Bundled tool upgrades and Tier 1 network/proxy requirements affect customer egress and scan behavior; Dockerfile pin strategy changes build overrides but is mostly maintenance and supply-chain hygiene.
Overview
Refreshes bundled scanner and CLI versions across all Docker images and raises the source-install floor to
socketdev>=3.6.2. TruffleHog 3.99.8 clears the Go CVE called out in 3.4.1; OpenGrep, Socket npm/Python CLIs, uv, gosec, and app-tests Go move to current pins with benchmark/docs updated accordingly.Dependabot fix: Base and tool images (
python,trufflehog,uv,golang,node) are now literalFROM image:taglines because Dependabot does not substitute ARGs—interpolatedFROMlines were silently skipped, so pins never moved. Script-installed tools (OpenGrep, gosec, Socket CLIs) stay on ARG pins;--build-arg TRUFFLEHOG_VERSIONno longer affects the build. Newtests/test_dockerfile_pins.pymirrors Dependabot’s parser and checks allow-lists;check_core_tools.py/check_release_docs.pyread TruffleHog from itsFROMtag.Tier 1 behavior and ops: Documents that Socket npm CLI 1.9+ downloads the Coana engine from
api.socket.devandstorage.googleapis.com(not npm). All three images setNODE_USE_ENV_PROXY=1so Tier 1 works behindHTTPS_PROXYwhen the Socket CLI would otherwise ignore it. Changelog/README/action/Docker guides add upgrade notes, network egress, cache volume hints, and troubleshooting.Reviewed by Cursor Bugbot for commit f4d92ab. Configure here.