Skip to main content

YARD EUVDEUVD-2026-38069

| CVE-2026-49342 MEDIUM
Path Traversal (CWE-22)
2026-06-19 GitHub_M GHSA-pxcc-8665-phx8
5.3
CVSS 3.1 · Vendor: GitHub_M
Share

Severity by source

Vendor (GitHub_M) PRIMARY
5.3 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
vuln.today AI
5.3 MEDIUM

Server is network-accessible with no auth required; traversal is mechanically simple (AC:L); only .html files readable limits confidentiality to Low; no integrity or availability impact exists.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
SUSE
MEDIUM
qualitative
Red Hat
5.3 MEDIUM
qualitative

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
None
Availability
None

Lifecycle Timeline

3
Patch available
Jun 19, 2026 - 21:02 EUVD
Source Code Evidence Fetched
Jun 19, 2026 - 20:16 vuln.today
Analysis Generated
Jun 19, 2026 - 20:16 vuln.today

DescriptionCVE.org

YARD is a documentation generation tool for the Ruby programming language. Prior to version 0.9.44, YARD's static cache lookup reads a request path before the router's path cleanup runs. When a server is configured with a document root, a traversal path such as /../yard-cache-secret.html is joined against that root and can return a readable sibling .html file outside the intended static tree. Version 0.9.44 patches the issue.

AnalysisAI

Path traversal in the YARD Ruby documentation server (prior to 0.9.44) allows unauthenticated remote attackers to read arbitrary .html files from directories outside the configured document root by supplying crafted ../-containing request paths such as /../yard-cache-secret.html. The flaw exists because the static cache lookup in StaticCaching#check_static_cache constructs a filesystem path from the raw request.path before the router's own path-sanitization logic runs, enabling traversal to sibling directories. No active exploitation has been identified (not in CISA KEV) and no public POC exists at time of analysis; the vendor-released fix is version 0.9.44.

Technical ContextAI

YARD is a widely used Ruby documentation generation tool with an optional built-in web server component. The vulnerability resides in lib/yard/server/static_caching.rb and lib/yard/server/commands/base.rb. The root cause is CWE-22 (Improper Limitation of a Pathname to a Restricted Directory): the static cache lookup called check_static_cache constructs a filesystem path by invoking File.join(adapter.document_root, request.path.sub(/\.html$/, '') + '.html') without any prior validation of .. components. Because the router's cleanup phase executes after cache lookup, a traversal sequence in the request path is never stripped before the File.join resolves it on disk. The fix (commit f78c19f0dd33a407085b4ed181bb60c0aa0078b4) introduces a new cache_path private method in StaticCaching that explicitly rejects paths containing .. segments (request_path.split(/[\/\\]/).include?('..')), strips leading slashes, blocks Windows drive-letter patterns, and applies File.cleanpath normalization before joining against the document root. CPE: cpe:2.3:a:lsegal:yard:*:*:*:*:*:*:*:* covering all versions prior to 0.9.44.

RemediationAI

Upgrade YARD to version 0.9.44 or later; this is the vendor-released patch that resolves the path traversal by introducing sanitized path construction in StaticCaching#cache_path. The advisory and patch commit are available at https://github.com/lsegal/yard/security/advisories/GHSA-pxcc-8665-phx8 and https://github.com/lsegal/yard/commit/f78c19f0dd33a407085b4ed181bb60c0aa0078b4 respectively. If an immediate upgrade is not feasible, bind the YARD server to localhost only (e.g., yard server --host 127.0.0.1) to eliminate remote network exposure - this compensating control is highly effective since the CVSS attack vector is Network (AV:N) and restricting the listening interface fully blocks unauthenticated remote exploitation, with no functional side-effects for local development use. Alternatively, place the YARD server behind an authenticating reverse proxy to enforce access control at the network boundary.

Vendor StatusVendor

SUSE

Severity: Moderate

Share

EUVD-2026-38069 vulnerability details – vuln.today

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