ruby.rails.security.audit.rails-check-render-dos-gem.rails-check-render-dos

profile photo of returntocorpreturntocorp
Author
unknown
Download Count*

Rails versions 3.0.0 - 3.0.20, 3.1.0 - 3.1.12, and 3.2.0 - 3.2.16 are vulnerable to a denial of service attack (CVE-2014-0082), which could lead to service downtime. Upgrade to 3.2.17 or higher instead.

Run Locally

Run in CI

Defintion

rules:
  - id: rails-check-render-dos
    pattern-either:
      - pattern-either:
          - patterns:
              - pattern: gem 'rails', '3.$VER'
              - metavariable-comparison:
                  metavariable: $VER
                  comparison: $VER <= 2
          - patterns:
              - pattern: gem 'rails', '~> 3.$VER'
              - metavariable-comparison:
                  metavariable: $VER
                  comparison: $VER < 2
      - pattern-either:
          - patterns:
              - pattern: gem 'rails', '3.0.$PATCH'
              - metavariable-comparison:
                  metavariable: $PATCH
                  comparison: $PATCH <= 20
          - patterns:
              - pattern: gem 'rails', '3.1.$PATCH'
              - metavariable-comparison:
                  metavariable: $PATCH
                  comparison: $PATCH <= 12
          - patterns:
              - pattern: gem 'rails', '3.2.$PATCH'
              - metavariable-comparison:
                  metavariable: $PATCH
                  comparison: $PATCH <= 16
    message: Rails versions 3.0.0 - 3.0.20, 3.1.0 - 3.1.12, and 3.2.0 - 3.2.16 are
      vulnerable to a denial of service attack (CVE-2014-0082), which could lead
      to service downtime. Upgrade to 3.2.17 or higher instead.
    languages:
      - generic
    severity: WARNING
    paths:
      include:
        - "*Gemfile"
        - gems.rb
    metadata:
      cwe:
        - "CWE-20: Improper Input Validation"
      owasp:
        - A03:2021 - Injection
      source-rule-url: https://github.com/presidentbeef/brakeman/blob/main/lib/brakeman/checks/check_render_dos.rb
      technology:
        - rails
      category: security
      references:
        - https://groups.google.com/g/rubyonrails-security/c/LMxO_3_eCuc/m/ozGBEhKaJbIJ
        - https://nvd.nist.gov/vuln/detail/CVE-2014-0082
      cwe2022-top25: true
      cwe2021-top25: true
      subcategory:
        - audit
      likelihood: LOW
      impact: LOW
      confidence: LOW
      license: Commons Clause License Condition v1.0[LGPL-2.1-only]

Examples

rails-check-render-dos-gem.Gemfile

source 'https://rubygems.org'

# ok
gem 'rails', '3.2.17'

# ok
gem 'rails', '2.0.0'

# ok
gem 'rails', '~> 3.2'

# ok
gem 'rails', '3.0.30'

# ruleid: rails-check-render-dos
gem 'rails', '3.2.16'

# ruleid: rails-check-render-dos
gem 'rails', '3.1.5'

# ruleid: rails-check-render-dos
gem 'rails', '3.2.0'

# ruleid: rails-check-render-dos
gem 'rails', '3.1'

# ruleid: rails-check-render-dos
gem 'rails', '~> 3.1'