Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach OIDC-enabled Tugtainer login
-
DeliverySupply crafted/manipulated id_token in code exchange
-
ExploitClaims accepted without signature/iss/aud/exp checks
-
ExecutionImpersonated user_id establishes authenticated session
-
ImpactControl Docker container update management
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Signature verification
|
| Exploitation Conditions | Exploitation requires that the Tugtainer instance (prior to v1.31.3) has the OIDC login flow configured and enabled, with OIDC_CLIENT_ID/OIDC_REDIRECT_URI and a discovery document in use - instances using only local authentication are unaffected. The attacker must be able to cause a crafted or manipulated id_token (arbitrary email/sub/preferred_username claims) to be returned to the backend during the authorization-code token exchange, since the code accepts unverified claims directly; this is the AC:H limiting factor, as it is not a plain unauthenticated request to a public endpoint. The patched version additionally adds optional OIDC_ALLOWED_EMAILS / OIDC_ALLOWED_SUBJECTS allowlists, indicating that even post-fix, any validly-authenticated identity is accepted by default unless those allowlists are set. |
| Impact | The CVSS 3.1 base score of 8.1 (AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H) reflects a network-reachable, pre-authentication authentication-bypass flaw (CWE-347) with full CIA impact once triggered - consistent with the confirmed code evidence showing jose.jwt.get_unverified_claims() being used in place of jwt.decode(), skipping signature, aud, iss, and exp checks before the claims become the session user_id. The AC:H rating is well-justified: an attacker cannot simply POST a forged JWT to an endpoint; they must get a crafted or manipulated id_token to be accepted during the server-side OIDC code exchange (e.g., via a rogue/attacker-influenced identity provider, a manipulated token-endpoint response, or algorithm/claim manipulation), which raises real-world difficulty above a trivial bug. No EPSS score, no CISA KEV listing, and no public exploit were provided, so this is no public exploit identified at time of analysis - meaning risk is driven by the flaw's severity and not by observed exploitation. Net assessment: a genuinely serious authentication flaw for any Tugtainer instance exposing OIDC login to attackers, but tempered by (a) niche/homelab deployment footprint, (b) the AC:H prerequisites, and (c) that exploitation only matters when OIDC login is actually configured and enabled. This is a legitimate high-severity issue to patch for affected deployments rather than a mass-exploitation emergency. |
| Exploit ScenarioDerived | An operator configures Tugtainer with OIDC SSO exposed over the network. An attacker who can supply or influence the id_token returned during the code exchange (for example via a rogue/attacker-controlled OIDC provider the instance can be pointed at, or by manipulating the unverified token) presents a JWT carrying an arbitrary email/sub/preferred_username; because the backend never verifies the signature, issuer, audience, or expiry, those claims are accepted verbatim as the session user_id, granting authenticated access to Tugtainer's Docker container management. No public exploit code was identified at the time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 30, 2026
In Tugtainer versions before 1.31.3, the OIDC login flow accepts unverified JWT claims from the identity provider's id_token, allowing an unauthenticated remote attacker who can influence the token exchange to impersonate any identity and gain full control of the Tugtainer session. The flaw is a pre-authentication authentication bypass (CWE-347) with high confidentiality, integrity, and availability impact once triggered; exploitation requires OIDC to be configured and enabled. No public exploit has been identified at the time of analysis, and the issue is not listed in CISA KEV. A vendor patch is available in version 1.31.3.
RemediationAI
Upgrade Tugtainer to version 1.31.3, which enforces full OIDC id_token verification (signature, issuer, audience, expiry, and required claims) and supports optional OIDC_ALLOWED_EMAILS and OIDC_ALLOWED_SUBJECTS allowlists to restrict accepted identities. Vendor-released patch: 1.31.3. If immediate upgrade is not possible, disable the OIDC login flow (remove OIDC_CLIENT_ID/OIDC_REDIRECT_URI configuration or otherwise turn off the feature) and rely on local authentication; this eliminates the attack vector at the cost of losing SSO. As a defense-in-depth measure after upgrading, configure OIDC_ALLOWED_EMAILS and/or OIDC_ALLOWED_SUBJECTS, since the patched default accepts any validly authenticated identity unless those allowlists are set. Monitor authentication logs for anomalous OIDC logins with unexpected email/sub claims. See the advisory at https://github.com/Quenary/tugtainer/security/advisories/GHSA-crjc-6vc7-xrfh and the release notes at https://github.com/Quenary/tugtainer/releases/tag/v1.31.3.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Tugtainer uses OpenID Connect (OIDC) for optional single sign-on. In the authorization-code flow, the backend exchanges the code at the provider's token endpoint and receives an id_token (a JWT). Instead of calling jose.jwt.decode() with proper key material, audience, issuer, and expiry validation, the vulnerable code path in backend/modules/auth/providers/auth_oidc_provider.py used jose.jwt.get_unverified_claims(), which base64-decodes the JWT payload without any cryptographic verification. This is CWE-347 (Improper Verification of Cryptographic Signature). The attacker-controlled claims (email, sub, preferred_username) were then used directly as the Tugtainer session user_id, so a forged token with an arbitrary email or subject could impersonate any user, including administrators. The patch in v1.31.3 replaces this with a full verification routine: it fetches the provider's JWKS, restricts signing algorithms to an asymmetric allowlist (RS256/RS384/RS512/ES256/ES384/ES512) to prevent algorithm-confusion attacks, validates the signature, issuer, audience (aud/azp), expiration, and required claims, and adds optional OIDC_ALLOWED_EMAILS/OIDC_ALLOWED_SUBJECTS allowlists.
Know when Tugtainer 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
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Network-reachable pre-auth flaw (PR:N/UI:N), but crafting/injecting an accepted id_token into the server-side exchange is non-trivial (AC:H); successful bypass yields full admin access to Docker management (C/I/A:H).
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Tugtainer is a self-hosted app for automating updates of Docker containers. Prior to version 1.31.3, when the OIDC login flow completes, backend/modules/auth/providers/auth_oidc_provider.py decodes the id_token returned by the identity provider's token endpoint using jose.jwt.get_unverified_claims() instead of jwt.decode(). This skips signature verification, audience (aud) validation, issuer (iss) validation, and expiry (exp) checking entirely. The extracted claims (email/sub/preferred_username) are then used directly as the user_id for the resulting Tugtainer session. This issue has been patched in version 1.31.3.
Technical POC Analysis
CWE-347 (Improper Verification of Cryptographic Signature), with the advisory also mapping CWE-345 (missing aud/iss/exp checks) and CWE-287.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Tugtainer deployments running versions prior to 1.31.3 with OIDC authentication enabled are exposed to an identity-verification flaw that lets an attacker who can influence the login token exchange assume any user identity and take full control of a Tugtainer session. Because Tugtainer orchestrates container updates across managed hosts, a hijacked session can translate directly into unauthorized changes to production workloads, so leadership should treat this as a potential integrity and availability risk to the environments it manages, not merely an application-level login issue. No public exploit code has been identified at the time of analysis and the issue is not listed in CISA KEV, but exploitation requires only that OIDC be configured and enabled.
Apply vendor patch.
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.
Tugtainer versions before 1.16.1 transmit authentication credentials through URL query parameters rather than request bo
Server-side template injection in Tugtainer (self-hosted Docker container auto-update tool) versions before 1.30.2 lets
Unauthenticated attackers can reach the Tugtainer Agent's Docker management API and gain effectively full control over c
Improper access control in Tugtainer before version 1.30.3 causes the OIDC login flow to start even when OIDC_ENABLED=fa
Authenticated server-side request forgery in Tugtainer before version 1.30.6 allows any logged-in user with access to no
Command argument injection in the Tugtainer agent API (POST api/command/run) lets remote attackers append or substitute
EUVD-2026-90195
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB