Skip to main content

Chainguard Academy EUVDEUVD-2026-92778

| CVE-2026-105766 LOW
Cleartext Transmission of Sensitive Information (CWE-319)
2026-10-05 chainguard GHSA-cfhv-267f-j755
2.3
CVSS 4.0 · Vendor: chainguard
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Gain on-path network position
  2. Delivery
    Victim requests slashless directory over HTTPS
  3. Exploit
    Server returns 301 to plaintext http:// URL
  4. Execution
    Non-HSTS client follows redirect in cleartext
  5. Impact
    Attacker reads or modifies served documentation

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V12 - Secure Communication Transport encryption
Exploitation Conditions

Exploitation requires three concrete conditions drawn from the description: (1) the attacker must hold an on-path/MITM network position between victim and server; (2) the victim must request a directory path WITHOUT a trailing slash over HTTPS, triggering the trailing-slash directory redirect that emits $scheme://...; and (3) the client must NOT enforce HSTS - command-line HTTP clients and scripts that follow redirects are affected, whereas HSTS-preload browsers are NOT, because the .dev TLD is on the preload list. The downgrade exists specifically because TLS terminates at the Cloud Run load balancer in front of Nginx, so $scheme evaluates to 'http'. These limiting factors (required MITM position, required non-HSTS client, required slashless path) sharply narrow realistic exploitation despite the network attack vector.

Impact

This is a genuinely low-priority issue, and the signals are largely consistent in saying so. The input CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:L/VA:N) yields a score of 2.3 (Low): although it is network-reachable and needs no privileges, it carries an Attack Requirement (AT:P, the attacker must already hold an on-path/MITM position) and passive user interaction (UI:P, the victim must follow the redirect), and the only impact is low integrity (VI:L) with no confidentiality or availability impact. There is no EPSS score, no CISA KEV listing, and no public exploit code in the provided data - so exploitation status is 'no public exploit identified at time of analysis.' No signals conflict here: the low CVSS, absence of KEV/EPSS/POC, and the narrow preconditions all point the same direction. The one nuance worth stating explicitly is that the CWE-319 (cleartext transmission) risk is heavily mitigated for mainstream clients: the .dev TLD is on the HSTS preload list, so modern browsers never honor the http:// downgrade; only non-HSTS-enforcing clients (curl, wget, scripts following redirects) are exposed, and only when an attacker is already on-path. This is a defense-in-depth hardening fix for a single documentation website, not an urgent patch.

Exploit ScenarioDerived

An attacker positioned on the network path (e.g. shared Wi-Fi, a compromised router, or an upstream hop) between a victim and Chainguard Academy waits for a request to a slashless directory path over HTTPS. Because TLS terminates at the Cloud Run load balancer, Nginx sees $scheme as 'http' and returns a 301 redirecting the client to a plaintext http:// URL; a non-HSTS client such as curl or a scripting tool follows it in cleartext, letting the attacker read or tamper with the documentation content returned. No public exploit code is referenced, and HSTS-preload browsers are immune.

Monitor Track and reassess. Why: Vendor states no customer action required.
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 05, 2026

Trailing-slash directory redirects emitted by Chainguard Academy's nginx configuration downgrade clients to plaintext HTTP, because the redirect is built from the $scheme variable and TLS terminates at the Cloud Run load balancer in front of Nginx, making $scheme evaluate to "http". An attacker who already holds an on-path (MITM) network position can therefore read or modify documentation content delivered to a victim who requests a slashless directory path over HTTPS, but only when the client does not enforce HSTS - command-line HTTP clients and scripts that follow redirects are affected, while HSTS-preload browsers are not, since the .dev top-level domain is on the preload list. This is a low-severity issue (CVSS 4.0 base 2.3; independently assessed as CVSS 3.1 AV:N/AC:H/PR:N/UI:R with low integrity impact only), and no public exploit was identified at time of analysis.

RemediationAI

