coreinfrastructure/best-practices-badge
Find, fix and prevent vulnerabilities in your code.
high severity
new
- Module: bundler-audit
- Introduced through: bundler-audit@0.9.2
Detailed paths
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › bundler-audit@0.9.2
GPL-3.0 license
high severity
new
- Module: ruby-graphviz
- Introduced through: ruby-graphviz@1.2.5
Detailed paths
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › ruby-graphviz@1.2.5
GPL-2.0 license
medium severity
- Vulnerable module: bootstrap-sass
- Introduced through: bootstrap-sass@3.4.1
Detailed paths
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › bootstrap-sass@3.4.1
Overview
bootstrap-sass is a Sass-powered version of Bootstrap 3, ready to drop right into your Sass powered applications.
Affected versions of this package are vulnerable to Cross-site Scripting (XSS) due to inadequate sanitization of the href
attribute, belonging to an <a>
tag, in the carousel
component. An attacker can execute arbitrary JavaScript within the victim's browser by injecting malicious code into the data-slide
or data-slide-to
attributes.
Notes:
- Exploiting this vulnerability is also possible when the
data_target
attribute doesn’t exist or can’t be found, allowing the bypass of theclickHandler
functionality.
PoC
<div id="myCarousel" class="carousel"></div>
<a href="javascript:alert('XSS href')" data-slide="prev">
Previous Slide
</a>
Details
A cross-site scripting attack occurs when the attacker tricks a legitimate web-based application or site to accept a request as originating from a trusted source.
This is done by escaping the context of the web application; the web application then delivers that data to its users along with other trusted dynamic content, without validating it. The browser unknowingly executes malicious script on the client side (through client-side languages; usually JavaScript or HTML) in order to perform actions that are otherwise typically blocked by the browser’s Same Origin Policy.
Injecting malicious code is the most prevalent manner by which XSS is exploited; for this reason, escaping characters in order to prevent this manipulation is the top method for securing code against this vulnerability.
Escaping means that the application is coded to mark key characters, and particularly key characters included in user input, to prevent those characters from being interpreted in a dangerous context. For example, in HTML, <
can be coded as <
; and >
can be coded as >
; in order to be interpreted and displayed as themselves in text, while within the code itself, they are used for HTML tags. If malicious content is injected into an application that escapes special characters and that malicious content uses <
and >
as HTML tags, those characters are nonetheless not interpreted as HTML tags by the browser if they’ve been correctly escaped in the application code and in this way the attempted attack is diverted.
The most prominent use of XSS is to steal cookies (source: OWASP HttpOnly) and hijack user sessions, but XSS exploits have been used to expose sensitive information, enable access to privileged services and functionality and deliver malware.
Types of attacks
There are a few methods by which XSS can be manipulated:
Type | Origin | Description |
---|---|---|
Stored | Server | The malicious code is inserted in the application (usually as a link) by the attacker. The code is activated every time a user clicks the link. |
Reflected | Server | The attacker delivers a malicious link externally from the vulnerable web site application to a user. When clicked, malicious code is sent to the vulnerable web site, which reflects the attack back to the user’s browser. |
DOM-based | Client | The attacker forces the user’s browser to render a malicious page. The data in the page itself delivers the cross-site scripting data. |
Mutated | The attacker injects code that appears safe, but is then rewritten and modified by the browser, while parsing the markup. An example is rebalancing unclosed quotation marks or even adding quotation marks to unquoted parameters. |
Affected environments
The following environments are susceptible to an XSS attack:
- Web servers
- Application servers
- Web application environments
How to prevent
This section describes the top best practices designed to specifically protect your code:
- Sanitize data input in an HTTP request before reflecting it back, ensuring all data is validated, filtered or escaped before echoing anything back to the user, such as the values of query parameters during searches.
- Convert special characters such as
?
,&
,/
,<
,>
and spaces to their respective HTML or URL encoded equivalents. - Give users the option to disable client-side scripts.
- Redirect invalid requests.
- Detect simultaneous logins, including those from two separate IP addresses, and invalidate those sessions.
- Use and enforce a Content Security Policy (source: Wikipedia) to disable any features that might be manipulated for an XSS attack.
- Read the documentation for any of the libraries referenced in your code to understand which elements allow for embedded HTML.
Remediation
There is no fixed version for bootstrap-sass
.
References
medium severity
- Vulnerable module: bootstrap-sass
- Introduced through: bootstrap-sass@3.4.1
Detailed paths
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › bootstrap-sass@3.4.1
Overview
bootstrap-sass is a Sass-powered version of Bootstrap 3, ready to drop right into your Sass powered applications.
Affected versions of this package are vulnerable to Cross-site Scripting (XSS) in the carousel
component through the href
attribute of an <a>
tag due to inadequate sanitization. An attacker can execute arbitrary JavaScript within the victim's browser by crafting malicious input in the data-slide
attribute.
Notes:
- Exploiting this vulnerability is also possible when the
data_target
attribute doesn’t exist or can’t be found, allowing the bypass of theclickHandler
functionality.
PoC
<div id="myCarousel" class="carousel"></div>
<a href="javascript:alert('XSS href')" data-slide="prev">
Previous Slide
</a>
Details
A cross-site scripting attack occurs when the attacker tricks a legitimate web-based application or site to accept a request as originating from a trusted source.
This is done by escaping the context of the web application; the web application then delivers that data to its users along with other trusted dynamic content, without validating it. The browser unknowingly executes malicious script on the client side (through client-side languages; usually JavaScript or HTML) in order to perform actions that are otherwise typically blocked by the browser’s Same Origin Policy.
Injecting malicious code is the most prevalent manner by which XSS is exploited; for this reason, escaping characters in order to prevent this manipulation is the top method for securing code against this vulnerability.
Escaping means that the application is coded to mark key characters, and particularly key characters included in user input, to prevent those characters from being interpreted in a dangerous context. For example, in HTML, <
can be coded as <
; and >
can be coded as >
; in order to be interpreted and displayed as themselves in text, while within the code itself, they are used for HTML tags. If malicious content is injected into an application that escapes special characters and that malicious content uses <
and >
as HTML tags, those characters are nonetheless not interpreted as HTML tags by the browser if they’ve been correctly escaped in the application code and in this way the attempted attack is diverted.
The most prominent use of XSS is to steal cookies (source: OWASP HttpOnly) and hijack user sessions, but XSS exploits have been used to expose sensitive information, enable access to privileged services and functionality and deliver malware.
Types of attacks
There are a few methods by which XSS can be manipulated:
Type | Origin | Description |
---|---|---|
Stored | Server | The malicious code is inserted in the application (usually as a link) by the attacker. The code is activated every time a user clicks the link. |
Reflected | Server | The attacker delivers a malicious link externally from the vulnerable web site application to a user. When clicked, malicious code is sent to the vulnerable web site, which reflects the attack back to the user’s browser. |
DOM-based | Client | The attacker forces the user’s browser to render a malicious page. The data in the page itself delivers the cross-site scripting data. |
Mutated | The attacker injects code that appears safe, but is then rewritten and modified by the browser, while parsing the markup. An example is rebalancing unclosed quotation marks or even adding quotation marks to unquoted parameters. |
Affected environments
The following environments are susceptible to an XSS attack:
- Web servers
- Application servers
- Web application environments
How to prevent
This section describes the top best practices designed to specifically protect your code:
- Sanitize data input in an HTTP request before reflecting it back, ensuring all data is validated, filtered or escaped before echoing anything back to the user, such as the values of query parameters during searches.
- Convert special characters such as
?
,&
,/
,<
,>
and spaces to their respective HTML or URL encoded equivalents. - Give users the option to disable client-side scripts.
- Redirect invalid requests.
- Detect simultaneous logins, including those from two separate IP addresses, and invalidate those sessions.
- Use and enforce a Content Security Policy (source: Wikipedia) to disable any features that might be manipulated for an XSS attack.
- Read the documentation for any of the libraries referenced in your code to understand which elements allow for embedded HTML.
Remediation
There is no fixed version for bootstrap-sass
.
References
medium severity
- Vulnerable module: rack
- Introduced through: rack@2.2.13, actionpack@8.0.1 and others
Detailed paths
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rack@2.2.13Remediation: Upgrade to rack@3.0.0.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › actionpack@8.0.1 › rack@2.2.13Remediation: Upgrade to actionpack@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rack-attack@6.7.0 › rack@2.2.13Remediation: Upgrade to rack-attack@6.7.0.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rack-cors@2.0.2 › rack@2.2.13Remediation: Upgrade to rack-cors@2.0.2.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rubocop-rails@2.28.0 › rack@2.2.13Remediation: Upgrade to rubocop-rails@2.28.0.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › actionpack@8.0.1 › rack-session@1.0.2 › rack@2.2.13Remediation: Upgrade to actionpack@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › actionpack@8.0.1 › rack-test@2.2.0 › rack@2.2.13Remediation: Upgrade to actionpack@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › actionmailer@8.0.1 › actionpack@8.0.1 › rack@2.2.13Remediation: Upgrade to actionmailer@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › railties@8.0.1 › actionpack@8.0.1 › rack@2.2.13Remediation: Upgrade to railties@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › lograge@0.14.0 › actionpack@8.0.1 › rack@2.2.13Remediation: Upgrade to lograge@0.14.0.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › omniauth-rails_csrf_protection@1.0.2 › actionpack@8.0.1 › rack@2.2.13Remediation: Upgrade to omniauth-rails_csrf_protection@1.0.2.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rails@8.0.1 › actionpack@8.0.1 › rack@2.2.13Remediation: Upgrade to rails@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rails-controller-testing@1.0.5 › actionpack@8.0.1 › rack@2.2.13Remediation: Upgrade to rails-controller-testing@1.0.5.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › sprockets-rails@3.5.2 › actionpack@8.0.1 › rack@2.2.13Remediation: Upgrade to sprockets-rails@3.5.2.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › railties@8.0.1 › rackup@1.0.1 › rack@2.2.13Remediation: Upgrade to railties@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › capybara-slow_finder_errors@0.1.5 › capybara@3.40.0 › rack@2.2.13Remediation: Upgrade to capybara-slow_finder_errors@0.1.5.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › lograge@0.14.0 › request_store@1.7.0 › rack@2.2.13Remediation: Upgrade to lograge@0.14.0.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › paper_trail@16.0.0 › request_store@1.7.0 › rack@2.2.13Remediation: Upgrade to paper_trail@16.0.0.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › omniauth-github@2.0.1 › omniauth@2.1.2 › rack@2.2.13Remediation: Upgrade to omniauth-github@2.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › omniauth-rails_csrf_protection@1.0.2 › omniauth@2.1.2 › rack@2.2.13Remediation: Upgrade to omniauth-rails_csrf_protection@1.0.2.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › sprockets-rails@3.5.2 › sprockets@4.2.1 › rack@2.2.13Remediation: Upgrade to sprockets-rails@3.5.2.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › sassc-rails@2.1.2 › sprockets@4.2.1 › rack@2.2.13Remediation: Upgrade to sassc-rails@2.1.2.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › actionmailer@8.0.1 › actionpack@8.0.1 › rack-session@1.0.2 › rack@2.2.13Remediation: Upgrade to actionmailer@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › railties@8.0.1 › actionpack@8.0.1 › rack-session@1.0.2 › rack@2.2.13Remediation: Upgrade to railties@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › lograge@0.14.0 › actionpack@8.0.1 › rack-session@1.0.2 › rack@2.2.13Remediation: Upgrade to lograge@0.14.0.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › omniauth-rails_csrf_protection@1.0.2 › actionpack@8.0.1 › rack-session@1.0.2 › rack@2.2.13Remediation: Upgrade to omniauth-rails_csrf_protection@1.0.2.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rails@8.0.1 › actionpack@8.0.1 › rack-session@1.0.2 › rack@2.2.13Remediation: Upgrade to rails@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rails-controller-testing@1.0.5 › actionpack@8.0.1 › rack-session@1.0.2 › rack@2.2.13Remediation: Upgrade to rails-controller-testing@1.0.5.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › sprockets-rails@3.5.2 › actionpack@8.0.1 › rack-session@1.0.2 › rack@2.2.13Remediation: Upgrade to sprockets-rails@3.5.2.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › actionmailer@8.0.1 › actionpack@8.0.1 › rack-test@2.2.0 › rack@2.2.13Remediation: Upgrade to actionmailer@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › railties@8.0.1 › actionpack@8.0.1 › rack-test@2.2.0 › rack@2.2.13Remediation: Upgrade to railties@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › lograge@0.14.0 › actionpack@8.0.1 › rack-test@2.2.0 › rack@2.2.13Remediation: Upgrade to lograge@0.14.0.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › omniauth-rails_csrf_protection@1.0.2 › actionpack@8.0.1 › rack-test@2.2.0 › rack@2.2.13Remediation: Upgrade to omniauth-rails_csrf_protection@1.0.2.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rails@8.0.1 › actionpack@8.0.1 › rack-test@2.2.0 › rack@2.2.13Remediation: Upgrade to rails@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rails-controller-testing@1.0.5 › actionpack@8.0.1 › rack-test@2.2.0 › rack@2.2.13Remediation: Upgrade to rails-controller-testing@1.0.5.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › sprockets-rails@3.5.2 › actionpack@8.0.1 › rack-test@2.2.0 › rack@2.2.13Remediation: Upgrade to sprockets-rails@3.5.2.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › capybara-slow_finder_errors@0.1.5 › capybara@3.40.0 › rack-test@2.2.0 › rack@2.2.13Remediation: Upgrade to capybara-slow_finder_errors@0.1.5.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rails@8.0.1 › actionmailer@8.0.1 › actionpack@8.0.1 › rack@2.2.13Remediation: Upgrade to rails@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › bootstrap-social-rails@4.12.0 › railties@8.0.1 › actionpack@8.0.1 › rack@2.2.13Remediation: Upgrade to bootstrap-social-rails@4.12.0.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › dotenv-rails@2.8.1 › railties@8.0.1 › actionpack@8.0.1 › rack@2.2.13Remediation: Upgrade to dotenv-rails@2.8.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › font_awesome5_rails@1.5.0 › railties@8.0.1 › actionpack@8.0.1 › rack@2.2.13Remediation: Upgrade to font_awesome5_rails@1.5.0.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › imagesLoaded_rails@4.1.0 › railties@8.0.1 › actionpack@8.0.1 › rack@2.2.13Remediation: Upgrade to imagesLoaded_rails@4.1.0.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › jquery-rails@4.6.0 › railties@8.0.1 › actionpack@8.0.1 › rack@2.2.13Remediation: Upgrade to jquery-rails@4.6.0.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › lograge@0.14.0 › railties@8.0.1 › actionpack@8.0.1 › rack@2.2.13Remediation: Upgrade to lograge@0.14.0.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rails@8.0.1 › railties@8.0.1 › actionpack@8.0.1 › rack@2.2.13Remediation: Upgrade to rails@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rails-i18n@8.0.1 › railties@8.0.1 › actionpack@8.0.1 › rack@2.2.13Remediation: Upgrade to rails-i18n@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › sassc-rails@2.1.2 › railties@8.0.1 › actionpack@8.0.1 › rack@2.2.13Remediation: Upgrade to sassc-rails@2.1.2.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › sentry-rails@5.22.1 › railties@8.0.1 › actionpack@8.0.1 › rack@2.2.13Remediation: Upgrade to sentry-rails@5.22.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › solid_queue@1.1.2 › railties@8.0.1 › actionpack@8.0.1 › rack@2.2.13Remediation: Upgrade to solid_queue@1.1.2.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › web-console@4.2.1 › railties@8.0.1 › actionpack@8.0.1 › rack@2.2.13Remediation: Upgrade to web-console@4.2.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rails@8.0.1 › actioncable@8.0.1 › actionpack@8.0.1 › rack@2.2.13Remediation: Upgrade to rails@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rails@8.0.1 › activestorage@8.0.1 › actionpack@8.0.1 › rack@2.2.13Remediation: Upgrade to rails@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rails@8.0.1 › actionmailbox@8.0.1 › actionpack@8.0.1 › rack@2.2.13Remediation: Upgrade to rails@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rails@8.0.1 › actiontext@8.0.1 › actionpack@8.0.1 › rack@2.2.13Remediation: Upgrade to rails@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › sassc-rails@2.1.2 › sprockets-rails@3.5.2 › actionpack@8.0.1 › rack@2.2.13Remediation: Upgrade to sassc-rails@2.1.2.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › bootstrap-social-rails@4.12.0 › railties@8.0.1 › rackup@1.0.1 › rack@2.2.13Remediation: Upgrade to bootstrap-social-rails@4.12.0.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › dotenv-rails@2.8.1 › railties@8.0.1 › rackup@1.0.1 › rack@2.2.13Remediation: Upgrade to dotenv-rails@2.8.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › font_awesome5_rails@1.5.0 › railties@8.0.1 › rackup@1.0.1 › rack@2.2.13Remediation: Upgrade to font_awesome5_rails@1.5.0.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › imagesLoaded_rails@4.1.0 › railties@8.0.1 › rackup@1.0.1 › rack@2.2.13Remediation: Upgrade to imagesLoaded_rails@4.1.0.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › jquery-rails@4.6.0 › railties@8.0.1 › rackup@1.0.1 › rack@2.2.13Remediation: Upgrade to jquery-rails@4.6.0.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › lograge@0.14.0 › railties@8.0.1 › rackup@1.0.1 › rack@2.2.13Remediation: Upgrade to lograge@0.14.0.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rails@8.0.1 › railties@8.0.1 › rackup@1.0.1 › rack@2.2.13Remediation: Upgrade to rails@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rails-i18n@8.0.1 › railties@8.0.1 › rackup@1.0.1 › rack@2.2.13Remediation: Upgrade to rails-i18n@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › sassc-rails@2.1.2 › railties@8.0.1 › rackup@1.0.1 › rack@2.2.13Remediation: Upgrade to sassc-rails@2.1.2.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › sentry-rails@5.22.1 › railties@8.0.1 › rackup@1.0.1 › rack@2.2.13Remediation: Upgrade to sentry-rails@5.22.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › solid_queue@1.1.2 › railties@8.0.1 › rackup@1.0.1 › rack@2.2.13Remediation: Upgrade to solid_queue@1.1.2.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › web-console@4.2.1 › railties@8.0.1 › rackup@1.0.1 › rack@2.2.13Remediation: Upgrade to web-console@4.2.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › omniauth-github@2.0.1 › omniauth@2.1.2 › rack-protection@3.2.0 › rack@2.2.13Remediation: Upgrade to omniauth-github@2.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › omniauth-rails_csrf_protection@1.0.2 › omniauth@2.1.2 › rack-protection@3.2.0 › rack@2.2.13Remediation: Upgrade to omniauth-rails_csrf_protection@1.0.2.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › omniauth-github@2.0.1 › omniauth-oauth2@1.8.0 › omniauth@2.1.2 › rack@2.2.13Remediation: Upgrade to omniauth-github@2.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › omniauth-github@2.0.1 › omniauth-oauth2@1.8.0 › oauth2@2.0.9 › rack@2.2.13Remediation: Upgrade to omniauth-github@2.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › sassc-rails@2.1.2 › sprockets-rails@3.5.2 › sprockets@4.2.1 › rack@2.2.13Remediation: Upgrade to sassc-rails@2.1.2.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rails@8.0.1 › actionmailer@8.0.1 › actionpack@8.0.1 › rack-session@1.0.2 › rack@2.2.13Remediation: Upgrade to rails@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › bootstrap-social-rails@4.12.0 › railties@8.0.1 › actionpack@8.0.1 › rack-session@1.0.2 › rack@2.2.13Remediation: Upgrade to bootstrap-social-rails@4.12.0.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › dotenv-rails@2.8.1 › railties@8.0.1 › actionpack@8.0.1 › rack-session@1.0.2 › rack@2.2.13Remediation: Upgrade to dotenv-rails@2.8.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › font_awesome5_rails@1.5.0 › railties@8.0.1 › actionpack@8.0.1 › rack-session@1.0.2 › rack@2.2.13Remediation: Upgrade to font_awesome5_rails@1.5.0.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › imagesLoaded_rails@4.1.0 › railties@8.0.1 › actionpack@8.0.1 › rack-session@1.0.2 › rack@2.2.13Remediation: Upgrade to imagesLoaded_rails@4.1.0.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › jquery-rails@4.6.0 › railties@8.0.1 › actionpack@8.0.1 › rack-session@1.0.2 › rack@2.2.13Remediation: Upgrade to jquery-rails@4.6.0.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › lograge@0.14.0 › railties@8.0.1 › actionpack@8.0.1 › rack-session@1.0.2 › rack@2.2.13Remediation: Upgrade to lograge@0.14.0.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rails@8.0.1 › railties@8.0.1 › actionpack@8.0.1 › rack-session@1.0.2 › rack@2.2.13Remediation: Upgrade to rails@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rails-i18n@8.0.1 › railties@8.0.1 › actionpack@8.0.1 › rack-session@1.0.2 › rack@2.2.13Remediation: Upgrade to rails-i18n@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › sassc-rails@2.1.2 › railties@8.0.1 › actionpack@8.0.1 › rack-session@1.0.2 › rack@2.2.13Remediation: Upgrade to sassc-rails@2.1.2.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › sentry-rails@5.22.1 › railties@8.0.1 › actionpack@8.0.1 › rack-session@1.0.2 › rack@2.2.13Remediation: Upgrade to sentry-rails@5.22.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › solid_queue@1.1.2 › railties@8.0.1 › actionpack@8.0.1 › rack-session@1.0.2 › rack@2.2.13Remediation: Upgrade to solid_queue@1.1.2.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › web-console@4.2.1 › railties@8.0.1 › actionpack@8.0.1 › rack-session@1.0.2 › rack@2.2.13Remediation: Upgrade to web-console@4.2.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rails@8.0.1 › actioncable@8.0.1 › actionpack@8.0.1 › rack-session@1.0.2 › rack@2.2.13Remediation: Upgrade to rails@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rails@8.0.1 › activestorage@8.0.1 › actionpack@8.0.1 › rack-session@1.0.2 › rack@2.2.13Remediation: Upgrade to rails@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rails@8.0.1 › actionmailbox@8.0.1 › actionpack@8.0.1 › rack-session@1.0.2 › rack@2.2.13Remediation: Upgrade to rails@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rails@8.0.1 › actiontext@8.0.1 › actionpack@8.0.1 › rack-session@1.0.2 › rack@2.2.13Remediation: Upgrade to rails@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › sassc-rails@2.1.2 › sprockets-rails@3.5.2 › actionpack@8.0.1 › rack-session@1.0.2 › rack@2.2.13Remediation: Upgrade to sassc-rails@2.1.2.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rails@8.0.1 › actionmailer@8.0.1 › actionpack@8.0.1 › rack-test@2.2.0 › rack@2.2.13Remediation: Upgrade to rails@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › bootstrap-social-rails@4.12.0 › railties@8.0.1 › actionpack@8.0.1 › rack-test@2.2.0 › rack@2.2.13Remediation: Upgrade to bootstrap-social-rails@4.12.0.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › dotenv-rails@2.8.1 › railties@8.0.1 › actionpack@8.0.1 › rack-test@2.2.0 › rack@2.2.13Remediation: Upgrade to dotenv-rails@2.8.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › font_awesome5_rails@1.5.0 › railties@8.0.1 › actionpack@8.0.1 › rack-test@2.2.0 › rack@2.2.13Remediation: Upgrade to font_awesome5_rails@1.5.0.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › imagesLoaded_rails@4.1.0 › railties@8.0.1 › actionpack@8.0.1 › rack-test@2.2.0 › rack@2.2.13Remediation: Upgrade to imagesLoaded_rails@4.1.0.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › jquery-rails@4.6.0 › railties@8.0.1 › actionpack@8.0.1 › rack-test@2.2.0 › rack@2.2.13Remediation: Upgrade to jquery-rails@4.6.0.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › lograge@0.14.0 › railties@8.0.1 › actionpack@8.0.1 › rack-test@2.2.0 › rack@2.2.13Remediation: Upgrade to lograge@0.14.0.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rails@8.0.1 › railties@8.0.1 › actionpack@8.0.1 › rack-test@2.2.0 › rack@2.2.13Remediation: Upgrade to rails@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rails-i18n@8.0.1 › railties@8.0.1 › actionpack@8.0.1 › rack-test@2.2.0 › rack@2.2.13Remediation: Upgrade to rails-i18n@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › sassc-rails@2.1.2 › railties@8.0.1 › actionpack@8.0.1 › rack-test@2.2.0 › rack@2.2.13Remediation: Upgrade to sassc-rails@2.1.2.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › sentry-rails@5.22.1 › railties@8.0.1 › actionpack@8.0.1 › rack-test@2.2.0 › rack@2.2.13Remediation: Upgrade to sentry-rails@5.22.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › solid_queue@1.1.2 › railties@8.0.1 › actionpack@8.0.1 › rack-test@2.2.0 › rack@2.2.13Remediation: Upgrade to solid_queue@1.1.2.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › web-console@4.2.1 › railties@8.0.1 › actionpack@8.0.1 › rack-test@2.2.0 › rack@2.2.13Remediation: Upgrade to web-console@4.2.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rails@8.0.1 › actioncable@8.0.1 › actionpack@8.0.1 › rack-test@2.2.0 › rack@2.2.13Remediation: Upgrade to rails@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rails@8.0.1 › activestorage@8.0.1 › actionpack@8.0.1 › rack-test@2.2.0 › rack@2.2.13Remediation: Upgrade to rails@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rails@8.0.1 › actionmailbox@8.0.1 › actionpack@8.0.1 › rack-test@2.2.0 › rack@2.2.13Remediation: Upgrade to rails@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rails@8.0.1 › actiontext@8.0.1 › actionpack@8.0.1 › rack-test@2.2.0 › rack@2.2.13Remediation: Upgrade to rails@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › sassc-rails@2.1.2 › sprockets-rails@3.5.2 › actionpack@8.0.1 › rack-test@2.2.0 › rack@2.2.13Remediation: Upgrade to sassc-rails@2.1.2.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rails@8.0.1 › actionmailbox@8.0.1 › activestorage@8.0.1 › actionpack@8.0.1 › rack@2.2.13Remediation: Upgrade to rails@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rails@8.0.1 › actiontext@8.0.1 › activestorage@8.0.1 › actionpack@8.0.1 › rack@2.2.13Remediation: Upgrade to rails@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › omniauth-github@2.0.1 › omniauth-oauth2@1.8.0 › omniauth@2.1.2 › rack-protection@3.2.0 › rack@2.2.13Remediation: Upgrade to omniauth-github@2.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rails@8.0.1 › actionmailbox@8.0.1 › activestorage@8.0.1 › actionpack@8.0.1 › rack-session@1.0.2 › rack@2.2.13Remediation: Upgrade to rails@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rails@8.0.1 › actiontext@8.0.1 › activestorage@8.0.1 › actionpack@8.0.1 › rack-session@1.0.2 › rack@2.2.13Remediation: Upgrade to rails@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rails@8.0.1 › actionmailbox@8.0.1 › activestorage@8.0.1 › actionpack@8.0.1 › rack-test@2.2.0 › rack@2.2.13Remediation: Upgrade to rails@8.0.1.
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › rails@8.0.1 › actiontext@8.0.1 › activestorage@8.0.1 › actionpack@8.0.1 › rack-test@2.2.0 › rack@2.2.13Remediation: Upgrade to rails@8.0.1.
…and 112 more
Overview
rack is a minimal, modular and adaptable interface for developing web applications in Ruby. By wrapping HTTP requests and responses in the simplest way possible, it unifies and distills the API for web servers, web frameworks, and software in between (the so-called middleware) into a single method call.
Affected versions of this package are vulnerable to Web Cache Poisoning by using a vector called parameter cloaking. When the attacker can separate query parameters using a semicolon (;), they can cause a difference in the interpretation of the request between the proxy (running with default configuration) and the server. This can result in malicious requests being cached as completely safe ones, as the proxy would usually not see the semicolon as a separator, and therefore would not include it in a cache key of an unkeyed parameter.
PoC
GET /?q=legitimate&utm_content=1;q=malicious HTTP/1.1
Host: somesite.com
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,imag e/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9 Connection: close
The server sees 3 parameters here: q
, utm_content
and then q
again. On the other hand, the proxy considers this full string: 1;q=malicious
as the value of utm_content
, which is why the cache key would only contain somesite.com/?q=legitimate
.
Remediation
Upgrade rack
to version 3.0.0.beta1 or higher.
References
medium severity
- Vulnerable module: erubis
- Introduced through: pronto-rails_best_practices@0.11.0
Detailed paths
-
Introduced through: coreinfrastructure/best-practices-badge@coreinfrastructure/best-practices-badge#e80d90c045e0acd105c8198a208a8a513eea444c › pronto-rails_best_practices@0.11.0 › rails_best_practices@1.23.2 › erubis@2.7.0
Overview
erubis
is an implementation of eRuby and has the following features:
Affected versions of the package are vulnerable to Cross-site Scripting (XSS). Single quotes were not properly escaped in the helper.rb
and helpers/rails_helper.rb
files. The Erubis Documentation shows missing escaping.
Details
<
Remediation
There is no fix version for erubis
.