Loading...
Skip to main content

CVE-2024-27285 — Vulnerability in yard — CVE Details

MEDIUM

YARD's default template vulnerable to Cross-site Scripting in generated frames.html

Published February 28, 2024Updated September 10, 2026Source: osv

Summary

### Summary The "frames.html" file within the Yard Doc's generated documentation is vulnerable to Cross-Site Scripting (XSS) attacks due to inadequate sanitization of user input within the JavaScript segment of the "frames.erb" template file. ### Details The vulnerability stems from mishandling user-controlled data retrieved from the URL hash in the embedded JavaScript code within the "frames.erb" template file. Specifically, the script lacks proper sanitization of the hash data before utilizing it to establish the top-level window's location. This oversight permits an attacker to inject malicious JavaScript payloads through carefully crafted URLs. Snippet from "frames.erb": (v0.9.34) ```erb <script type="text/javascript"> var match = unescape(window.location.hash).match(/^#!(.+)/); var name = match ? match[1] : '<%= url_for_main %>'; name = name.replace(/^(\w+):\/\//, '').replace(/^\/\//, ''); window.top.location = name; </script> ``` (v0.9.35) ```erb <script type="text/javascript"> var match = decodeURIComponent(window.location.hash).match(/^#!(.+)/); var name = match ? match[1] : '<%= url_for_main %>'; name = name.replace(/^((\w*):)?[\/\\]*/gm, '').trim(); window.top.location.replace(name) </script> ``` ### PoC (Proof of Concept) To exploit this vulnerability: 1. Gain access to the generated Yard Doc. 2. Locate and access the "frames.html" file. 3. Construct a URL containing the malicious payload in the hash segment, for instance: `#!javascript:xss` for v0.9.34, and `#:javascript:xss` for v0.9.35 ### Impact This XSS vulnerability presents a substantial threat by enabling an attacker to execute arbitrary JavaScript code within the user's session context. Potential ramifications include session hijacking, theft of sensitive data, unauthorized access to user accounts, and defacement of websites. Any user visiting the compromised page is susceptible to exploitation. It is critical to promptly address this vulnerability to mitigate potential harm to users and preserve the application's integrity.

Advisory Timeline

  • First published February 28, 2024 (957 days ago).
  • Last revised September 10, 2026 — 924 days after initial publication.

Remediation

Upgrade to the fixed version using your package manager.

Bundler
Update yard to 0.9.36 or later
gem install yard -v 0.9.36

After upgrading, run your dependency scanner again to confirm the vulnerability is resolved.

Affected Packages (1)

Affects 1 ecosystem: rubygems (1).

PackageEcosystemAffectedFixed In
yard
rubygems
0.2.0, 0.2.1, 0.2.2, 0.2.3 (+86 more)0.9.36

Vulnerability Classification

Common Weakness Enumeration (CWE) identifiers for this vulnerability type.

  • CWE-79
    Cross-site Scripting (XSS)MITRE

CVSS Score Breakdown

What the CVSS (Common Vulnerability Scoring System) 5.4 score means for each attack dimension.

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

CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N

Frequently Asked Questions

What is CVE-2024-27285?
YARD's default template vulnerable to Cross-site Scripting in generated frames.html This vulnerability has been assigned a severity rating of MEDIUM (CVSS score: 5.4/10).
How do I check if my project is affected by CVE-2024-27285?
CVE-2024-27285 affects yard. Use GeekWala's free vulnerability scanner to check your dependencies against CVE-2024-27285 and 200,000+ other known vulnerabilities.

Severity & Exploitability

CVSS Score
5.4

Exploitation requires specific conditions or has limited impact. Remediate within weeks.

Also Known As

GHSA-8mq4-9jjh-9xrc

Related CVEs

Check if you're affected

Scan your dependencies to see if this vulnerability affects your projects.

Scan Your Dependencies