Upstream fix available (PR/commit); released patched version not independently confirmed - apply repository commit 93dc0e50739c225f5aee2e803800a47fc0feb906 (pull request https://github.com/chainguard-dev/edu/pull/3989), which hardcodes "https://" in the trailing-slash redirect (replacing $scheme:// with https://), adds $is_args$args so the query string is preserved exactly once, and changes the redirect map to key on a query-stripped $request_path instead of $request_uri. If updating the repository is not immediately possible, the equivalent Nginx-level workaround is to replace any "return 301 $scheme://..." directive in the server block with an explicit "return 301 https://..." (or configure real_ip/forwarded-header handling so $scheme reflects the external protocol); the trade-off is that hardcoding https breaks any deployment that genuinely serves the site over plaintext HTTP, and relying on forwarded headers requires correct trust configuration for the load balancer or it can be spoofed. Relying on HSTS is not a general remedy: the .dev preload list already protects mainstream browsers, but it does nothing for command-line HTTP clients and scripts that follow redirects, which are the clients actually affected. Operators who cannot patch immediately can reduce exposure by ensuring clients never follow plaintext redirects (for example, curl --max-redirs 0 or refusing http:// URLs in scripts) and by returning 404 or a direct 200 for slashless directory paths instead of a redirect, with the side effect of changing canonical URL behavior and potentially breaking inbound links.

Affected VersionsENISA

Chainguard Academy (edu) 0b75ff98057f69b044a3e7194e428066ac5ad0d4 <93dc0e50739c225f5aee2e803800a47fc0feb906

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The root cause is CWE-319, Cleartext Transmission of Sensitive Information, arising from an Nginx rewrite/redirect construct rather than from application code. The site (the chainguard-dev/edu repository, described by CPE cpe:2.3:a:chainguard:chainguard_academy_(edu)) runs Nginx behind a Cloud Run load balancer that terminates TLS, so the connection between Nginx and the load balancer is plaintext and the $scheme variable resolves to "http" even for externally HTTPS requests. The affected rule used the form "return 301 $scheme://$host$uri/;" to canonicalize a directory path that lacks a trailing slash, which caused the Location header to advertise a plaintext http:// URL. The same configuration block used an Nginx map directive keyed on $request_uri, which includes the query string; because nearly every alias rule ended in a $1 capture, the query string could be duplicated into the redirected URL (tracked in the project as DOCS-187, and the alias bounding issue as DOCS-186), which the fix also addresses by introducing a $request_path key with the query stripped and by carrying $is_args$args explicitly across the "return" hop. Browser clients that enforce HSTS - including all clients relying on the HSTS preload list, on which the .dev TLD appears - upgrade the request before it ever leaves the host and are therefore not exposed to the downgrade. The assessed vector (AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N) reflects the high attack complexity imposed by the required on-path position, the required user interaction, and the confinement of impact to integrity of redirected documentation content.

Know when Chainguard Academy Edu gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (chainguard) PRIMARY 2.3 LOW
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
vuln.today AI 3.1 LOW

AC:H and UI:R because the attacker needs an on-path position and the victim must follow a redirect with a non-HSTS client; I:L for content tampering, C:N as the docs are public, no privileges needed.

3.1 AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (chainguard).

CVSS VectorVendor: chainguard

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Use of the backend-facing $scheme variable in the trailing-slash directory redirect in nginx.conf of Chainguard Academy (edu) from commit 0b75ff98057f69b044a3e7194e428066ac5ad0d4 before commit 93dc0e50739c225f5aee2e803800a47fc0feb906 allows an on-path network attacker to read or modify documentation content served to a victim via an HTTPS request for a slashless directory path, because TLS terminates at the load balancer in front of Nginx and the resulting 301 response redirects the client to a plaintext http:// URL. Browsers that ship the HSTS preload list are not affected, because the .dev top-level domain is preloaded; clients that do not enforce HSTS, such as command-line HTTP clients and scripts that follow redirects, are affected.

Threat Intelligence Overview

EPSS Score
0.1%
Top 99% exploitable
Prevalence
Rare
single vendor documentation website, not broadly deployed software
Service Type
Hosted
Vendor-managed, no client patch needed
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity LOW
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
Vendor states no customer action required
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Low
Technical Impact
Partial

Priority Score

12
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +12
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy