CL-SN55 941 —
GPT-56T 861 —
GPT-6S 837 —
GPT-56SC 837 +8.6%
CL-OP55X 831 +8.8%
GROK-46H 831 +8.8%
DSK-V4PH 831 +8.8%
GLM-52 822 +3.9%
GPT-61S 818 —
MUSE-SPK 804 -3.9%
CL-FAB5H 749 +9.8%
GLM-5 749 -3.9%
CL-OP5H 724 +10.2%
CL-OP5X 722 +10.2%
QWEN-38X 722 -3.9%
GEM-37FH 720 +10.3%
KIMI-K3X 718 -3.6%
CL-OP46H 707 +10.5%
CL-OP55H 705 +10.5%
GPT-6A 704 -5.1%
CL-OP47H 696 +10.7%
GEM-38FH 687 -3.5%
GEM-36FH 647 +11.6%
CL-OP48H 644 +11.6%
GEM-35FH 630 +11.9%
GPT-55H 588 +12.6%
GPT-56S 586 -0.5%
CL-OP47 550 -0.5%
INKL 531 —
GEM-3P 495 —
CL-OP46 491 -0.2%
GEM-31P 489 -2%
CL-OP48 485 —
GPT-6L 436 —
GPT-55 398 -2%
CL-SN55 941 —
GPT-56T 861 —
GPT-6S 837 —
GPT-56SC 837 +8.6%
CL-OP55X 831 +8.8%
GROK-46H 831 +8.8%
DSK-V4PH 831 +8.8%
GLM-52 822 +3.9%
GPT-61S 818 —
MUSE-SPK 804 -3.9%
CL-FAB5H 749 +9.8%
GLM-5 749 -3.9%
CL-OP5H 724 +10.2%
CL-OP5X 722 +10.2%
QWEN-38X 722 -3.9%
GEM-37FH 720 +10.3%
KIMI-K3X 718 -3.6%
CL-OP46H 707 +10.5%
CL-OP55H 705 +10.5%
GPT-6A 704 -5.1%
CL-OP47H 696 +10.7%
GEM-38FH 687 -3.5%
GEM-36FH 647 +11.6%
CL-OP48H 644 +11.6%
GEM-35FH 630 +11.9%
GPT-55H 588 +12.6%
GPT-56S 586 -0.5%
CL-OP47 550 -0.5%
INKL 531 —
GEM-3P 495 —
CL-OP46 491 -0.2%
GEM-31P 489 -2%
CL-OP48 485 —
GPT-6L 436 —
GPT-55 398 -2%
← Back to feed

Strix Got Admin Access to Baseten's Production GitHub in 25 Minutes via Docker Layer Leak

Security researchers at Strix AI published a post-mortem on September 1 detailing how they obtained admin access to Baseten’s production GitHub in under 25 minutes, with no zero-day exploits required.

The attack vector: a GitHub personal access token belonging to the basetenbot service account was embedded in the layer history of a Docker image (baseten/baseten-app) stored in a publicly accessible Harbor container registry on *.baseten.co. Harbor registries require authentication by default; Baseten’s instance had an unauthenticated public project.

How it unfolded

Strix began with black-box reconnaissance against *.baseten.co subdomains. The team identified a Harbor container registry instance with a publicly accessible project. By pulling the baseten/baseten-app image and inspecting its layer history, they found a GitHub PAT for the basetenbot service account in the created_by field of an image layer.

The token had not been explicitly stored in a configuration file. It was embedded during an image build step and never cleaned out. The standard practice of scrubbing secrets from Docker layers before pushing to any registry had been skipped.

The extracted PAT carried admin-level scope on Baseten’s production GitHub repositories. Total time from starting reconnaissance to confirming access: 25 minutes.

What was at risk

Baseten is a leading AI model deployment platform, valued at $13 billion following a $1.5 billion Series F in June 2026. Production GitHub access at a company of this scale would expose model serving code, API credential stores embedded in code history, deployment pipelines, and internal tooling.

Strix’s agent did not read or exfiltrate any production data beyond confirming the token’s validity and scope.

Responsible disclosure

Strix reported the finding on July 13, 2026. Baseten revoked the GitHub PAT and restricted public access to the Harbor registry the following day. The post-mortem was published on September 1 after the fix was confirmed stable.

Baseten confirmed no customer data was accessed during the research exercise.

The underlying class of vulnerability

Docker layer history is a well-documented credential leak vector. Secrets passed as build arguments or set during image construction steps persist in the layer history unless explicitly cleaned using multi-stage builds, --secret mounts, or post-build squash operations. Images pushed to registries carry that history.

Publicly accessible container registries at major AI infrastructure companies make the exposure surface larger than it appears. The credential is not in code — it is in a compiled artifact — which makes standard secret-scanning tools miss it unless they are configured to scan image layers rather than source files.