Your RSA-2048 keys break in 2030. Find every one of them before attackers do.
🛡️
Not in CISA KEV
CRITICAL severity

CVE-2017-12635 — couchdb

CRITICAL

CVE-2017-12635 is a critical-severity (CVSS 9.8) Improper Privilege Management vulnerability. 7 public exploit references exist, so weaponization risk is real. A fix is available — see the affected versions and patch details below.

Published
Updated
Affected
1 product
Patched
See advisory
Exploits
7 known
Exploitation data as of Oct 22, 2026 · OSV.dev, NVD, FIRST.org (EPSS)

EPSS Exploitation Probability

via FIRST.org ↗
99.8%probability of exploitation in next 30 days
Very High Risk0.00%
Lower risk than most CVEs100th percentile — riskier than 100% of all scored CVEsHighest risk
92.4%94.9%97.5%100.0%94.2%99.8%Apr 26Aug 26Oct 26

Probability of exploitation in the next 30 days, from FIRST.org EPSS.

How urgent is this, really

CVE-2017-12635 by exploitation likelihood (EPSS) against impact (CVSS). In the shaded patch-first corner (EPSS 50%+, CVSS 7.0+).

Where this sits among everything scored

Of 394,415 CVEs with a current EPSS score, this one falls in the ≥ 90% band (highlighted). Counts from FIRST.org, log-scaled.

Description

Due to differences in the Erlang-based JSON parser and JavaScript-based JSON parser, it is possible in Apache CouchDB before 1.7.0 and 2.x before 2.1.1 to submit _users documents with duplicate keys for 'roles' used for access control within the database, including the special case '_admin' role, that denotes administrative users. In combination with CVE-2017-12636 (Remote Code Execution), this can be used to give non-admin users access to arbitrary shell commands on the server as the database system user. The JSON parser differences result in behaviour that if two 'roles' keys are available in the JSON, the second one will be used for authorising the document write, but the first 'roles' key is used for subsequent authorization for the newly created user. By design, users can not assign themselves roles. The vulnerability allows non-admin users to give themselves admin privileges.

Affected Products

1 product · 6 configurations
Application
couchdbapache
< 1.7.0
1 version
2.0.0
Exploits & PoCs
7

Research use only. For defensive security, authorized penetration testing, and academic research only. Never execute exploit code against systems without explicit written authorization.

EDB-45019remotelinux✓ Verified

Apache CouchDB - Arbitrary Command Execution (Metasploit)

by Metasploit · Jul 13, 2018

EDB-44498webappslinux

Apache CouchDB 1.7.0 / 2.x < 2.1.1 - Remote Privilege Escalation

by r4wd3r · Apr 23, 2018

Detection & mitigation playbook

Vulnerability
  1. Detect

    Identify every host running the affected component and compare the installed build against the fixed version below — for source-built or distro-packaged software the version string, not a lockfile, is the source of truth (`dpkg -l`, `rpm -q`, or the binary's own `--version`).

  2. Fix

    Upgrade the affected component to the fixed release for CVE-2017-12635, or apply your distribution's backported patch — distro builds are often patched at an older version number, so check your vendor's advisory rather than the upstream version alone.

  3. Workarounds

    Close the privilege gap rather than the entry point: audit which accounts, roles and service identities can reach the affected operation, drop the component to the least privilege it actually needs, and review file and directory permissions created by earlier installs — a default left in place is what makes this reachable.

How to detect CVE-2017-12635

A community-maintained Nuclei template exists for this CVE. You can scan for it directly:

nuclei -id cve-2017-12635 -u https://target
Template
Apache CouchDB 1.7.0 / 2.x < 2.1.1 - Remote Privilege Escalation
Severity
critical
Impact
Remote attackers can exploit this vulnerability to escalate privileges.
Remediation
Upgrade Apache CouchDB to version 2.1.1 or later.

Template by ProjectDiscovery nuclei-templates (pikpikcu), MIT licensed. View the full template. Scan only systems you are authorised to test.

Frequently Asked Questions

Due to differences in the Erlang-based JSON parser and JavaScript-based JSON parser, it is possible in Apache CouchDB before 1.7.0 and 2.x before 2.1.1 to submit _users documents with duplicate keys for 'roles' used for access control within the database, including the special case '_admin' role, that denotes administrative users. In combination with CVE-2017-12636 (Remote Code Execution), this can be used to give non-admin users access to arbitrary shell commands on the server as the database system user. The JSON parser differences result in behaviour that if two 'roles' keys are available i
O3 Security · Impact-Aware SCA

Is CVE-2017-12635 in your dependencies?

Find it across , including transitive dependencies.

CVE-2017-12635: couchdb RCE (Critical 9.8)