CVE-2016-2098
Action Pack in Ruby on Rails before 3.2.22.2, 4.x before 4.1.14.2, and 4.2.x before 4.2.5.2 allows remote attackers to execute arbitrary Ruby code by leveraging an application's unrestricted use of the render method.
- CVSS
- 7.3High
- Exploited in the wild
- Not knownPublic exploit code; not in CISA KEV
- EPSS
- 81.4%chance of exploitation in the next 30 daystop 0.4% of scored CVEsFIRST score of 11 Nov 2026
- Fix
- Patch availablesee the advisories in the references
- Published
- 7 Apr 2016analysed here 12 Nov 2026
Summary
Triage
The summary, impact and action text on this page are written by our AI analysis pipeline, or taken from the NVD description when a CVE was imported from NVD. They are not the vendor's wording: check them against the sources. A longer AI executive summary and technical analysis are generated for signed-in accounts on the Max plan.
Affected products
Products named in our analysis
- debian:debian_linux
- rubyonrails:rails
- rubyonrails:ruby_on_rails
Fix and mitigation
WAF and other mitigations
Can a WAF block it? Partly. The bug can be reached over the network, so generic WAF rules may stop some attacks. Its weakness type is unknown, so we cannot be more precise.
Also consider: patch
Based on the weakness type only; no CVE-specific evidence yet. We check Cloudflare, AWS, Google Cloud Armor and Azure; for Akamai, Imperva, Fastly, F5, ask your vendor.
Remediation steps (AI-written)
Step-by-step remediation is generated for accounts on the Max plan, for CVEs that match a technology in their stack. Add this technology to your stack to see the fix checklist.
Exploitation evidence
- CISA KEV catalog
- Not listed as of our last sync.
- Public exploit code
- Yes: 1 on Exploit-DB · 1 Metasploit module · 12 GitHub proofs of concept
Exploit-DB
- Ruby on Rails ActionPack Inline ERB - Code Execution (Metasploit)remote, 11 Jul 2016, verified by Exploit-DB
Metasploit
- exploit/multi/http/rails_actionpack_inline_execexploit, rank excellent
GitHub proofs of concept
- 0x00-0x00/CVE-2016-209816 stars
- j4k0m/CVE-2016-20984 stars
- hderms/dh-CVE_2016_20983 stars
- DanielHemmati/CVE-2016-2098-my-first-exploit2 stars
and 8 more repositories
Listed so you can judge urgency, not as a recommendation to run anything. GitHub “proofs of concept” are unvetted: some are fake or carry malware. Exploit-DB marks the entries its staff verified.
Timeline
- 1 Mar 2016First public exploit or proof of concept
- 7 Apr 2016Published38 days later
- 5 Aug 2024CVE record last updated3,042 days (about 8 years) later
- 12 Nov 2026Analysed by vulneraibility.com829 days (about 2 years) later
CVSS vector
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
| Metric | Value | What it means |
|---|---|---|
| Attack vector | NetworkReachable over the internet or any routable network. | Reachable over the internet or any routable network. |
| Attack complexity | LowRepeatable attack, no special conditions. | Repeatable attack, no special conditions. |
| Privileges required | NoneThe attacker needs no prior access. | The attacker needs no prior access. |
| User interaction | NoneNo victim action needed. | No victim action needed. |
| Scope | UnchangedImpact stays within the vulnerable component. | Impact stays within the vulnerable component. |
| Confidentiality | LowPartial data disclosure. | Partial data disclosure. |
| Integrity | LowLimited modification possible. | Limited modification possible. |
| Availability | LowPartial degradation possible. | Partial degradation possible. |
Common questions
Is CVE-2016-2098 being exploited?
Not confirmed. CVE-2016-2098 does not appear in CISA's Known Exploited Vulnerabilities catalog, which records only exploitation that has been observed and reported publicly. That is evidence of absence of a report, not evidence the flaw is unattacked. EPSS currently estimates a 81% probability of exploitation in the next 30 days.
How severe is CVE-2016-2098?
CVE-2016-2098 is rated High with a CVSS score of 7.3. Severity describes how bad exploitation would be, not how likely it is: pair it with exploitation evidence before deciding what to patch first.
Is there a patch for CVE-2016-2098?
Yes. A fix has been recorded for CVE-2016-2098. The vendor advisory is the authority on the exact fixed version — apply it from there rather than from a summary.
What does CVE-2016-2098 affect?
CVE-2016-2098 affects debian:debian_linux, rubyonrails:rails, rubyonrails:ruby_on_rails. Confirm the exact affected versions against the vendor advisory before deciding you are exposed.
Exploitation status reflects CISA's KEV catalog as we last synced it. Check the catalog directly.
References
12 references in the CVE record, grouped by the tags the record gives them.
Advisories (7)
- lists.opensuse.org /opensuse-security-announce/2016-03/msg00086.html
- lists.opensuse.org /opensuse-security-announce/2016-04/msg00006.html
- debian.org /security/2016/dsa-3509
- lists.opensuse.org /opensuse-security-announce/2016-03/msg00083.html
- lists.opensuse.org /opensuse-security-announce/2016-03/msg00057.html
- lists.opensuse.org /opensuse-security-announce/2016-04/msg00053.html
Show 1 more
- lists.opensuse.org /opensuse-security-announce/2016-03/msg00080.html
Exploits (1)
- exploit-db.com /exploits/40086/
Other links (4)
- securityfocus.com /bid/83725
- securitytracker.com /id/1035122
- groups.google.com /forum/message/raw?msg=rubyonrails-security/ly-IH-fxr_Q/WLoOhcMZIAAJ
- weblog.rubyonrails.org /2016/2/29/Rails-4-2-5-2-4-1-14-2-3-2-22-2-have-been-released/
Where the data on this page comes from
- CVE List (CVE.org): description, affected versions, references; CVE Terms of Use
- NVD: CVSS and CPE data
- FIRST EPSS: exploit probability and percentile
- Exploit-DB: published exploits
- Metasploit Framework: exploit and scanner modules
- PoC-in-GitHub: GitHub repositories that claim a proof of concept
Summary, impact and triage tags: written by our AI analysis pipeline from the sources above. Check them against the sources.
Similar CVEs
Get CVEs like this by email. Join the free digest: the CVEs we flag as major, all CVSS 8.0 or higher, in up to three emails a day (sent at 05:00, 11:00 and 15:00 UTC). Matching alerts to the products you run needs an account, and accounts are invite-only during the beta.