Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain on-path network position
-
DeliveryVictim requests slashless directory over HTTPS
-
ExploitServer returns 301 to plaintext http:// URL
-
ExecutionNon-HSTS client follows redirect in cleartext
-
ImpactAttacker 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
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
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
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.
Primary rating from Vendor (chainguard).
CVSS VectorVendor: chainguard
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
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
EUVD-2026-92778
GHSA-cfhv-267f-j755
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB