Skip to main content

gist RubyGem EUVDEUVD-2026-92134

| CVE-2026-105221 CRITICAL
Improper Certificate Validation (CWE-295)
2026-10-04 VulnCheck GHSA-phqh-xp3p-h6mr
9.1
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Gain on-path network position
  2. Delivery
    Present forged TLS certificate
  3. Exploit
    gist client accepts cert (VERIFY_NONE)
  4. Execution
    Intercept GitHub API HTTPS traffic
  5. Persist
    Steal OAuth token and credentials
  6. Impact
    Read or modify victim gists

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V12 - Secure Communication Certificate validation
Exploitation Conditions

Exploitation requires the attacker to hold an active on-path (man-in-the-middle) position on the network between the gist client and the GitHub API - this is the concrete limiting factor reflected by CVSS AC:H and AT:P. The defect itself needs no special product configuration: any invocation of the gist RubyGem before version 6.1.0 is vulnerable by default because lib/gist.rb's http_connection unconditionally sets OpenSSL::SSL::VERIFY_NONE, disabling TLS certificate validation for all HTTPS calls. No authentication is required of the attacker (PR:N) and no victim interaction beyond normally running the tool; the practical constraint is purely network adjacency, so risk is highest on untrusted or shared networks and negligible on fully trusted paths.

Impact

The CVSS 4.0 base score of 9.1 (Critical) is driven by high confidentiality and integrity impact (VC:H/VI:H) with network vector and no privileges required (AV:N/PR:N/UI:N), but two metrics materially lower the real-world risk: AC:H and AT:P both signal that exploitation requires the attacker to first achieve a privileged on-path/man-in-the-middle network position, which is not trivially automatable or opportunistic. No EPSS score was provided, the CVE is NOT on CISA KEV, and no public exploit code is referenced, so there is no evidence of active or widespread exploitation. This is best characterized as a genuine but conditional flaw: the impact is severe (OAuth token and credential theft against GitHub API traffic) yet exploitation is gated on network-adjacency, making it a targeted-threat concern (e.g., hostile Wi-Fi, compromised network paths) rather than a mass-exploitation priority. Note the signal contrast: a 9.1 'Critical' label overstates urgency here because the attack requirement (on-path position) is a significant real-world barrier that raw severity alone obscures.

Exploit ScenarioDerived

A developer on an untrusted network (e.g., public Wi-Fi or a compromised corporate segment) runs the gist CLI, which connects to the GitHub API with TLS certificate verification disabled (VERIFY_NONE). An attacker already positioned on the network path presents a forged certificate, transparently intercepts the HTTPS session, and captures the OAuth token and login credentials, then reads or modifies the victim's gists. No public exploit code is referenced, but the attack is straightforward with standard MITM tooling given on-path access.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 04, 2026

Improper TLS certificate validation in the gist RubyGem before 6.1.0 allows an on-path attacker to intercept and alter every HTTPS request the tool makes to the GitHub API, because the http_connection helper in lib/gist.rb unconditionally sets OpenSSL::SSL::VERIFY_NONE. The affected component is the defunkt:gist gem (CPE cpe:2.3:a:defunkt:gist:*:*:*:*:*:*:*:*, all versions below 6.1.0), and a successful man-in-the-middle attacker can present any certificate to harvest OAuth access tokens and login credentials and to read or modify the victim's gists; the CVSS 4.0 base score of 9.1 reflects high confidentiality and integrity impact with no privileges or user interaction required. Exploitation requires the attacker to already hold a privileged on-path network position (AC:H/AT:P in both the CVSS 4.0 vector and the independent CVSS 3.1 assessment AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N), no public exploit code has been identified at time of analysis, and there is no CISA KEV entry. A vendor fix is available in version 6.1.0.

RemediationAI

Vendor-released patch: gist RubyGem 6.1.0, which changes the connection setup from OpenSSL::SSL::VERIFY_NONE to OpenSSL::SSL::VERIFY_PEER in both lib/gist.rb and the generated build/gist file. Upgrade immediately with gem update gist (or gem install gist -v 6.1.0), and rebuild or redeploy any bundle that vendors the single-file build/gist artifact, since a gem update alone will not replace an already-shipped bundled script; the exact fix commit is https://github.com/defunkt/gist/commit/07ccc1a6d46e9d36f0e85d0b1c5d795890ae6bcf and the advisory is https://www.vulncheck.com/advisories/gist-rubygem-before-6.1.0-disabled-tls-certificate-verification. If upgrading is not immediately possible, there is no supported configuration switch to enable verification, so the only effective compensating controls are environmental: run gist only from networks you fully trust or through a VPN/egress tunnel that prevents local on-path interception (trade-off: does not protect against an attacker on the tunnel path itself), block untrusted network segments and rogue/transparent proxies from the client subnet, and avoid using the tool over public Wi-Fi, conference, or shared-tenant networks. Treat any operation performed with an affected version on an untrusted network as potentially compromised: revoke and reissue the GitHub OAuth token used by gist, change the associated account credentials if they were entered during that session, and review audit logs and gist revision history for unauthorized reads or modifications.

Affected VersionsENISA

gist 4.0.0 <6.1.0

Affected Packages

euvd gist fix: 6.1.0

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

The vulnerable code is in the Ruby implementation of the gist command-line client, specifically the http_connection helper at lib/gist.rb lines 466-468, which builds the Net::HTTP/Net::HTTPS connection used for all GitHub API calls and sets connection.verify_mode = OpenSSL::SSL::VERIFY_NONE. This maps to CWE-295 (Improper Certificate Validation): by disabling OpenSSL peer verification, the client skips both certificate-chain-of-trust validation and hostname verification, so any certificate - self-signed, expired, or issued for an unrelated name - is accepted for api.github.com and gist.github.com. Because the tool transmits OAuth access tokens (stored locally and used for authenticated gist operations) and login handling over that same channel, an attacker positioned on the network path can terminate TLS transparently and read or rewrite API traffic. The RubyGems package is identified by CPE cpe:2.3:a:defunkt:gist:*:*:*:*:*:*:*:*, and the same defect was duplicated in the generated single-file build/gist artifact, meaning both the library path and the packaged executable are affected. The upstream fix commit 07ccc1a6d46e9d36f0e85d0b1c5d795890ae6bcf replaces VERIFY_NONE with OpenSSL::SSL::VERIFY_PEER in both lib/gist.rb and build/gist, restoring normal certificate validation.

Know when Gist 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 (VulnCheck) PRIMARY 9.1 CRITICAL
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
vuln.today AI 7.4 HIGH

AV:N and PR:N since the client reaches out over the network with no attacker creds, but AC:H because a man-in-the-middle position is required; C:H/I:H for token/credential theft and traffic modification, A:N as availability is unaffected.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
4.0 AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Red Hat 7.4 HIGH

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

DescriptionCVE.org

The gist RubyGem before 6.1.0 contains an improper certificate validation vulnerability that allows on-path attackers to intercept HTTPS traffic because http_connection in lib/gist.rb sets VERIFY_NONE. Attackers can present any certificate to read or modify GitHub API traffic, stealing OAuth tokens and login credentials to read and modify the victim's gists.

Executive ViewAI

Why It Matters

The gist RubyGem before 6.1.0 disables TLS certificate validation when communicating with the GitHub API, enabling an on-path attacker to intercept credentials, OAuth tokens, and gist content for affected users. This creates a high business risk because developers and automation using the gem could suffer GitHub account compromise, unauthorized code access, or integrity loss in stored gists. No public exploit identified at time of analysis, but leadership should prioritize remediation to gist 6.1.0 or later given the critical severity and unauthenticated network attack path.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 93% exploitable
Prevalence
Low
niche developer command-line RubyGem, limited production/enterprise footprint
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor GitHub VulDB

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 CRITICAL
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

46
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +46
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.

Vendor StatusVendor

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